Compress local documentation context for coding agents.
Project description
Docmancer turns any pile of docs into a hybrid-search index your coding agent can query through a simple CLI. Point it at a folder of Markdown / PDF / DOCX / RTF / HTML, or at a docs URL (GitBook, Mintlify, generic web, GitHub), and ask questions in natural language. Results come back as compact context packs with source attribution, sized to fit a token budget.
A fresh install ships everything you need: SQLite FTS5, a docmancer-owned local Qdrant for dense and sparse vectors, FastEmbed for embeddings (no API key), and a hybrid retriever that fuses lexical, dense, and sparse signals with Reciprocal Rank Fusion.
Install
pipx install docmancer # Python 3.11, 3.12, or 3.13
If pipx picks an unsupported interpreter, pin one: pipx install docmancer --python python3.13.
First run
Three commands take you from a fresh install to a grounded query:
docmancer setup # config + database + agent skills
docmancer ingest ./docs # index local files
docmancer query "How do I authenticate?" --explain # hybrid search across the index
setup creates ~/.docmancer/ with the config and SQLite database, auto-detects installed coding agents, and installs their skill files. On the first ingest, docmancer downloads the pinned Qdrant binary (~60 MB) and the FastEmbed models (~500 MB) into ~/.docmancer/. After that, ingest stays offline.
Prefer to index a docs site instead of local files?
docmancer add https://docs.pytest.org
docmancer query "How do I parametrize a fixture?" --mode hybrid
What you get
Hybrid search by default. query fans out across SQLite FTS5 (lexical, BM25-reranked), Qdrant dense vectors (FastEmbed bge-base-en-v1.5), and SPLADE sparse vectors, then fuses results with Reciprocal Rank Fusion. The token budget keeps responses small so your agent has room for actual work:
Context pack: ~900 tokens vs ~4800 raw docs tokens (81.2% less docs overhead, 5.33x agentic runway)
No API keys required. FastEmbed runs locally. The optional OpenAI / Voyage / Cohere providers exist if you want them; if the key is missing, ingest falls back to FTS5-only and warns rather than aborting.
Inspectable. Every section is written to ~/.docmancer/extracted/ as Markdown plus JSON. docmancer inspect shows index stats. docmancer query --explain shows which signal (lexical / dense / sparse) placed each result.
Agent integration built in. docmancer setup drops skill files for Claude Code, Cursor, Codex, Cline, Claude Desktop, Gemini, GitHub Copilot, and OpenCode. Your agent can call docmancer query directly from its conversation loop.
Where to next
The wiki is the authoritative reference for everything else. Pick a page based on what you need:
| Page | When to read it |
|---|---|
| Commands | Core docs commands and advanced pack commands |
| Configuration | All YAML keys, env vars, and the API-key reference |
| Architecture | How ingest, retrieval, and MCP runtime actually work |
| Supported Sources | What file formats and URL providers are covered |
| Install Targets | Where each agent's skill file lands |
| MCP Packs | Version-pinned API tool packs |
| Troubleshooting | Common errors and fixes |
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file docmancer-0.5.2.tar.gz.
File metadata
- Download URL: docmancer-0.5.2.tar.gz
- Upload date:
- Size: 1.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f3719902dbf1e2d32c86406241da7f5556d5e6ffcaffa812faa0b5be4470d249
|
|
| MD5 |
a8b510410a5d672c1cde4514c207eeea
|
|
| BLAKE2b-256 |
29dae5857229f5ee6e267de7d51dae48ada8038ce51de165ca646d8cb3681b39
|
Provenance
The following attestation bundles were made for docmancer-0.5.2.tar.gz:
Publisher:
publish.yml on docmancer/docmancer
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
docmancer-0.5.2.tar.gz -
Subject digest:
f3719902dbf1e2d32c86406241da7f5556d5e6ffcaffa812faa0b5be4470d249 - Sigstore transparency entry: 1554134736
- Sigstore integration time:
-
Permalink:
docmancer/docmancer@7f85a589a4b3f479debac886f73c9a740356752b -
Branch / Tag:
refs/tags/v0.5.2 - Owner: https://github.com/docmancer
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7f85a589a4b3f479debac886f73c9a740356752b -
Trigger Event:
push
-
Statement type:
File details
Details for the file docmancer-0.5.2-py3-none-any.whl.
File metadata
- Download URL: docmancer-0.5.2-py3-none-any.whl
- Upload date:
- Size: 189.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
375022dcde57595665aee1785b7e4d5fc1774e37871e14107b2663870b855a46
|
|
| MD5 |
b268ccd503f918a67972ce0266037973
|
|
| BLAKE2b-256 |
ac8d6db45e674bbf1bc1e42b22bbae4c7010682e195cff5b7c21536432a7d414
|
Provenance
The following attestation bundles were made for docmancer-0.5.2-py3-none-any.whl:
Publisher:
publish.yml on docmancer/docmancer
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
docmancer-0.5.2-py3-none-any.whl -
Subject digest:
375022dcde57595665aee1785b7e4d5fc1774e37871e14107b2663870b855a46 - Sigstore transparency entry: 1554134757
- Sigstore integration time:
-
Permalink:
docmancer/docmancer@7f85a589a4b3f479debac886f73c9a740356752b -
Branch / Tag:
refs/tags/v0.5.2 - Owner: https://github.com/docmancer
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7f85a589a4b3f479debac886f73c9a740356752b -
Trigger Event:
push
-
Statement type: