getting started

Getting Started

Install Docmancer, index the memory your coding agents already wrote, and recall it locally.

Updated

What is Docmancer?

Docmancer is a local-first memory harness for coding agents. Your agents (Claude Code, Codex, Cursor) already write memory and working-context files all over your machine, each locked inside its own tool. Docmancer discovers all of it, indexes it into one local hybrid-search index, and lets you recall any past decision instantly and offline.

The same engine also does docs RAG as a secondary capability: point it at a folder of Markdown, PDF, DOCX, RTF, or HTML files, or at a docs URL (GitBook, Mintlify, generic web, GitHub), and query it the same way.

A fresh install ships everything needed and runs offline: SQLite FTS5 for lexical search, a static embedding model (potion-base-8M) vendored inside the package so there is no large model download and no network at runtime, and sqlite-vec for dense vectors in a single local file with no daemon. Results are fused with Reciprocal Rank Fusion.

Install

pipx install docmancer --python python3.13

Or with pip:

pip install docmancer

Optional extras pull in heavier dependencies only when you need them:

pip install 'docmancer[browser]'           # Playwright for JS-heavy docs sites
pip install 'docmancer[embeddings-heavy]'  # FastEmbed + Qdrant (sparse + managed vector server)

First run

Two commands take you from a fresh install to recalling your agents' memory:

docmancer setup
docmancer memory query "why did we pick Railway"

setup creates ~/.docmancer/ with the config and SQLite database, indexes the memory your coding agents already wrote (Claude Code, Codex, Cursor) plus repo-level CLAUDE.md / AGENTS.md instructions, auto-detects installed agents (Claude Code, Cursor, Codex, Cline, Gemini, OpenCode, Claude Desktop, GitHub Copilot), and installs their skill files. There is no large model download and no network at runtime.

Useful memory commands:

docmancer memory scan            # show what is present, split by kind
docmancer memory sync --dry-run  # preview what would be indexed (writes nothing)
docmancer memory sync            # (re)index agent memory
docmancer memory status          # where the index lives and how much it holds
docmancer memory clear           # delete the local memory index

Docs RAG on the same engine

docmancer ingest ./docs                              # index local files
docmancer add https://docs.pytest.org                # or a docs URL / GitHub repo
docmancer query "How do I parametrize a fixture?"    # hybrid search across the docs index

docmancer add is for URLs and GitHub repos; docmancer ingest is for local paths. Add --explain to any query to see which signal (lexical or dense) placed each result.

Where your data lives

The memory index is a single local SQLite file under ~/.docmancer/ (override with DOCMANCER_MEMORY_DB). Nothing is uploaded. Secrets are redacted on index, you can preview with docmancer memory sync --dry-run, scope the harvest with --include / --exclude, and docmancer memory clear deletes it.

What you get

  • Your agents' memory, unified. Claude Code agent memory, Codex memory, and Cursor / repo-level instruction files in one local index.
  • Hybrid by default. Every query fans out across FTS5 (lexical) and dense vectors, then fuses with RRF. Sparse SPLADE is available on the optional embeddings-heavy backend.
  • No large model download, offline at runtime. The static embedding model ships inside the package; cloud providers (OpenAI, Voyage, Cohere) are optional.
  • Inspectable and private. Secrets are redacted on index, docmancer memory status and docmancer inspect show what is stored, and every result carries its source.