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

clear-diff

v0.3.0

Published

Clearance for your code. A Diff 2.0 reviewer.

Readme

clear-diff

A local-first, diff-first conversational code reviewer. It reads a whole diff, reorganises it into a navigable structure, and surfaces the right part at the right time. You direct; it writes the comments.

Status: pre-release, early days. The skeleton is being built now — there is no working binary yet. Everything below describes the intended product. Treat the invocation and UX as the target, not current reality.

The problem

PR review assumed a human typed every line, so a human read every line. That world is ending: code is increasingly agent-generated, automated reviewers cover conventions and coverage, CI catches the mechanical issues, and the volume of change keeps rising.

So the diff-browsing UI from 2008 now works against you. You open a 400-line diff and feel dread. Where do you even start?

The diff is the wrong starting point. Diffs aren't useless — they're the evidence. But being handed all of it, in file order, with no sense of what matters, is the wrong front door.

The inversion

Current tools say: here's everything that changed, good luck.

clear-diff says: here's the change, organised into a shape you can walk through — start at the top, stop when you stop caring.

An agent reads the whole diff first and reorganises it into a navigable structure. You descend that structure, marking things off as you go, commenting where you want to (by voice, usually). The diff is surfaced as evidence — never pushed at you as a wall.

It works on any diff: a local worktree against origin/main, two refs, or a GitHub PR. PRs are just one source of a diff.

The core model

A review is a tree:

Review
└── Chapters     — major tranches of intent, ordered by importance
    └── Sections — curated groups of related change, ordered by relevance
  • Chapter — a major tranche of intent. A small diff is one Chapter; a big diff is several. ("Event-bus migration", "New API surface", "Tests & fixtures".)
  • Section — a curated group of related change within a Chapter, grouped by theme rather than file position — so a Section can pull related lines out of several files, or out of different places in one file, and leave the rest behind.

Importance at the top, detail underneath, related things together. Review feels like reading a report instead of scrolling a file dump.

Under the hood the change is split into the smallest mechanical units git emits, and your review marks are keyed to the content of those units — not to line numbers or to the agent's grouping. So unrelated edits never disturb your progress, edits to lines you already reviewed resurface automatically, and the agent can regroup freely between runs without losing a mark.

Principles

  • Structure-first, diff-second. The diff is evidence surfaced on demand, not the interface.
  • Local-first. Real work (git, hashing, open-in-editor) runs on your machine against local checkouts. No auth infrastructure for now.
  • Keyboard-native. Every action is reachable by key and command palette; the mouse is optional. Traversal speed is the product.
  • Selective disclosure over prediction. The agent structures and orders; you decide what to hide by marking. It doesn't guess your mind.
  • You direct, the agent writes. Comments are drafted in your voice, usually from speech, for your approval.
  • Completion over coverage. The goal isn't to have read every line — it's to have accounted for every Section and know what you checked.

Intended invocation

Target UX — not yet shipped.

clear-diff                  # review the current worktree against origin/main
clear-diff <base>..<head>   # any two refs
clear-diff --pr 63          # a GitHub PR (later)

The clear-diff CLI boots a localhost server and opens the UI in an --app-mode browser window. It walks you through the changes, you comment and mark as you go, and when everything is accounted for you click go — comments are dispatched (and, for a PR, posted).

Architecture & docs

A hexagonal core: a pure domain + application core surrounded by interchangeable adapters, so many front-ends (CLI, local web, later) and back-ends sit over one unchanged core.

  • docs/concept.md — the product model and voice. Source of intent.
  • docs/design-brief.md — the UI and interaction surface.
  • docs/adr/ — architecture decisions: hexagonal boundaries, content-hash identity, the agent-untrusted invariant, marks persistence.

Roadmap

Early and in active development. The core model is settled; the build is starting. Follow along through the issues and commits.

Licence

MIT — see LICENSE.