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

curated

v0.1.1

Published

Curated from your terminal or any agent: sign in with a device code, create lists, capture items.

Readme

curated

Curated from your terminal, or from any agent that can run a command.

This package is not published yet. From a repository checkout, build it and run the generated entry point directly:

pnpm --filter ./packages/cli build
node packages/cli/dist/cli.js login

That prints a short code and a link, opens your browser, and waits. Press Allow once and the CLI stores a token in ~/.curated/config.json. After linking the package locally, the remaining commands are:

curated list create "Best ramen in Tokyo" --json
# Copy the exact slug from that response; never reconstruct or guess it.
curated add https://tabelog.com/en/tokyo/... --list <returned-slug> --note "Worth the queue"
curated lists
curated show <returned-slug>
curated search ramen

Add --json to any command for machine-readable output (agents should). curated show <returned-slug> --format markdown prints the list ready to paste into a chat or a doc.

Reading and buying other people's lists

curated find "quiet hotels portugal"        # published lists, with prices
curated show <returned-slug>                 # free or already bought → the items
curated buy <returned-slug> --pay            # paid → pay now, then the items
curated library                             # everything you have access to

Use the exact slug returned by find; do not infer it from the list title.

show on a paid list you don't have prints the price, a preview, and the payment link (exit code 2). buy prints the link; buy --pay hands it to the Stripe Link agent wallet (npx @stripe/link-cli mpp pay …), which answers the server's HTTP 402 Machine Payments Protocol challenge with a card credential and prints the paid response: the list. One-time lists are yours for good; monthly lists grant a 30-day pass per payment (--renew to extend a live one).

Signed out? curated buy <slug> --email [email protected] --pay buys as a guest; the account is created for that email once payment lands.

How sign-in works

The CLI uses the OAuth 2.1 Device Authorization Grant (RFC 8628) against Curated's authorization server with the public client id curated-cli. No redirect URI has to be hosted, so it works from SSH sessions, containers, and agent sandboxes. Tokens are the same 30-day access / 1-year refresh pair every other Curated integration gets, and they show up (and can be revoked) under Connect AI in the web app.

Point it at a different API with CURATED_API_URL=http://localhost:3000. Relocate the config file with CURATED_CONFIG_DIR.

Publishing (maintainers)

This is the only public package in the monorepo. From the repo root:

pnpm --filter curated build
pnpm --filter curated publish --access public

prepublishOnly runs the build, so dist/ is always fresh. Bump version in package.json first.