Requirements
- Python 3.11 and newer
- pipx (recommended), uv, or pip
Install with pipx (recommended)
pipx installs Docmancer in an isolated environment so it does not interfere with other Python packages:
pipx install docmancer
pipx ensurepath
export PATH="$(pipx environment --value PIPX_BIN_DIR):$PATH"
docmancer setup
Docmancer supports Python 3.11 and newer, so whichever interpreter pipx picks will work and you do not need to pin one. If you want a specific interpreter anyway, pipx still accepts --python /path/to/python.
pipx ensurepath updates your shell configuration for future terminals. The export line reads pipx's configured bin directory and makes docmancer available immediately, which is useful in an existing SSH session. If you omit the export, open a new terminal or reconnect over SSH before running docmancer setup.
Install with uv
If you already use uv, uv tool install puts Docmancer in its own isolated tool environment, the same way pipx does:
uv tool install docmancer
docmancer setup
Use uv tool install rather than uv pip install, because the latter installs Docmancer into the virtualenv you happen to be in instead of giving it an isolated environment of its own.
Install with pip
pip install docmancer
Optional extras
The base install is fully offline: SQLite FTS5 lexical retrieval, a vendored static embedding model, and sqlite-vec dense vectors. The extras below pull in heavier dependencies only when you need them:
| Extra | Adds |
|---|---|
docmancer[mcp] | The packaged stdio MCP server used by docmancer mcp serve |
docmancer[browser] | Playwright for JS-heavy docs sites via docmancer docs add --browser |
docmancer[crawl4ai] | Crawl4AI fetcher for difficult docs sites |
docmancer[embeddings-heavy] | FastEmbed + Qdrant client, required by the scale retrieval profile |
docmancer[embeddings-openai] | OpenAI embeddings provider |
docmancer[embeddings-voyage] | Voyage embeddings provider |
docmancer[embeddings-cohere] | Cohere embeddings provider |
PDF, DOCX, RTF, and HTML parsing ships in the base install, so local ingest of those formats needs no extra.
With pipx, inject an extra into the existing install:
pipx inject docmancer 'docmancer[embeddings-heavy]'
Verify the installation
docmancer status
status reports memory health, source coverage, security findings, pending review, agent delivery, and Cloud state. It also names the active retrieval profile and the vector and embedding backends behind it (by default: local, sqlite-vec, model2vec).
First-run setup
Run setup to create your config, initialize local storage, index your agents' memory, and connect coding agents:
docmancer setup
Setup prints the complete plan and a privacy warning, then waits for confirmation. Once confirmed it will:
- Create
~/.docmancer/docmancer.yamlwith default settings. - Initialize the SQLite database at
~/.docmancer/docmancer.db. - Warm the vendored static embedding model and index the memory your coding agents already wrote on this machine (opt out with
--no-index-memory; preview with--dry-run). - Combine that evidence into the machine-wide Markdown tree at
~/.docmancer/tree. - Auto-detect installed coding agents (Claude Code, Cursor, Codex, Cline, Gemini, OpenCode, Claude Desktop, GitHub Copilot).
- Install skill or instruction files so those agents can call
docmancer askfor memory anddocmancer docs queryfor documentation, and enable recall and lifecycle capture hooks where the agent supports them.
Setup only writes user-level integrations. It never modifies the repository you happen to be standing in; project-level installs stay an explicit docmancer agent install <agent> --project.
You can also install all agent integrations non-interactively, or only specific agents:
docmancer setup --all
docmancer setup --agent claude-code --agent cursor
docmancer setup --yes
Choose a retrieval profile
docmancer setup --profile local
docmancer setup --profile scale
local is the default: SQLite FTS5, sqlite-vec, and the vendored potion-base-8M model, with no daemon and no download. scale switches to Qdrant, FastEmbed dense embeddings, and sparse SPLADE for larger corpora, and it needs the embeddings-heavy extra plus a reachable Qdrant. Both profiles share the same memory semantics; only storage, embeddings, and operational capacity change.
No large model download
The default embedding model (potion-base-8M, ~8 MB) is vendored inside the package, so embedding and querying need no network at runtime. There is no Qdrant binary or 500 MB model fetch on the default path. The first docmancer docs add stays offline.
You can skip vectors entirely for an FTS5-only index:
docmancer docs add ./docs --no-vectors
Or set DOCMANCER_AUTO_VECTORS=0 to keep vectors off globally.
The optional embeddings-heavy extra adds FastEmbed and the Qdrant client used by the scale profile; only then does a larger model and the Qdrant binary download on first use.
Where things live
| Path | Content |
|---|---|
~/.docmancer/docmancer.yaml | Global config |
~/.docmancer/docmancer.db | SQLite FTS5 docs index |
~/.docmancer/sqlite-vec.db | sqlite-vec dense vectors for docs |
~/.docmancer/memory.db | Local memory index (override with DOCMANCER_MEMORY_DB) |
~/.docmancer/tree/ | Machine-wide Shared Memory Markdown |
~/.docmancer/embeddings-cache/ | Content-addressed embedding cache |
~/.docmancer/extracted/ | Extracted Markdown + JSON (inspectable) |
~/.docmancer/qdrant/ | Pinned Qdrant binary + storage (only on the scale profile) |
<project>/.docmancer/tree/ | Curated project memory |