Open source · MIT license

Your docs in. Smarter agents out.

Docmancer is a local-first retrieval engine for coding agents. Point it at your docs (folders of Markdown, PDFs, or a docs site) and it builds a search index on your machine. Your agent asks questions in plain language and gets answers back with sources attached. No cloud round-trips, no embedding bills, nothing leaves your laptop.

$pipx install docmancer --python 3.13
docmancer ingest ./docs
docmancer local RAG demo: install, ingest a local docs corpus, then query

Works with

Claude Code logoClaude Code
Cursor logoCursor
Codex logoCodex
Cline logoCline
OpenCode logoOpenCode
Gemini logoGemini
Claude Desktop logoClaude Desktop

Features

Built for serious retrieval. Local by default.

01  ·  Stays local

Your documents never leave your machine.

Embeddings run locally with FastEmbed. The vector store is a docmancer-owned Qdrant binary under your home folder. No cloud calls during ingest or query, no API key required, no surprise bills at the end of the month.

~ stays local
docmancer ingest ./docs
embedded locally with bge-base-en-v1.5
stored in local Qdrant + SQLite
0 network calls, 0 API keys used

02  ·  Search that actually works

Three ways to find a passage, fused into one.

Keyword search misses paraphrases. Pure semantic search misses exact terms and rare words. Docmancer runs lexical (SQLite FTS5), dense (FastEmbed vectors), and sparse (SPLADE) signals in parallel, then fuses them with Reciprocal Rank Fusion so the right passage rises to the top.

~ search that actually works
docmancer query "auth flow" --explain
lexical: 4 dense: 6 sparse: 3 hits
fused with Reciprocal Rank Fusion
top: docs/auth/oauth.md (dense + lexical)

03  ·  Reads almost anything

Markdown, PDF, DOCX, or a docs site.

Drop a folder of Markdown, PDFs, Word docs, RTF, or HTML. Or point at a docs URL and docmancer figures out the rest. GitBook, Mintlify, generic web pages, and GitHub READMEs are all recognised and normalised into the same index.

~ reads almost anything
docmancer add https://docs.pytest.org
detected source: Mintlify
crawled 87 pages, normalised to Markdown
merged into the local index

04  ·  Answers with receipts

Every result carries its source.

Results come back as a token-budgeted context pack with file paths or URLs attached, so your agent (and you) can verify what it is grounded on. Add --explain to see which signal placed each hit, and inspect the extracted Markdown on disk whenever you want.

~ answers with receipts
docmancer query "parametrize a fixture"
pack: ~900 tokens (vs ~4800 raw)
81% less docs overhead, sources attached
[1] docs.pytest.org/how-to/fixtures

05  ·  Drops into your agent

Your editor already knows how to call it.

One command auto-detects your installed agents and writes their skill files. Claude Code, Cursor, Codex, Cline, Claude Desktop, Gemini, GitHub Copilot, and OpenCode all learn to call docmancer query directly from the conversation loop. No config to copy, no MCP plumbing to remember.

~ drops into your agent
docmancer setup
detected: Claude Code, Cursor, Codex
wrote skill files for 3 agents
ready: ask your agent a question

Process

How it works.

Three commands take you from a fresh terminal to a coding agent that can actually look things up in your docs. About three minutes, no API keys.

01

Install

One pipx command pulls docmancer. Run docmancer setup once and it creates your local index, downloads the embedding model, and wires up the agents already installed on your machine.

$ docmancer setup
02

Ingest

Point docmancer at a folder of files or a docs URL. It chunks the content by heading, embeds each section locally, and writes it into your hybrid index. Re-run any time the source changes.

$ docmancer ingest ./docs
03

Ask

Your agent now has a new tool. Ask a question in plain language and get a compact, source-attributed answer back. Add --explain when you want to see why each result was chosen.

$ docmancer query "auth flow" --explain

FAQ

Questions, answered.

Nowhere. Ingest, embedding, indexing, and query all run on your machine. Embeddings use FastEmbed locally; the vector store is a docmancer-owned Qdrant binary under ~/.docmancer. The optional OpenAI, Voyage, and Cohere embedding providers exist if you want them, but the default path makes no outbound calls.

Stop pasting docs into your agent.

One pipx line. About three minutes. Your docs stay on your machine, your agent gets a tool it can actually search them with.

$pipx install docmancer --python 3.13