Compress local documentation context for coding agents.
Project description
Your agents' memory, reconciled, reviewable, and shared.
Install | Context packs | Commands | Cloud | Wiki
Claude Code, Codex, Cursor, Gemini, OpenCode, Cline, Windsurf, and other coding agents already write memory, instructions, and rules across your machine. Docmancer harvests that evidence into one local index, reconciles duplicates and revision history, and proposes approved context that every installed agent can use.
Raw memory is evidence, not the source of truth. Approved context remains a set of individually editable Markdown records grouped by versioned pack manifests. This keeps provenance and review granular without generating one enormous memory file.
The default path is local and keyless. SQLite FTS5, the packaged potion-base-8M model, and sqlite-vec provide hybrid retrieval without a daemon or model download.
Install
pipx install docmancer --python python3.13
docmancer setup
docmancer web
docmancer web starts a loopback-only server on 127.0.0.1, opens your browser, and authenticates that browser once with a single-use token. Nothing listens on any external interface, and the footer always shows the active Loopback only 127.0.0.1 binding. Bare docmancer prints help, so the browser interface and the deterministic CLI are the two ways to drive it.
The sidebar is organized into three groups:
- Operate covers day-to-day memory. Overview is the local control room, showing index health, prepared context, docs, and the local-versus-cloud trust boundary at a glance. Context holds the deliberate packs your agents carry, which you can inspect, edit, remove, distill, and share. Memory browses every indexed atom with its provenance. Sources lists the agent memory, instructions, and rules Docmancer harvested. Docs keeps documentation browsing separate from memory.
- Review is where you approve and clean up. Audit is the first-class home for masked security findings, while Intelligence and Maintenance cover proposed improvements and index upkeep.
- Cloud manages the optional encrypted sync surfaces: Personal Sync, Devices, Team, and Settings.
Press ⌘K to open the Run or go to palette, which runs a command such as /sync or /distill and jumps between pages. Each page also exposes a Run command button for the actions that apply there, and a header toggle switches between light and dark themes.
First run: activate your context
Seeing 0 active on the Context page is normal after setup. Sources are evidence, and Docmancer does not silently turn harvested agent memory into approved context. You must review the proposed changes once before they become active and reach your agents.
In the web app:
- Open the ⌘K palette or a Run command button and run
/syncto harvest current sources and reconcile them. - Open Context. If a proposal is pending review, select it to inspect the proposed statements.
- Approve the proposal to activate it, or reject it to discard.
- If there is no pending proposal, run
/distillfirst, then review the new proposal.
After approval, the destination pack changes from 0 active to the number of approved statements. A later /sync refreshes managed agent projections automatically. You can also run docmancer agent refresh explicitly.
The equivalent CLI flow is:
docmancer sync --local-only
docmancer memory review
docmancer memory review <proposal-id>
docmancer memory review <proposal-id> --approve
docmancer memory show personal-defaults
docmancer agent refresh
Personal defaults and Current project fill only after you approve personal proposals or add context directly. Team standards and Team project remain empty until personal context is shared and the resulting team proposal is approved.
Canonical context packs
Docmancer creates four default packs:
| Pack | Audience | Applicability |
|---|---|---|
| Personal defaults | Personal | Global |
| Current project | Personal | Project |
| Team standards | Team | Global |
| Team project | Team | Project |
Each approved statement is one revisioned Markdown record. Pack manifests store stable pack identity, ordered record references, scope, revision lineage, and publication state. Rendered pack documents are disposable views.
docmancer sync
docmancer memory distill --into personal-defaults
docmancer memory review
docmancer memory review <proposal-id> --approve
docmancer memory show personal-defaults
Distillation produces a patch with additions, semantic consolidations, removals, project overrides, unresolved contradictions, source paths, and confidence. Personal defaults admit durable preferences, constraints, workflows, and commands rather than paginating through one-off task history. Exact duplicates and explicit revision lineage reconcile automatically. New canonical statements, semantic merges, contradiction winners, and team changes require review.
Default distillation evaluates the complete eligible corpus and has no arbitrary operation cap. Pack manifests record the fully reviewed evidence fingerprint, and each approved record retains its contributing source-atom identity. When the complete evidence set has been reviewed and has not changed, another distill produces no patch. The optional CLI --limit creates a review batch instead. After that batch is approved or rejected, the next distill continues with the remaining evidence.
Automatic agent delivery
Approved context is compiled with this precedence:
- Team project context
- Personal project context
- Team standards
- Personal defaults
- Relevant non-canonical evidence
Hooks inject compiled context automatically for agents that support them. Other installed agents receive the same approved context through a managed projection. Projections are disposable outputs and are never harvested as sources of truth.
docmancer agent install claude-code --hooks
docmancer agent install codex --hooks
docmancer agent install cursor
docmancer agent refresh
docmancer sync also refreshes installed projections. It never copies the complete raw corpus into agent files.
Team workflow
Sharing always creates a review proposal:
docmancer memory share personal-defaults
docmancer memory review
docmancer memory review <proposal-id> --approve
docmancer memory show team-standards
Reviewers can approve, reject, or edit proposed operations. Approval creates team-owned canonical records and revises the destination manifest. Project-level exceptions remain in a project pack and can explicitly reference the inherited standard they override.
Personal record edits activate immediately. Team record edits and removals become proposals. Removing approved context writes a content-free tombstone so replayed cloud revisions cannot resurrect it.
Command line
The public root surface is intentionally small:
docmancer
docmancer setup
docmancer sync [--local-only]
docmancer query <TEXT>
docmancer memory
docmancer docs
docmancer status [--check]
docmancer web [--project DIR] [--no-open]
docmancer cloud
docmancer agent
docmancer mcp
Memory actions:
docmancer memory show [PACK_OR_ID]
docmancer memory add <TEXT> [--into PACK]
docmancer memory edit <ID> [TEXT]
docmancer memory remove <ID>
docmancer memory distill [--into PACK]
docmancer memory review [PROPOSAL]
docmancer memory share <PACK>
docmancer memory export [PACK]
Documentation actions live under one namespace:
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
docmancer docs remove <source>
Older commands remain as hidden compatibility aliases for one release and print their replacement to standard error.
Status and security
docmancer status
docmancer status --check
docmancer status --json
Status combines index health, source and harness coverage, masked security findings, installed-agent delivery, pending reviews, and cloud state. Secret values are redacted before durable writes, indexing, provider calls, or cloud encryption.
Optional encrypted cloud sync
Cloud sync is optional and never gates local capture, recall, MCP, docs, or Git export.
docmancer cloud
docmancer cloud connect
docmancer cloud sync
docmancer cloud devices
docmancer cloud devices --approve <device-id> --fingerprint <fingerprint>
docmancer cloud devices --revoke <device-id>
docmancer cloud disconnect
The device list shows each registration's state, full device ID, fingerprint, key version, last-seen time, enrolment time, and which registration belongs to the current CLI. Revocation blocks that registration from future Cloud sync but cannot erase memory or keys it already held. Docmancer will not revoke the last approved device.
Protocol v1 synchronizes durable record revisions and tombstones. Protocol v2 synchronizes atoms, relations, overrides, pack manifests, and review proposals as encrypted graph objects. The server receives opaque encrypted envelopes and routing metadata. It never receives plaintext memory, tags, pack content, local paths, raw local IDs, private keys, workspace keys, or recovery keys.
The complete memory interface runs locally through the CLI, MCP server, or docmancer web. Cloud sync exchanges signed encrypted revisions between explicitly connected devices. The service cannot request local actions or connect back to the localhost application.
Decrypted local caches support offline recall. Markdown export remains available for review, backup, and leaving the service.
Where data lives
~/.docmancer/memory.dbis the rebuildable local search and graph index.~/.docmancer/memories/*.mdcontains personal canonical records.~/.docmancer/context/team-memory/*.mdcontains locally decrypted team-wide records.~/.docmancer/context/packs/*.yamlcontains versioned pack manifests.~/.docmancer/context/proposals/*.yamlcontains review proposals.<repo>/.docmancer/memory/*.mdremains the Git-reviewable team project store.~/.docmancer/memory-tombstones.jsoncontains content-free suppression identities and hashes.
There is no telemetry. Local commands do not phone home. Network access occurs only for explicit cloud sync, documentation fetches, or optional provider-backed operations.
More documentation
See the wiki for architecture, supported sources, installation targets, configuration, cloud recovery, and troubleshooting.
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.8.0.tar.gz.
File metadata
- Download URL: docmancer-0.8.0.tar.gz
- Upload date:
- Size: 30.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
28e20c03e949bb601c39427b369e69b8c04026d247111f11ecf6ff71808dd589
|
|
| MD5 |
edd0739e61aa9c0ec9a0892eb63fbc4a
|
|
| BLAKE2b-256 |
313b6e77d4093e78a4620007bc637abfa8f24478caf6c829edce122575766069
|
Provenance
The following attestation bundles were made for docmancer-0.8.0.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.8.0.tar.gz -
Subject digest:
28e20c03e949bb601c39427b369e69b8c04026d247111f11ecf6ff71808dd589 - Sigstore transparency entry: 2213981037
- Sigstore integration time:
-
Permalink:
docmancer/docmancer@455bfb690b8455b805fc80e547d2e56e5d05f659 -
Branch / Tag:
refs/tags/v0.8.0 - Owner: https://github.com/docmancer
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@455bfb690b8455b805fc80e547d2e56e5d05f659 -
Trigger Event:
push
-
Statement type:
File details
Details for the file docmancer-0.8.0-py3-none-any.whl.
File metadata
- Download URL: docmancer-0.8.0-py3-none-any.whl
- Upload date:
- Size: 29.3 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b60008301989985f493f2a980acd1bb92f6b2299498fddf4a3ffa2eb60d32d8c
|
|
| MD5 |
f85d1f230840a9ce645ecf9a48ef2a16
|
|
| BLAKE2b-256 |
79c7c77870aa3a1a61768c653878e25bf4f47cdced4151f069eee88a38d9a2a8
|
Provenance
The following attestation bundles were made for docmancer-0.8.0-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.8.0-py3-none-any.whl -
Subject digest:
b60008301989985f493f2a980acd1bb92f6b2299498fddf4a3ffa2eb60d32d8c - Sigstore transparency entry: 2213981225
- Sigstore integration time:
-
Permalink:
docmancer/docmancer@455bfb690b8455b805fc80e547d2e56e5d05f659 -
Branch / Tag:
refs/tags/v0.8.0 - Owner: https://github.com/docmancer
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@455bfb690b8455b805fc80e547d2e56e5d05f659 -
Trigger Event:
push
-
Statement type: