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

diffing

v0.21.10

Published

local-first CLI for reviewing, navigating, and discussing git diffs with AI

Readme

diffing

Local-first CLI for reviewing git diffs with humans and AI agents.

Open your changes in a GitHub-like web UI (or an experimental native TUI), leave inline comments, hand them to your coding agent over CLI/MCP, and review implementation plans the same way before any code is written. Everything binds to loopback by default — no account, no cloud.

npm: npmjs.com/package/diffing · Docs: ahmedragab20.github.io/diffing · Agents: llms.txt


Quick start

Requirements: Node.js 20+, git on your PATH. Local working-tree previews, edits and uploaded-image operations also require the compiled native file helper, bundled on supported platforms; no Rust toolchain is needed for a packaged install. Missing/incompatible helpers deny those operations rather than falling back to Node file access. Basic Git diffs and comments remain available.

This is not a complete repository sandbox. See the implemented guarantees, known limits and deferred-work handoff.

npm install -g diffing
# or: pnpm add -g diffing

diffing setup          # first-time wizard (skills, MCP, doctor)
cd your-repo
diffing                # preferred interactive UI (web by default)

Useful variants:

diffing --staged
diffing main..feature
diffing view           # read-only native diff browser
diffing --tui          # full native review TUI (experimental)
diffing mode tui       # make TUI the interactive default
diffing update

TTY opens the interactive UI. Pipe or redirect prints a unified patch like git diff.


What you get

| Area | Highlights | | ------ | ------------ | | Review UI | Split/unified diffs, inline comments + severity, suggestions, image diffs, themes (52), search | | Agents | await-review, reply/resolve, progress, MCP (55 tools), skills via npx skills add ahmedragab20/diffing | | Plan review | Submit markdown → human verdict → approved / changes-requested / rejected | | GitHub PR | Local PR sessions (--gh-pr), bounded inspect, optional authorized publish | | Sessions | Concurrent web/TUI/PR reviews; diffing sessions task manager | | Local-first | 127.0.0.1, random free port, state under ~/.diffing/ |

TUI is experimental. Web is the supported production path. See docs.


Agent one-liners

diffing                          # human reviews in browser
diffing url                      # share link; async park by default
diffing await-review             # only when human is reviewing now
diffing comments --open
diffing reply <id> --body "…" --model "your-model"
diffing resolve <id>
diffing plan submit PLAN.md --model "your-model"
diffing mcp

Full agent protocol, exit codes, and MCP catalog: Documentation · in-repo AGENTS.md.


Development checks

Source contributors need Rust for the file helper. Build it before running the TypeScript suite, which includes real-helper integration tests:

pnpm build:tui:debug
pnpm test:ts
cargo test --workspace
pnpm build

pnpm exec tsc --noEmit is a separate check; its remaining known failures are tracked in the handoff. No passing-test claim implies a clean typecheck.

Documentation

| | | | -- | -- | | Getting started | https://ahmedragab20.github.io/diffing/docs/getting-started/ | | Agent handoff | https://ahmedragab20.github.io/diffing/docs/guides/agent-handoff/ | | Plan review | https://ahmedragab20.github.io/diffing/docs/guides/plan-review/ | | CLI reference | https://ahmedragab20.github.io/diffing/docs/reference/cli/ | | MCP tools | https://ahmedragab20.github.io/diffing/docs/reference/mcp/ | | Keyboard | https://ahmedragab20.github.io/diffing/docs/reference/keyboard/ | | Design (Gridline) | https://ahmedragab20.github.io/diffing/docs/design/gridline/ | | llms.txt | https://ahmedragab20.github.io/diffing/llms.txt |

Local site preview (contributors):

pnpm --dir site install --ignore-workspace
pnpm docs:dev

Links

License

MIT · github.com/ahmedragab20/diffing