getting started

Installation

System requirements, pipx and pip install methods, optional embedding and MCP extras, supported Python versions, and first-run setup.

Updated

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:

ExtraAdds
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:

  1. Create ~/.docmancer/docmancer.yaml with default settings.
  2. Initialize the SQLite database at ~/.docmancer/docmancer.db.
  3. 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).
  4. Combine that evidence into the machine-wide Markdown tree at ~/.docmancer/tree.
  5. Auto-detect installed coding agents (Claude Code, Cursor, Codex, Cline, Gemini, OpenCode, Claude Desktop, GitHub Copilot).
  6. Install skill or instruction files so those agents can call docmancer ask for memory and docmancer docs query for 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

PathContent
~/.docmancer/docmancer.yamlGlobal config
~/.docmancer/docmancer.dbSQLite FTS5 docs index
~/.docmancer/sqlite-vec.dbsqlite-vec dense vectors for docs
~/.docmancer/memory.dbLocal 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