GNO vs Qmd
Both run local hybrid search with an MCP server over the notes you keep. Qmd is a single-purpose CLI with four MCP read tools. GNO adds PDF and Office indexing, a 7-tool or 38-tool MCP profile, Context Capsules, verified answers, remember/recall memory, a workspace UI, and optional publishing.
Compare GNO and Qmd for local knowledge search. Both provide BM25 + vector + reranked retrieval with query expansion and an MCP server, the search layer the LLM Wiki pattern needs. GNO adds multi-format indexing, deterministic Context Capsules, verified answers, scoped remember/recall memory, agent skills, a workspace UI, and optional hosted publishing. Checked against qmd 2.8.3.
- Choose Qmd if
- You keep markdown and code in git, want one CLI with four MCP read tools, and prefer the smallest tool that runs hybrid search locally.
- Choose GNO if
- You want hybrid search over markdown plus PDFs, Office files, and portable exports; Context Capsules and verified answers on the way out; remember/recall memory for the agents you authorize; documented agent integrations; and a browsable workspace with optional hosted publishing.
The LLM Wiki search layer
Karpathy’s LLM Wiki pattern needs a local search engine over markdown files with hybrid BM25 + vector retrieval and an MCP server so agents can query the compiled knowledge. Both Qmd and GNO fit this role, and both run the whole pipeline on the machine with GGUF models through node-llama-cpp. The differences are the corpus each one reads, the tool surface each one advertises, and what sits beyond search.
Format support
- Qmd — Text files matched by a per-collection glob (
**/*.mdby default); code in TypeScript, JavaScript, Python, Go, and Rust gets AST-aware chunking. PDFs and Office files are outside its indexer. - GNO — Markdown, PDF, DOCX, XLSX, PPTX, plain text, and code files, plus mail, calendar, transcript, JSONL, and browser exports; indexed-document language detection covers seven languages
Retrieval
- Qmd —
searchis BM25,vsearchis vector, andqueryis the hybrid path: FTS + vector + query expansion + LLM reranking, fused with RRF. Thegeneratemodel role is a fine-tuned query-expansion model; Qmd returns ranked documents andqmd://URIs rather than generated answers. - GNO — BM25 + vector + cross-encoder reranking with query expansion, deterministic Context Capsules with exact line spans and content hashes, opt-in verified Ask that abstains below full claim support, and
gno query diagnosefor the document that should have come back
MCP surface
Qmd’s MCP server exposes four read tools: query, get, multi_get, and status, over stdio or a loopback HTTP transport that checks Origin and Host. The corpus is written from the CLI (collection add, update, embed, context), so its MCP surface is read-only by construction. Since 2.8.3 it speaks MCP revision 2026-07-28 through the official SDK 2.x while still serving 2025-era stdio clients.
GNO advertises 38 read-only tools by default and adds 21 write tools plus a read-only request-status lookup behind --enable-write, for 60 total; the opt-in core profile advertises 7 read tools (9 with writes) for sessions that should pay for fewer tool definitions. Both profiles speak the 2025-11-25 and 2026-07-28 protocol revisions on stdio and the resident HTTP endpoint. Beyond MCP, one command installs the agent skill for Claude Code, Codex, OpenCode, OpenClaw, or Hermes, and a loopback REST API and TypeScript SDK serve custom tooling.
Memory
Qmd is a retrieval layer: what an agent remembers is whatever lives in the files it indexes. GNO adds a memory contract on top of the same index. gno remember stores one fact as a markdown file under explicit scopes, a change is a hash-checked supersede that keeps the predecessor on disk, and gno recall returns the current facts, at most 8 under 512 tokens, cited by gno:// URI. The contract runs on the CLI, MCP (gno_recall read-only, gno_remember behind the write flag), REST, and the SDK.
Beyond search
GNO is also a workspace: a browsable collection tree, a knowledge graph, safe editing, and optional hosted publishing via gno.sh. Qmd stays a CLI and MCP server by design, a complete tool when search is the whole job.
Qmd claims on this page were checked against the README on tobi/qmd main (commit dbfd0b4, 2026-08-18) and the 2.8.3 changelog (2026-08-16).
Keep comparing
More head-to-head pages.
GNO vs Obsidian
Obsidian wins on plugins, Canvas, and visual note-taking. GNO wins on retrieval, agent access, and multi-format indexing. They compose well.
GNO vs Khoj
Khoj is a broader personal AI assistant platform. GNO is a tighter local retrieval and workspace engine for developer workflows.
GNO vs PrivateGPT
Both are privacy-first local RAG. PrivateGPT is a Python-first server stack. GNO is a local knowledge workspace with stronger retrieval UX and agent integration.
GNO vs Quivr
Quivr is a team-oriented second brain with cloud sync. GNO is a local-first retrieval workspace with CLI, REST API, and agent integration.
GNO vs AnythingLLM
AnythingLLM is a full chat app with document upload. GNO is a retrieval engine and workspace that plugs into your existing AI tools.
GNO vs Reor
Reor is a standalone note app with built-in chat. GNO indexes any folder and also ships a workspace editor, graph, and PDF viewer; you can keep Obsidian/VS Code or work in GNO’s UI.