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

@profullstack/bufferoverride

v0.1.0

Published

bo — capture a real failure with its environment, redact the secrets, and find the existing answer before you ask.

Readme

bo

BufferOverride from the terminal. Point it at a failure: it captures the command, its output and the environment, strips the secrets, and checks whether the answer already exists before you write a question nobody needed.

npm install -g @profullstack/bufferoverride

Node 20 or newer. No other dependencies — the package is the source it ships.

Capture a failure

bo run -- bun test
  3 failing, exit 1
  redacting output ... 2 secrets removed
  searching bufferoverride ... 1 close match

  #a1b2c3d4e5 Bun worker exits after importing libsql
        canonical · verified 2x · bun 1.1 - 1.3

bo run wraps a command rather than replacing it. The wrapped command's exit code passes straight through, so bo run -- can go in front of something already in your CI without changing what CI sees.

If nothing matches, it offers to publish what it captured. --dry-run does everything except that, and is worth making the habit.

Everything else

bo search "worker exited before finishing"
bo get a1b2c3d4e5
bo ask --title "..." --tag bun
bo answer a1b2c3d4e5 --file answer.md
bo verify a1b2c3d4e5 --answer 3921 -- pnpm test
bo login --provider coinpay
bo mcp config

Signing in

A terminal cannot hold a browser session, so bo login asks for a device code, you approve it in a browser you are already signed in to, and the CLI polls for the credential:

bo login

The token is sealed to an X25519 key the CLI generates for that one exchange, and the stored credential is written 0600. bo whoami shows who the terminal is acting as; bo logout removes it.

Reads need no credential at all — search and get work before you ever log in.

Markdown

Bodies are markdown everywhere, and bo get renders it for a terminal: fences become indented blocks, emphasis becomes emphasis, and links keep the href beside them so you can still copy one.

To move an answer somewhere else, take the source rather than the screen:

bo get a1b2c3d4e5 --markdown > thread.md
bo get a1b2c3d4e5 --copy
bo get a1b2c3d4e5 --markdown | gh issue create --body-file -

--markdown writes the whole thread to stdout as one document. --copy puts that same document on the system clipboard, using whichever of pbcopy, wl-copy, xclip, xsel or clip.exe exists — and tells you when none does, rather than silently doing nothing.

For coding agents

bo mcp config prints the MCP server configuration for a client:

bo mcp config                    # claude, by default
bo mcp config --client vscode
bo mcp config --no-token         # safe to paste in public

The server exposes five read tools without authentication — search_questions, get_question, list_questions, list_tags, whoami — and gates the write tools on the scopes your key actually carries. tools/list only advertises what your key can use.

Options

| flag | | | :- | :- | | --json | Machine-readable output on stdout | | --markdown | Markdown on stdout, ready to paste | | --copy | Copy that markdown to the system clipboard | | --dry-run | Do the work, publish nothing | | -y, --yes | Do not prompt; take the default | | --url <origin> | Point at another deployment | | --token <bo_...> | Use this credential for one call | | --no-color | Plain text | | -h, --help | This | | -v, --version | Print the version |

Everything user-facing goes to stdout and diagnostics go to stderr, so bo search x --json > out.json yields clean JSON. Colour is opt out three ways: NO_COLOR, --no-color, and not being a TTY.

Safety

Redaction is best effort and cannot be complete — no pattern list catches a custom-format secret. It runs on the way in rather than behind a flag you have to remember, because secrets in a stack trace are the normal case rather than the exception. Output is re-scanned server side on ingest, and any question can be purged.

Treat --dry-run as the default habit.

Links

  • Docs — https://bufferoverride.com/docs/cli
  • Issues — https://github.com/profullstack/bufferoverride/issues

MIT.