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

@arechi/whatchanged

v0.1.1

Published

Read the release notes for every outdated dependency, between the version you have and the latest

Readme

whatchanged

Read the release notes for every outdated dependency, from the version you have to the latest one.

npx @arechi/whatchanged

Installed globally (npm i -g @arechi/whatchanged), the command is whatchanged.

Run it in a pnpm workspace. It reads pnpm -r outdated, finds each package's GitHub repo, and collects the notes for every version the upgrade passes through. Majors are listed first.

In a terminal it opens an interactive view:

| Key | List | Notes | | ----------------- | ----------------------------- | ----------------------------- | | ↑ ↓ / j k | move | scroll | | enter / → | read the notes | | | space / b | | page down / up | | n / p | | next / previous package | | g / G | first / last | top / bottom | | o | open the changes in a browser | open the changes in a browser | | esc / q | quit | back to the list |

Piped, or with --plain, it prints Markdown instead, ready to paste into a pull request:

npx @arechi/whatchanged --plain > notes.md
npx @arechi/whatchanged react vite     # only these packages
npx @arechi/whatchanged --cwd ../app   # another workspace

Where the notes come from

  1. GitHub releases whose tag names a version in the range: v1.2.3, 1.2.3, [email protected], @scope/[email protected] or pkg-v1.2.3. In a monorepo whose tags name their packages, only the package's own tags count.
  2. CHANGELOG.md, in the package's folder and then the repo root, sliced to the sections for the versions in range.
  3. A link to the comparison, the changelog or the releases page, which o opens.

Packages that share a repo and an upgrade, like @orpc/client and @orpc/server, are read once and shown together.

GitHub token

Without a token GitHub allows 60 requests an hour, which a large workspace can run out of. whatchanged uses GITHUB_TOKEN or GH_TOKEN when set, and otherwise the token of a signed-in GitHub CLI (gh auth login). It needs no scopes: the notes it reads are public.

Limits

  • pnpm only, for now. npm and yarn workspaces are next.
  • Notes are read from GitHub only. For packages elsewhere it links the repository or the npm page.
  • pnpm reports one version per package name, so when two workspace packages pin different versions of a dependency, only one upgrade is shown.

Development

pnpm install
pnpm test        # unit tests, no network
pnpm check       # oxlint, then oxfmt
pnpm typecheck
pnpm build       # bundles everything into dist/cli.mjs
node dist/cli.mjs --cwd test/e2e

Every user-facing change comes with a changeset (pnpm changeset). Merging to main opens a Release pull request, and merging that publishes to npm.

License

MIT