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

@krmrn42/multivac

v0.6.0

Published

Cross-project full-text search across local Claude Code conversations. Zero-deps Node CLI using built-in node:sqlite (Node 22.5+). TUI picker, resume in original cwd, `multivac init` installs the companion Claude Code plugin.

Downloads

143

Readme

multivac

Cross-project full-text search across local Claude Code conversations — zero-dependency Node CLI, plus a one-shot multivac init that installs the matching Claude Code plugin (chat-search).

The CLI maintains its own SQLite FTS5 index built from ~/.claude/projects/**/*.jsonl and exposes a relevance-ranked search over message bodies across all your projects. With no arguments on a TTY it opens a built-in TUI picker; with a query and --list/--format it prints results for piping; with --reindex it rebuilds.

Requirements

  • Node ≥ 22.5 — uses the built-in node:sqlite module. No npm install happens at runtime; no Python, no fzf, no native compilation.

Install

One-shot, no install (npx)

npx -y @krmrn42/multivac --help
npx -y @krmrn42/multivac "the chat where I figured out OAuth"

The first invocation takes a few seconds while npm fetches the package; subsequent runs hit the cache.

Persistent install (npm)

npm install -g @krmrn42/multivac
multivac --help

Bundling the Claude Code plugin

If you also want the slash commands (/chat-search:find, /chat-search:setup) and the inline-rendering experience inside Claude Code:

multivac init

This shells out to claude plugin marketplace add krmrn42/krmrn-skills and claude plugin install chat-search@krmrn-skills (the Claude Code CLI's plugin subcommand). If the claude CLI is not on your $PATH, multivac init instead prints the equivalent slash commands for you to paste into a Claude Code session manually.

multivac init does not modify any shell-rc file or ~/.claude/-internal config directly — all writes happen through claude itself.

Quick usage

multivac                      # TTY: open the TUI picker; non-TTY: print --help
multivac "OAuth flow"         # ranked text results
multivac "OAuth flow" --list  # one-shot list mode (no picker)
multivac --format tsv foo     # machine-readable TSV for piping
multivac --reindex            # force full rebuild of the FTS5 index
multivac --index-status       # DB path, size, message/conv count, last refresh
multivac -- init              # search for the literal word "init" (init is a reserved subcommand)

See multivac --help for the full flag set (filters, regex mode, projects, since-date, limit, picker keybindings, exit codes).

Where state lives

| Path | What | |---|---| | $XDG_DATA_HOME/krmrn42-skills/chat-search/index.db (default ~/.local/share/...) | FTS5 index (rebuildable) | | $XDG_CONFIG_HOME/krmrn42-skills/chat-search/sessions.json | Saved names + pins (persistent) | | ~/.claude/projects/**/*.jsonl | Source of truth — read, never written |

Full user guide

The picker keybindings (Enter resume, Ctrl-F fork, Ctrl-R rename, Ctrl-P pin, Ctrl-T remote-control, Ctrl-W tmux-window, Alt-Enter dangerous-when-armed, ? help overlay), one-shot mode, exit codes, and indexer maintenance are documented in the companion plugin's MANUAL:

github.com/krmrn42/krmrn-skills/blob/main/plugins/chat-search/MANUAL.md

Relationship to the Claude Code plugin

The npm package and the marketplace plugin ship the same CLI from the same source tree (packages/multivac/src/ is the canonical sources; the plugin's bin/ is a thin symlink). Versions are kept in lockstep — npm @krmrn42/[email protected] and plugin [email protected] always carry the same code.

Choose whichever distribution channel suits your environment:

| Channel | Command | |---|---| | npm one-shot | npx -y @krmrn42/multivac … | | npm global install | npm install -g @krmrn42/multivac | | Claude Code plugin | /plugin install chat-search@krmrn-skills (or multivac init) |

License

MIT © 2026 Shavkat Aynurin and krmrn-skills contributors.

Issues, contributing

Issues, PRs, and discussions at github.com/krmrn42/krmrn-skills. See CONTRIBUTING.md for the contribution bar.