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

@johnfodero/pi-diff-review

v1.1.2

Published

Full-screen git diff reviewer for the Pi coding agent with vim keybindings, visual-mode range selection, inline comments, and structured review feedback sent back to the agent.

Readme

pi-diff-review

A full-screen git diff reviewer for the Pi coding agent, with vim keybindings and inline comments. Review Pi's changes the way you'd review a pull request, then send all your comments back to Pi as a single structured code-review message.

pi-diff-review demo

/diff              review changes vs HEAD
/diff HEAD~3       review against an arbitrary git ref
/diff --staged     review staged changes only

Anything after /diff is passed straight through to git diff.

Features

  • Vim-style navigation — move by line, half-page, file, or hunk.
  • Inline comments — attach a note to any line; it renders right beneath the code.
  • Visual range comments — select a span of lines and comment on the whole block.
  • Structured hand-off — on send, comments are grouped by file and delivered to the agent as a Markdown review message so it can address each one.
  • Theme-aware rendering — colors follow your active Pi theme.

Install

Requires Pi. Install from npm:

pi install npm:@johnfodero/pi-diff-review

Or install from git (pin to a released version):

pi install git:github.com/JohnFodero/[email protected]

Try it for a single session without installing:

pi -e npm:@johnfodero/pi-diff-review

Then run /diff inside an interactive (TUI) Pi session in any git repository.

Keybindings

| Key | Action | | --- | --- | | j / k or / | Move cursor down / up | | Ctrl+d / Ctrl+u | Half-page down / up | | g / G | Jump to top / bottom | | n / N | Next / previous file | | } / { | Next / previous hunk | | v | Visual mode: select a line range, then c to comment it | | c | Comment on the current line | | d | Delete comment on the current line | | Enter or :w | Send all comments to the agent | | q or Esc | Quit without sending |

How it works

/diff runs a plain unified git diff (bypassing pagers and external diff drivers like delta/difftastic), parses it into navigable rows while tracking real line numbers, and renders it in a full-screen TUI component. Comments are keyed to lines and, on send, grouped by file into a Markdown message delivered to the agent — as a follow-up message if the agent is busy, or immediately if idle.

What gets sent to the agent

Only the lines you commented on — never the whole diff. The full diff you scroll through stays local to the viewer and never enters the model's context. On send, each comment becomes one Markdown list item under its file header, containing a precise line reference (file:line (+/-) or file:lo-hi), the code itself, and your note:

Code review feedback on `git diff HEAD` (2 comments). Please address each:

### src/auth.ts
- **src/auth.ts:42 (+)** `const token = req.headers.authorization`
  This should validate the Bearer prefix before slicing.

Visual-range comments emit the selected span in a fenced code block instead of inline.

This keeps the hand-off prompt-efficient: token cost scales with the number of comments, not the size of the diff — reviewing a 3,000-line change and leaving two comments sends only those two lines plus your notes. The tradeoff is that the agent sees just the commented line, not its surrounding context; when it needs more, it reads the file on demand rather than having a large diff preloaded into context.

Requirements

  • Pi running in interactive (TUI) mode — /diff is a no-op in print/RPC modes.
  • git on your PATH, run from within a git repository.

License

MIT © John Fodero