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

components-differ

v1.2.5

Published

CLI to generate shadcn registry items from git diffs

Readme

components-differ

CLI to generate shadcn-compatible registry items (registry:block) from your project.

You can use it in two ways:

  • Folder mode (default): create a registry item from every file in a folder (default: current directory).
  • Git mode (--git): create a registry item from files changed since the initial git commit.

Install & build

From the differ folder:

npm install -g components-differ

After building, you can run the CLI with node or via the components-differ bin (if linked/installed).

Default: folder mode (current directory)

Run with no arguments to generate a registry item from the current folder (and all files it imports):

# from your project root – includes whole project and resolves imports
components-differ > block.json

# optional name
components-differ -n my-block > block.json

Or target a specific folder:

components-differ --folder src/app/dashboard -n dashboard-block > block.json
components-differ --folder src/app/dashboard > block.json

Git mode (changed files only)

Use --git when you want a registry item only from files changed since the initial commit:

# initialize a clean git history first
components-differ --init

# after making changes, generate from changed files only
components-differ --git -n my-block > block.json

Add the block locally

npx shadcn add ./block.json

Options summary

  • --init: initialize a clean git repo and first commit (for use with --git later).
  • -n, --name <name>: registry item name; defaults to current (or folder) name.
  • -f, --folder <folder>: folder to include (default: current directory). Ignored if --git is set.
  • --git: use git mode (only files changed since initial commit).