Skip to main content

Compress local documentation context for coding agents.

Project description

Actionable context for every coding agent, stored as local Markdown.

PyPI version License: MIT Python 3.11 | 3.12 | 3.13

Install | Getting started | Commands | MCP | Cloud | Wiki

Docmancer local Context Workbench

Claude Code, Codex, Cursor, Gemini, OpenCode, Cline, Windsurf, and other coding agents already write useful decisions, rules, instructions, and session summaries, then forget them. Docmancer turns that scattered evidence into a curated Markdown memory tree that every supported agent can address, search, and compile into task-specific context.

Markdown files are canonical; the SQLite and vector index is disposable derived state that rebuilds from the files. Stable docmancer://memory/<id> addresses survive file moves, and every entry keeps its source attribution, revision lineage, and content hash. The complete single-machine product is free, local, and keyless: the default retrieval path uses packaged Model2Vec embeddings and sqlite-vec, with no daemon and no model download. FastEmbed and Qdrant remain an optional heavy path, and docs retrieval runs as a separate surface on the same engine.

Install

pipx install docmancer --python python3.13

Getting started

Five steps take you from a fresh install to agents that recall and capture memory automatically. Every step is local and reversible.

1. Install skills into your agents

docmancer setup

setup discovers supported agents (Claude Code, Codex, Cursor, Gemini, OpenCode, Cline, and others) and installs skill files that teach them to call the docmancer CLI directly. No memory is captured yet; this only makes the agents docmancer-aware.

2. Create a memory tree

cd /path/to/project
docmancer init

init creates ./.docmancer/tree for canonical curated memory and ./.docmancer/inbox for uncurated evidence, without enabling capture. Global memory lives under ~/.docmancer/tree. Use --scope global on later commands to target it.

3. Populate the tree

You can seed the tree three ways and mix them freely.

Harvest what your agents already wrote. Preview is read-only; --apply copies bounded evidence into the inbox and never edits the original source file.

docmancer harvest ~/.claude/projects/my-project
docmancer harvest ~/.claude/projects/my-project --apply

Curate inbox notes or any Markdown file into complete curated files. Preview shows the whole file; --apply writes it. Deterministic local curation is the default. Add --llm --yes-provider to opt into BYOK synthesis, which redacts evidence before the provider call, validates citations, rejects mandatory authority, and falls back to deterministic curation on failure.

docmancer curate --source ./notes/release.md --path decisions/release.md
docmancer curate --source ./notes/release.md --path decisions/release.md --apply

Write a decision directly, then rebuild the disposable local index:

docmancer write $'# Release process\n\nDeploy the API on Railway.' --path deployment/release.md
docmancer reindex

Existing-file changes always require the current content hash (--expect <hash>), which stops a stale or concurrent client from silently overwriting newer Markdown. The same guard protects edit and move.

4. Turn on automatic recall and capture

docmancer agent install claude-code --hooks --capture-hooks
docmancer agent install codex --hooks --capture-hooks

--hooks installs recall: relevant curated context is injected at session start and on each prompt, fenced explicitly as reference data rather than instructions. --capture-hooks installs capture: redacted session checkpoints are written into the inbox. Capture is opt-in, bounded, fail-open, and never blocks the coding session. Captured notes stay in the inbox until you curate them, so recall only ever surfaces curated memory. Remove either with docmancer agent remove claude-code --hooks.

5. Recall and browse

docmancer context "prepare the production release" --project-path "$PWD"
docmancer search "Railway deployment"
docmancer read docmancer://memory/<id>
docmancer web

context runs the Context Compiler: it selects mandatory policy first, then relevant curated memory within the token budget, and returns exact stable citations with a bounded retrieval trace. web opens an authenticated loopback-only workbench on 127.0.0.1; it never binds to an external interface.

Local workbench

docmancer web
docmancer web --project /path/to/project --no-open

The workbench exposes the curated tree, Context Compiler, inbox, source inventory, capture status, agent delivery, docs, and optional Cloud state. Canonical file mutations stay local and reuse the same hash guards as the CLI and MCP. Docs remain visibly separate from memory results.

Command line

docmancer init                         Create or adopt the project tree
docmancer write                        Write one curated Markdown file
docmancer read                         Resolve a stable address, path, or title
docmancer edit                         Guarded body update
docmancer move                         Guarded move or rename
docmancer search                       Search curated memory
docmancer context                      Compile task-specific context
docmancer harvest                      Preview or ingest read-only evidence
docmancer curate                       Preview or apply a complete curation operation
docmancer capture                      Process one bounded lifecycle event
docmancer reindex                      Rebuild disposable local indexes
docmancer status                       Inspect local, agent, security, and Cloud state
docmancer web                          Open the local Context Workbench
docmancer mcp                          Run or install the local MCP server
docmancer docs                         Manage separate documentation indexes
docmancer sync                         Push and pull encrypted Cloud revisions
docmancer agent                        Install agent skills and optional hooks
docmancer package-check                Verify distribution artifacts

The docmancer tree ... namespace remains as a compatibility alias for the top-level commands above. Older docmancer query and docmancer memory ... workflows are still available through the 0.8.x line and are scheduled for removal in 0.9.0; new integrations should use the curated tree and stable addresses.

MCP

docmancer mcp install codex --print
docmancer mcp serve

The MCP server exposes read_memory, search_memory, build_context, write_memory, guarded edit_memory and move_memory, and duplicate, recoverable trash, and restore. build_context is the same Context Compiler operation as the CLI context command. Tool annotations distinguish read-only, mutating, and destructive actions; responses are bounded and unknown arguments are rejected by the tool schema. A server pinned to a project cannot be redirected to another project by a tool argument.

Docs

Documentation search is a separate surface from memory:

docmancer docs init --dir .
docmancer docs add ./docs
docmancer docs add https://docs.pytest.org
docmancer docs query "How do I parametrize a fixture?"
docmancer docs list
docmancer docs sync

Optional encrypted Cloud

Local capture, curation, recall, MCP, docs, export, and the workbench never require an account. Paid Cloud adds encrypted transport, managed history and recovery, device continuity, and Team coordination.

docmancer cloud connect
docmancer sync
docmancer cloud devices
docmancer cloud disconnect

The local client encrypts revisions before transport. The hosted service cannot execute local actions, connect back to the loopback application, or read plaintext memory. docmancer sync means encrypted Cloud continuity only; it is never a local reindex.

Data locations

  • <project>/.docmancer/tree/**/*.md: canonical curated project memory.
  • <project>/.docmancer/inbox/*.md: uncurated capture and harvested evidence.
  • <project>/.docmancer/trash/: recoverable local deletions.
  • ~/.docmancer/tree/**/*.md: canonical global memory.
  • ~/.docmancer/memory.db: rebuildable local retrieval state.
  • docmancer.yaml: optional secondary docs-index configuration.

There is no telemetry. Network access happens only for explicit documentation fetches, explicit provider-backed curation, package checks that contact registries, or encrypted Cloud operations.

More documentation

See the wiki for architecture, sources, integration details, Cloud behavior, and troubleshooting.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

docmancer-0.8.2.tar.gz (30.9 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

docmancer-0.8.2-py3-none-any.whl (29.4 MB view details)

Uploaded Python 3

File details

Details for the file docmancer-0.8.2.tar.gz.

File metadata

  • Download URL: docmancer-0.8.2.tar.gz
  • Upload date:
  • Size: 30.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for docmancer-0.8.2.tar.gz
Algorithm Hash digest
SHA256 832320ea0237df4f5db5e36e20f374a5bfeb9214f9b086acb3d2f5aa296b4999
MD5 c3525e0bfd8b187a46c8ad8b892f31d5
BLAKE2b-256 71aacf3b37125e2c4cfe31e8015f0967743f80aa1fcbb1a758088c8f7793195e

See more details on using hashes here.

Provenance

The following attestation bundles were made for docmancer-0.8.2.tar.gz:

Publisher: publish.yml on docmancer/docmancer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file docmancer-0.8.2-py3-none-any.whl.

File metadata

  • Download URL: docmancer-0.8.2-py3-none-any.whl
  • Upload date:
  • Size: 29.4 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for docmancer-0.8.2-py3-none-any.whl
Algorithm Hash digest
SHA256 c0aca1c67f1f9872e65d5f557dd9cbea7721785b80e498d3544a1982912e0e61
MD5 635b4ddf1f89d8373937036cbdec6e67
BLAKE2b-256 dee3dec5e29802d56f3978c8f48ec9c9acd5e0e9ca5dbb78590241a225f77330

See more details on using hashes here.

Provenance

The following attestation bundles were made for docmancer-0.8.2-py3-none-any.whl:

Publisher: publish.yml on docmancer/docmancer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page