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

@stupify/cli

v0.4.4

Published

A code reviewer that talks like an idiot and catches real bugs — corpus-grounded, anti-slop, runs on Codex.

Readme

Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.

Kernighan's Law

stupify

AI agents are rats in a maze. They reach for what they know. And unless you show them better, what they know is slop: most software is garbage, and they'll happily imitate it.

npm License: MIT

A real stupify review with four kinds of finding in one pass: a high-confidence bug, a fail-open footgun, a reinvented SDK primitive, and a dead config seam.

actual issues, tells the coding agent exactly how + what to fix more catches, on real PRs →

What you get

  • Your taste, not the model's. Everything is judged against a CORPUS.md: a taste pack ("code like dtolnay / DHH / antirez …") or your own best files. Nothing to write to start.
  • On your personal Codex plan, not a metered API key. stupify reviews with Codex, running on the $20-$200/month plan. API usage is roughly 50x more expensive, enjoy the subsidized tokens while you can.
  • Slop, named. RUBRIC.md is your list of what counts as slop: reinvented primitives, speculative abstraction, fallbacks the types already guarantee. It keeps the fix small.
  • Both ends of the loop. The same .review/ primes the agent before it writes (prevention) and reviews the PR after (detection). The best review is the one you didn't need.
  • It remembers. Reads the PR thread, won't re-raise what you fixed or waved off, posts no new blocking issues ✅ when there's nothing left.
  • It's funny. oof, yeah this'll break:. Turn it off if you hate joy.

Prime your agent (instant, local, no servers)

The best slop is the slop never written. prime wires a Claude Code SessionStart hook that injects your taste into every session, so the agent holds your standard before it touches a line. Pure file read, ~30ms, no model call.

bunx @stupify/cli taste --pack sindre-sorhus,zod   # pick the code yours should look like
bunx @stupify/cli prime --install                  # every Claude Code session now opens knowing it

That's it. Open Claude Code in any repo and it's already primed. A repo's own .review/ wins; otherwise it falls back to the taste you assembled. bunx @stupify/cli prime --uninstall removes the hook cleanly.

Add the reviewer (rides exe.dev, no keys or servers you run)

From your laptop, one command provisions a VM that reviews your repo's PRs. No API keys or tokens to manage, and once it's running you never touch the VM.

bunx @stupify/cli
┌  stupify
◇  using integration acme-widgets
◇  VM stupify-acme-widgets created
└  stupify is provisioned for acme/widgets 👀

New to exe.dev? ssh exe.dev to onboard and link GitHub at exe.dev/integrations. Both are one-time and painless. Then just open a PR: the sweep picks it up within ~60s and posts once the review finishes, no labels or workflows to wire up. (Want manual control? SCOPE=label flips it to opt-in: only PRs you tag get reviewed.)

bunx @stupify/cli <owner/repo>          # provision for a specific repo
bunx @stupify/cli setup                 # run the reviewer on this machine instead of a VM
ssh exe.dev rm stupify-<owner>-<repo>   # tear it down

Why exe.dev: an always-on VM with a gh-authed GitHub integration and a Codex gateway. It's cheaper and nicer than wiring this through GitHub Actions (no workflow YAML, no runner minutes). Prefer your own machine? stupify setup runs the same cron locally; you bring gh auth login and your Codex login. Either way it's a cron shelling out to Codex; point it elsewhere with CODEX_PROVIDER/CODEX_MODEL.

Feed it Codex

The reviews run on Codex. On exe.dev that's a keyless LLM integration: it fronts your ChatGPT/Codex plan, so the VM holds no API key (it bills your plan). Link one once at exe.dev/integrations and provisioning attaches it for you. One plan is plenty: a review runs on the order of a Claude Code session, so a single Codex plan covers a busy repo without trouble.

Taste packs

Don't have a corpus yet? Borrow one. Pick a programmer whose code you'd point a new hire at and review (and write) like them, or compose several:

dtolnay · DHH · antirez · Sindre Sorhus · Rich Harris · zod · Mitchell Hashimoto · Tanner Linsley · Simon Willison · devshorts · Jarred Sumner · browse all →

Each pack is concrete principles plus commit-pinned exemplar files. Or bring your own: point stupify at the files you wish all your code looked like, and it scaffolds a .review/ in your repo:

bunx @stupify/cli init src/best.ts src/clean-service.ts   # inlines them; you add one line of "why" each

A repo's own .review/ always wins over a pack. stupify dogfoods this; its own .review/CORPUS.md is real.

How it works

prime   Claude Code SessionStart hook → bun ~/.stupify/prime.ts → inject .review/ (rubric + corpus)
review  cron (~60s) → review-sweep.ts → codex exec → gh pr comment
          refresh checkout · list open PRs (skip drafts/bots) · skip already-reviewed heads
          feed the PR's thread back as memory · review against .review/* · post

Both halves read the same .review/. The CLI (src/cli.ts) sets things up; the engines (src/prime.ts and src/review-sweep.ts) are dependency-free Bun. The whole design, including why it remembers instead of debouncing, is in docs/ARCHITECTURE.md.

License

MIT © Noah Lindner. Built by the team at Bevyl. stupif.ai, read it "stupify". PRs welcome, it'll review them 😈