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

@seanmozeik/exa

v0.0.1

Published

Bun + Effect CLI for Exa search, answer, and deep research

Readme

exa

license: MIT runtime: bun

The Exa search API, shaped for agents. One binary, one flag, compact JSON that drops cleanly into an LLM loop.

bunx @seanmozeik/exa search --agent "effect v4 cli"
[{ "title": "effect-ts/effect", "url": "https://github.com/Effect-TS/effect", "excerpt": "..." }]

Why this exists

Most search APIs in 2026 ship an MCP server. MCP is great when an agent runtime already speaks it. When it doesn't, you want a CLI plus a skill file, and you want them stupid easy to wire up.

This CLI bakes its own skill into the binary. exa skill prints the full agent-facing guide: when to reach for search versus answer versus deep, every subcommand's canonical --agent invocation, return shapes, flags, and pitfalls. Pipe it into a Claude Code, Cursor, Aider, or Codex session and the model knows the product cold, no separate skill downloads, no MCP server to host.

What agents get

  • Compact JSON, bounded tokens. --agent strips ANSI, kills pretty-print, returns one line per result. Excerpts auto-truncate to 280 chars so a noisy page doesn't blow your context window.
  • Three price tiers, three subcommands. exa search is the cheap workhorse, exa answer is the grounded one-shot, exa deep is the multi-step synthesis. The caller picks the cost-quality tradeoff at the command line instead of toggling SDK options.
  • Intuitive filters that work the same everywhere. --include-domains exa.ai,docs.exa.ai, --start-published-date 2026-01-01, --category "research paper", --text-max-characters 8000. Same flag names across every subcommand that accepts them.
  • Keychain auth. exa auth set-key stores the API key in your OS keychain via Bun.secrets. No .env, no ~/.config text file, no shell history leak.
  • Predictable exit codes. 0 success, 1 API error, 2 bad args, 3 auth or rate-limit, 4 timeout, 5 no results. Wire it into any orchestrator.

A nice search engine for humans, too

Drop --agent and the same commands render in colour, with clickable URLs, highlighted excerpts, and inline citations. The terminal pretty-printer is the default. The agent JSON is the opt-in.

$ exa answer "what's new in Bun 1.3"

Bun 1.3 ships a stable test runner, native Postgres bindings, ...

Sources
  → Bun 1.3 release notes  https://bun.com/blog/bun-v1.3
  → ...

Install

Zero-install for one-offs:

bunx @seanmozeik/exa --help

Permanent install:

bun add -g @seanmozeik/exa
# or
brew install seanmozeik/tap/exa
# or from source
git clone https://github.com/seanmozeik/exa && cd exa && bun install && bun link

Auth

exa auth set-key "$EXA_API_KEY"
exa auth status

Without a key, every command exits 3 before making any API request.

Surface

exa search <query>      # neural / keyword / fast / deep / deep-reasoning
exa answer <query>      # grounded one-shot with citations
exa deep <query>        # multi-step synthesis with structured output
exa contents <url>...   # full page text, highlights, summaries
exa similar <url>       # findSimilar
exa people <query>      # category:people
exa companies <query>   # category:company
exa context <query>     # token-efficient code snippets from GitHub / docs / Stack Overflow
exa research ...        # Exa Research tasks
exa websets ...         # Websets, the async verified-entity collections API
exa auth ...            # set-key / status / clear
exa skill               # bundled agent skill (when/why + full CLI surface)

Every data command takes --agent (compact JSON), --json (pretty-printed full API response), or no flag (terminal-friendly human output).

For the full flag reference, run exa <command> --help or pipe exa skill into your agent.

Built with

Bun and Effect v4. Effect v4 is in beta, so expect the occasional sharp edge until the framework stabilises.

Development

bun install
bun run check    # format, lint, typecheck
bun test
bun run build

License

MIT.