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

vibe-hnindex

v0.6.1

Published

MCP server for indexing and searching codebases with keyword + semantic search. Works with Claude, Cursor, Windsurf, Antigravity.

Downloads

1,749

Readme

vibe-hnindex

Local MCP server — index your repo once, search it in every AI session

Keyword (SQLite FTS5) · Semantic (Qdrant + Ollama embeddings) · Hybrid — your code stays on disk

npm vibe-hnindex npm hnindex-cli License MCP Node

MCP server (vibe-hnindex) latest: v0.6.1 · hnindex-cli v0.6.2+ (CLI-only patches). Shields badges read npm in real time; GitHub Releases only update when you publish a new tag/release.


What this does

vibe-hnindex is a Model Context Protocol server. After you index a folder once, assistants (Claude, Cursor, Windsurf, Antigravity, …) can search that codebase with paths and line ranges — data is stored locally (SQLite + optional Qdrant). Embeddings use Ollama; vectors use Qdrant (Docker, local, or Qdrant Cloud with QDRANT_API_KEY).


How to read the docs (start here)

| Step | Doc | Purpose | |------|-----|---------| | 1 | Getting started | Install Node, Ollama, Qdrant; paste MCP JSON; first chat commands | | 2 | Integrations | Where to put the JSON — including Google Antigravity (mcp_config.json) — or use hnindex CLI | | 3 | Tools reference | What each tool does (index_codebase, search, …) |

Everything else is optional: Configuration, How it works, Troubleshooting.

Full index: docs/README.md


CLI installer (hnindex)

Optional — writes the MCP JSON for you (merge-safe, same npx -y vibe-hnindex block as in the docs):

npm install -g hnindex-cli
hnindex init --mcp antigravity    # or: claude, claude-desktop, cursor, cursor-project, windsurf, vscode
hnindex init --list               # show all targets and paths
hnindex update                    # npm update -g hnindex-cli

See Getting started → CLI and Integrations → hnindex CLI.


Install in 5 steps

  1. Node.js — v20+ (nodejs.org). On Windows, Node 20 or 22 LTS is strongly recommended so npm install does not need a C++ compiler. See Troubleshooting → Windows if npm i vibe-hnindex fails.
  2. Ollama — install from ollama.com, then: ollama pull bge-m3:567m and keep ollama serve running (or set OLLAMA_URL to a remote server).
  3. Qdrant — for semantic/hybrid search: docker run -d --name qdrant -p 6333:6333 qdrant/qdrant (or use Qdrant Cloud). Keyword-only search works without Qdrant.
  4. MCP config — add the server to your assistant’s MCP settings. Minimal example (self-hosted Qdrant):
{
  "mcpServers": {
    "vibe-hnindex": {
      "command": "npx",
      "args": ["-y", "vibe-hnindex"],
      "env": {
        "OLLAMA_URL": "http://localhost:11434",
        "OLLAMA_MODEL": "bge-m3:567m",
        "QDRANT_URL": "http://localhost:6333"
      }
    }
  }
}
  1. Restart the IDE or assistant, then in chat ask to index a path and search — see First steps.

For Qdrant Cloud, add QDRANT_API_KEY and set QDRANT_URL to your HTTPS cluster URL — details in Getting started.

Optional rerank (RERANK_URL)

Semantic/hybrid search already uses Ollama (OLLAMA_URL, OLLAMA_MODEL e.g. bge-m3:567m) for query vectors and Qdrant for retrieval. After that, the server can reorder the top pool of hits:

  • Without RERANK_URL: reorder by Qdrant semantic scores (no extra network service). This is enough for most setups, including when you only run Ollama + Qdrant.
  • With RERANK_URL: POST JSON { "query", "documents" } to your URL; response { "scores": number[] } (same length as documents). Use a small HTTP service you host that wraps your reranker; Ollama does not expose this contract on :11434 by default.

Ollama vs rerank: pulling a reranker model in Ollama (e.g. qllama/bge-reranker-v2-m3) does not replace RERANK_URL—you still need an adapter service unless you only rely on the built-in Qdrant reorder. See Configuration → Rerank.

| Env | Role | |-----|------| | SEARCH_RERANK | false disables post-retrieval reorder entirely (default: enabled). | | SEARCH_RERANK_POOL | Max candidates considered before trim (default 50). | | RERANK_URL | Full URL of your {query, documents}{scores} API (optional). | | RERANK_TIMEOUT_MS | Timeout for that POST (default 15000). |

Google Antigravity

Use the same mcpServers block as above, but save it in Antigravity’s MCP file:

| | | |--|--| | File | mcp_config.json under .gemini/antigravity/ in your user folder | | Windows | C:\Users\<your-username>\.gemini\antigravity\mcp_config.json | | macOS / Linux | ~/.gemini/antigravity/mcp_config.json | | UI | menu → MCPManage MCP ServersView raw config |

Step-by-step: Integrations → Google Antigravity.


Features (short)

| | | |--|--| | Search | Keyword (FTS5), semantic (vectors), hybrid (RRF fusion); optional post-retrieval reorder (Qdrant scores, or RERANK_URL) | | Storage | SQLite on disk; Qdrant for vectors | | Indexing | Incremental (hash per file), many languages, .hnindexignore | | Resilience | If Qdrant/Ollama unavailable, keyword search can still work |


Architecture


License

MIT — see LICENSE.

Contributing

Issues and PRs: github.com/AndyAnh174/vibe-hnindex.

Contact

Ho Viet Anh (AndyAnh174) · [email protected] · GitHub