npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

git-impact

v0.6.6

Published

Translate your git commits into plain-English business impact — runs inside your AI editor, no API key.

Downloads

1,388

Readme

git-impact

Translate your git commits into plain-English business impact — for standups, manager updates, and performance review prep.

📅 Thursday, May 8, 2026

✅ Shipped secure multi-tenant data access layer       [PR #142]
   → Prevents cross-company data leaks. Required for SOC2 compliance sign-off.

✅ Fixed login failures for admin users                [a1b2c3d, ENG-431]
   → Unblocks Q2 portal launch, was blocking 3 engineers.

⏳ In progress: Refactoring authentication flow        [inferred]
   → Will reduce login latency by ~40%, targeting end of week.

📁 6 files changed across auth + database layers
   4 commits on main

No API key, ever. Translation runs inside your AI editor.


Install

Run this once inside any repo — no install step needed, npx fetches it on demand:

npx git-impact init

npm version

The wizard auto-detects which AI editors you already use and installs for them. Three short questions, then it self-installs:

  git-impact init
  ────────────────────────────────────

  Repo: /your/project
  Files will be committed with your team.

  What does your company/product do? (1–2 sentences)
  > B2B SaaS for workforce analytics

  What does your manager care most about?
  > Shipping on time, not breaking prod

  Technical terms to translate? (optional)
  Format: "RLS=data security, MFA=login security"
  >

  Which AI editors should I install for? (comma-separated, or "all")
  Options: claude, copilot, cursor, gemini
  Detected in this repo: claude, cursor
  [press Enter to use detected]
  >

Then it creates everything and tells you what it did:

  ────────────────────────────────────
  git-impact installed

  ✅  .git-impact/context.json
  ✅  .gitignore
  ✅  .claude/skills/git-impact/SKILL.md
  ✅  .claude/skills/git-impact/references/translation-rules.md
  ✅  .claude/skills/git-impact/references/html-template.md
  ✅  .cursor/rules/git-impact.mdc
  ✅  CLAUDE.md
  ✅  .git-impact/manifest.json

  Next steps:
  1. git add .git-impact/context.json && git commit -m "chore: add git-impact"
  2. In Claude Code: type "/git-impact" or say "do my standup"
  3. After a few standups: `git-impact view` to see the rolling dashboard

Using it

Once installed, just talk to your AI editor naturally:

| What you say | What happens | |---|---| | /git-impact or do my standup | Translates commits since your last standup (survives weekends) | | since yesterday, since 3d, since 2026-05-01 | Explicit lookback window | | what did I ship this week? | Looks back 7 days | | generate a performance review | Synthesises history into review-prep evidence | | make a presentation for today | Adds a bespoke shareable HTML page (opt-in) | | set up context for this repo | Re-runs the init questions inline |

Works in Claude Code, GitHub Copilot, Cursor, and Gemini CLI. Claude Code and Gemini CLI get the full agentic experience (the skill auto-runs the MCP tools); Cursor and Copilot get the same instructions as paste-into-chat fallbacks.


How it works

git-impact ships two things: a Claude Code skill that handles the prompting, and an MCP server that exposes typed data tools (git activity, history, context). The skill calls the MCP tools — no sqlite3 shelling, no hand-rolled SQL.

your commits  →  MCP get_git_activity  →  privacy redaction  →  AI translation
                          ↓
              MCP save_impact_entry (with provenance + refs)
                          ↓
              .git-impact/result.html (rolling dashboard)

Two safeguards built in:

  • Privacy redaction (default-on) — filenames matching .env*, .aws/, .ssh/, *credentials*, *secret*, *.pem, *.key get replaced with [redacted-secret-file] before they reach the model. Obvious-looking secret values in commit bodies (Stripe keys, AWS access key ids, GitHub PATs, Slack tokens, JWTs) become [redacted-secret].
  • Per-bullet provenance — every translated bullet is tagged pr / commit_body / commit_message / ticket / inferred. Inferred bullets surface with an amber chip in the HTML report so you (and your manager) can tell what's grounded vs. guessed.

History is saved locally to .git-impact/history.db (SQLite, gitignored) so review-prep can synthesise weeks or months of standups.


What gets installed

your-project/
├── .claude/
│   └── skills/git-impact/
│       ├── SKILL.md                            # Workflow (orchestrates MCP tools)
│       └── references/
│           ├── translation-rules.md            # Loaded on demand
│           └── html-template.md                # Loaded on demand
├── .github/
│   └── instructions/
│       └── git-impact.instructions.md          # GitHub Copilot
├── .cursor/
│   └── rules/
│       └── git-impact.mdc                      # Cursor
├── .gemini/
│   └── commands/
│       └── git-impact.md                       # Gemini CLI
├── .git-impact/
│   ├── context.json                            # Team glossary  ← commit this
│   ├── manifest.json                           # Install record ← commit this
│   ├── history.db                              # Local history  ← gitignored
│   ├── result.html                             # Rolling dashboard ← gitignored
│   └── standups/YYYY-MM-DD.html                # Bespoke presentations (opt-in)
└── CLAUDE.md                                   # Usage reminder block (managed)

Commit the SKILL files and context.json. Everything else stays local.

Re-running npx git-impact init is safe — it updates existing files in place.


context.json

Lives at .git-impact/context.json. Commit it so everyone on the team gets the same translation:

{
  "companyDescription": "B2B SaaS for workforce analytics",
  "managerPriorities": "Shipping on time, not breaking prod",
  "glossary": {
    "RLS": "data security layer",
    "MFA": "login security",
    "TabPFN": "AI predictions"
  },
  "privacy": {
    "redact": true,
    "filePatterns": ["*internal-only*"],
    "valuePatterns": ["MY_COMPANY_NAME"]
  }
}

The privacy block is optional — defaults work for most teams. Set redact: false to disable the filter, or extend the patterns to catch internal names / customer identifiers.


Translation rules

The skill follows these rules to keep output useful rather than vague:

  1. What + why, not what + how — "Fixed login failures for admin users → unblocks Q2 launch" not "updated auth middleware"
  2. Apply the glossary — every term in context.json is replaced with its plain-English equivalent
  3. Provenance is mandatory — every saved bullet is tagged pr / commit_body / commit_message / ticket / inferred. Inferred bullets render with an amber chip so the reader can spot what was grounded vs guessed.
  4. Group related commits — four auth commits become one bullet, not four
  5. Three statusesdone (✅), in_progress (⏳), blocked (🚫). WIP work surfaces the expected outcome, not the work-so-far.
  6. Use numbers — "reduced latency by ~40%" beats "improved performance"

Full rules in skill/references/translation-rules.md.


Performance review prep

Use the standup daily for a few weeks. History builds up in history.db. Then:

generate performance review prep for the last 90 days    ← Claude Code
generate review for Q2-2026                              ← any supported editor

Output (think of this as evidence pack you paste into your own writing — not a finished review):

Performance Review Prep — Q2 2026

Led the security layer redesign that enabled SOC2 compliance sign-off.

🚀 Security
   • Shipped multi-tenant data isolation, unblocking a $2M enterprise deal      [Apr 8, PR #98]
   • Resolved 2 auth vulnerabilities before the audit window                    [May 2, PR #114]

✅ Features
   • Delivered admin portal ahead of schedule (was blocking 3 engineers)        [Apr 22, PR #103]

🔧 Reliability
   • Reduced login latency by ~40% through auth flow refactor                   [May 8, inferred]

📊 47 commits across 58 working days

CLI reference

The CLI is just for installing and viewing reports — translation always happens inside your AI editor.

git-impact init                    # set up / update this repo
git-impact view                    # open the HTML report of saved standups
git-impact view --date 2026-05-09  # open a specific day directly

All commands accept -p <path> to point at a different repo. By default the repo is auto-detected from the current directory.


MCP server

The MCP server exposes git data as typed tools so AI editors can call them directly. No API key — your editor does the translation in its own session.

Add to .claude/settings.json in your project:

{
  "mcpServers": {
    "git-impact": {
      "command": "npx",
      "args": ["git-impact-mcp"]
    }
  }
}

Available tools:

| Tool | What it does | |---|---| | get_git_activity | Reads commits + file changes, applies privacy redaction | | get_github_activity | Pulls PR titles + descriptions (needs github_token in context) | | get_last_standup_date | Powers the "since last standup" default | | save_impact_entry | Persists a translation with provenance + refs | | get_history | Returns saved entries for a date range | | render_dashboard | Regenerates .git-impact/result.html and returns the file:// URL | | update_context | Updates context.json (company / glossary / privacy / token) |


Local development

git clone https://github.com/efraimnabil/git-impact
cd git-impact
npm install
npm run build

# Test the installer
node dist/cli/index.js init

# Open the HTML report
node dist/cli/index.js view

# Run the MCP server
node dist/mcp/server.js

# Tests
npm test                  # one-shot
npm run test:watch        # watch mode

Publishing a new version:

npm version patch          # bump version
npm publish --otp=123456   # 6-digit code from your authenticator
git push --follow-tags

Project structure

src/
├── init/
│   ├── installer.ts        # install() + runInitWizard() + detectEditors()
│   ├── installer.test.ts
│   └── templates.ts        # editor-specific instruction templates
├── readers/
│   ├── git.ts              # reads git log, diffs, file changes
│   ├── github.ts           # reads PRs via GitHub API (optional)
│   ├── redact.ts           # privacy filter (filenames + secret-shaped values)
│   └── redact.test.ts
├── storage/
│   ├── db.ts               # per-repo SQLite history + context.json
│   └── db.test.ts
├── report/
│   ├── render.ts           # builds the rolling HTML dashboard
│   └── html.ts             # HTML template + provenance chips
├── mcp/
│   ├── server.ts           # MCP server entry point
│   ├── tools.ts            # typed data tools (get_git_activity, save_impact_entry, …)
│   ├── resources.ts        # MCP resources (context, history overview)
│   ├── prompts.ts          # computed prompt templates (standup, review)
│   └── repo.ts             # auto-detects repo root from cwd
└── cli/
    └── index.ts            # init + view commands
skill/
├── SKILL.md                # workflow (200 lines, orchestrates MCP tools)
└── references/
    ├── translation-rules.md
    └── html-template.md

Roadmap

Shipped:

  • [x] Skill + MCP architecture (skill orchestrates, tools provide)
  • [x] Per-bullet provenance tags + refs
  • [x] Privacy redaction (default-on)
  • [x] "Since last standup" default
  • [x] Editor auto-detection in init
  • [x] Test baseline (Vitest, 40 tests)
  • [x] Multi-editor: Claude Code, Copilot, Cursor, Gemini CLI

Next:

  • [ ] PR description writergit-impact-pr skill produces ready-to-paste PR bodies
  • [ ] Multi-repo standup — aggregate across ~/work/* in one update
  • [ ] Changelog modesince v1.2.0 produces user-facing release notes
  • [ ] Team / cloud features — shared history, shareable evidence-pack URLs

MIT License