Vibeleaderboard
Index / tool
Visit github.com
Category
Developer Tools
Rank
Pricing
Open Source
Type
TOOL
Use case
Data, Retrieval & Knowledge
Interfaces
CLI
Builder
tobi
Latest release
v2.8.3
Date

About

A local CLI search engine that indexes your markdown notes, meeting transcripts, docs, and knowledge bases. Uses BM25 full-text search, vector semantic search, and LLM re-ranking to find information across all your documents.

What it does

QMD turns folders into named collections, adds descriptive context at collection or path level, and returns matching documents, snippets, identifiers, or full content. You can search interactively, feed structured results to agents, or embed the same indexing and retrieval system inside Node.js and Bun applications.

Why it's ranked here

QMD offers an unusually complete local retrieval stack: collection management, contextual metadata, multiple search modes, document retrieval, agent-friendly output, an MCP server, and a typed library surface. The strongest case is operational flexibility. The same index serves terminal users, agent clients, and application code without requiring a hosted service.

What's good

Path-level context helps agents distinguish similar documents using information beyond their text. Keyword search can run without an LLM, while semantic retrieval and reranking remain available when quality matters more. JSON and file-list outputs suit automation. The HTTP MCP transport keeps models loaded across requests, avoiding repeated loading for multiple clients.

Tradeoffs

The full search path carries local model and hardware costs, including model storage, memory use, and possible VRAM use. Node users need version 22 or newer. Bun on macOS may require Homebrew SQLite for vector search, although keyword search still works without that extension. MCP silently ignores unknown parameters, so misspelled filters can produce unexpectedly broad results.

How to use it well

Use QMD when agents or developers repeatedly search private, file-based knowledge and need both quick lexical lookup and higher-cost semantic retrieval. Start with named collections and precise path context, then reserve reranking for ambiguous queries. It does not replace document authoring, synchronization, permissions, or hosted collaboration software.

Technical notes+

package.json defines a public ESM npm package, a qmd binary, Node 22 as the minimum runtime, Bun-oriented scripts, native SQLite dependencies, and platform-specific sqlite-vec packages. src/index.ts exposes the typed SDK and constructs a separate LlamaCpp instance for each store; models load on first use and unload after inactivity. src/store.ts implements SQLite-backed retrieval, scored document chunking, overlapping chunks, BM25 and vector paths, and hybrid reranking. src/db.ts selects better-sqlite3 under Node or Bun SQLite under Bun, enables WAL, applies a busy timeout, and reports platform-specific vector-extension guidance. src/ast.ts adds Tree-sitter breakpoints for TypeScript, TSX, JavaScript, Python, Go, and Rust, with regex fallback when parsing or grammar loading fails. src/llm.ts resolves local GGUF model roles for embedding, query generation, and reranking.

Observed

License
MIT
Primary language
TypeScript with ECMAScript modules
Packaging
Public npm package @tobilu/qmd, installable globally or as an application dependency; direct execution is documented through npx and bunx
Interfaces
Command-line interface, typed Node.js and Bun library, and MCP over stdio or Streamable HTTP
Runtime support
Node.js 22 or newer; Bun is also documented and supported by the database compatibility layer
Native platform packages
sqlite-vec packages are declared for macOS ARM64 and x64, Linux ARM64 and x64, and Windows x64
Storage
SQLite index with WAL mode and sqlite-vec for vector search

Read from README.md, package.json, src/index.ts, src/db.ts, src/ast.ts, src/llm.ts, src/paths.ts, src/store.ts, src/collections.ts, src/maintenance.ts, src/bench-rerank.ts.

What it can do

  • Index markdown files for search

    Markdown files, notes, and documents → Searchable index database

  • Perform full-text search using BM25

    Search query text → Ranked list of matching documents

  • Execute semantic vector search

    Natural language query → Semantically similar documents and passages

  • Re-rank search results using LLM

    Initial search results and user query → Improved ranking of most relevant results

  • Search meeting transcripts

    Meeting transcript files and search terms → Relevant meeting segments and discussions

  • Query knowledge base documents

    Documentation files and information requests → Matching knowledge base entries

Tags

searchclimarkdownknowledge-baselocalsemantic-searchllmdocumentation

Tech Stack

Node.jsTypeScript

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.