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

@bugsby/cli

v1.0.4

Published

The MCP visualizer — turn every MCP tool into an interactive flowchart, narrated in plain English. For developers supervising AI coding agents.

Readme

Bugsby

The MCP visualizer. Point Bugsby at any package that registers MCP tools via @modelcontextprotocol/sdk and it turns each tool into an interactive flowchart — every function, branch, and I/O call — narrated in plain English, without opening a single file.

Built for developers supervising AI coding agents who need to keep ground truth of what's actually in their repo.

Install + run

npm i -g @bugsby/cli

Bugsby needs a license — grab one at bugsby.dev and activate it once:

bugsby activate <your-license-key>

Then point Bugsby at any MCP package:

bugsby start

Bugsby boots a local server, opens your browser, and draws a flowchart for every MCP tool in whatever directory you ran it in. To analyze a different directory:

bugsby start --target /path/to/some/mcp/package

Prefer not to install globally? npx @bugsby/cli start works too (activate with npx @bugsby/cli activate <key>).

Requirements

  • Node 24+
  • A TypeScript or JavaScript MCP package to inspect (built on @modelcontextprotocol/sdk). Other languages aren't supported yet.
  • A Bugsby license — one-time purchase at bugsby.dev, then bugsby activate <key>
  • One of:
    • Ollama running locally (default fallback — pull qwen2.5-coder:7b first)
    • GROQ_API_KEY (free tier at console.groq.com)
    • ANTHROPIC_API_KEY or an existing Claude Code subscription

CLI

bugsby start [options]        Boot the viewer for a project (default command)
bugsby activate <key>         Save a license key to ~/.bugsby/.env
bugsby license                Show your current license status

start options:
  -t, --target <dir>      Directory to analyze (default: cwd)
  -p, --port <number>     Port to listen on (default: 3737, falls back to next free)
  --no-open               Don't open the browser automatically
  --provider <name>       Force provider: ollama | groq | claude-code
  -h, --help              Show help
  -v, --version           Show version

bugsby with no subcommand is equivalent to bugsby start.

bugsby start requires a valid license. It reads BUGSBY_LICENSE_KEY from your shell environment or from ~/.bugsby/.env (where bugsby activate writes it). The key is verified locally with an embedded public key — no network call, no account.

Configuration

Bugsby reads env vars from (highest precedence first):

  1. CLI flags
  2. Shell process.env (e.g. GROQ_API_KEY=… npx bugsby start)
  3. <target>/.bugsby/.env — per-project overrides
  4. ~/.bugsby/.env — global per-user config

Available env vars:

  • BUGSBY_LICENSE_KEY — your license key (usually set via bugsby activate)
  • BUGSBY_TARGET — directory to analyze (default: cwd)
  • BUGSBY_PROVIDERollama | groq | claude-code (default: auto-detect)
  • GROQ_API_KEY, ANTHROPIC_API_KEY — provider auth
  • OLLAMA_HOST, OLLAMA_MODEL — local provider overrides
  • CLAUDE_CODE_MODEL, GROQ_MODEL — model overrides

BUGSBY_TARGET must point at a package whose source registers MCP tools via setRequestHandler(CallToolRequestSchema, ...) from @modelcontextprotocol/sdk. Bugsby walks the package for source files, finds the call-tool handler, and treats each case clause inside its switch as one flow.

Providers

Bugsby uses Groq + Llama 3.3 70B by default when a GROQ_API_KEY env var is present. The 70B-parameter model produces noticeably sharper narrations and request-mode filter classifications than the local 7B fallback, runs at ~500 tok/s cloud-side, and keeps your laptop cool on cache misses.

Without a key, Bugsby falls back to local Ollama with qwen2.5-coder:7b. The fallback also kicks in automatically when Groq is rate-limited, quota-exhausted, unreachable, or returns 5xx — so a missing API key, a hiccup at Groq, or working offline never breaks the viewer. Existing cached narrations (regardless of which provider generated them) are reused; only new uncached narrations go to whichever provider is currently selected.

The request-mode filter routes through the Claude Agent SDK when an Anthropic API key is set or an existing Claude Code subscription is detected (macOS Keychain on Mac, ~/.claude/.credentials.json on Linux/Windows). Claude is allowed Read, Grep, and Glob inside BUGSBY_TARGET — it can inspect the actual codebase and ground classifications in source instead of guessing from cached summaries. Narrations stay on Groq/Ollama (cheap summarization work doesn't need a codebase-aware agent). Cascade if Claude Code is rate-limited, quota-exhausted, or unreachable: Claude Code → Groq → Ollama.

Override the selection with --provider ollama, --provider groq, or --provider claude-code to pin the primary regardless of which keys are present.

Usage

The left pane lists every flow (MCP tool) in your target. Click one to see its description, a natural-language narration of what an AI agent does by invoking it, and a structural call tree of every function reached from the tool's case body.

Caching

Narrations are cached at $BUGSBY_TARGET/.bugsby/cache.json, keyed by the sha256 of the handler body plus the file contents of the local imports it actually references. Edit a tool and its narration regenerates; leave it alone and the cached narration loads instantly.

Scope

  • MCP entry points only (@modelcontextprotocol/sdk's setRequestHandler(CallToolRequestSchema, ...) with a switch on request.params.name)
  • One flow per case clause whose test is a string literal
  • Call tree depth capped at 3
  • No filesystem watching, no editing

Development

For contributors working on Bugsby itself:

git clone …
cd bugsby
pnpm install
cp .env.example .env.local       # set BUGSBY_TARGET and optional API keys
pnpm dev                          # Next.js dev server at http://localhost:3000

To verify the packaged CLI locally without publishing:

pnpm build                        # builds Next standalone + compiles bin/cli.ts
BUGSBY_LICENSE_KEY=<a valid license key> node dist/bin/cli.js start   # exercises `bugsby start`
pnpm pack --pack-destination /tmp # produces /tmp/bugsby-<version>.tgz