关于 Docmancer
Docmancer 是一个仅本地运行的 MCP 服务,用于基于来源引用的 Markdown 记忆与文档检索。它面向使用 Claude Code、Codex、Cursor 等多种编码 Agent 的开发者,可把各 Agent 记录的决策与上下文集中到同一份可读的本地 Markdown 中。
主要功能
- 01本地 Markdown 共享记忆,可读可编辑
- 02回答附带来源引用,标明来自哪个 Agent
- 03加密本地备份与恢复,过滤密钥和认证文件
- 04写入记忆前需审核差异,默认不写入
- 05文档库与个人记忆分开,支持检索 API 文档
适用场景
- 01让多个编码 Agent 共享同一项目决策与规则
- 02查询某个技术选择的历史依据与对话证据
- 03在新机器上恢复 Agent 会话与配置
MCP 相关
Docmancer 通过 MCP 向客户端暴露记忆与文档检索能力,并可通过 docmancer mcp install 为 Codex 等客户端注册,作为本地服务的另一种传输方式。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
20收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| limit | integer | 否 | 返回的匹配结果数量上限。默认值因工具而异。 |
| query | string | 是 | 要在本地记忆或文档索引中搜索的自然语言词语。 |
| include_history | boolean | 否 | 为 true 时,除活动证据外,还包括历史或已被取代的记忆证据。 |
| expand_relations | boolean | 否 | 为 true 时,在直接匹配项旁边加入相关记忆条目。 |
详细介绍
你的编码 Agent 会记住在一台机器上发生的事
Agent 备份和恢复是开发预览版命令。目前已支持本地加密归档。托管云快照仍需通过迁移和恢复验收后才会开放。
Docmancer 可安全恢复 Agent 的会话、记忆和设置,然后让你使用的每个 Agent 都能获取实用的项目上下文。
Claude Code 和 Codex 可以搜索它们已在一台机器上写入的文件。普通的点文件工具可以复制目录。但两者都无法提供面向 Agent、剔除机密并经过结构验证的备份,也不具备项目映射、冲突隔离,以及从原始历史记录到共享项目记忆的审核流程。
先了解 Docmancer 可以保护哪些内容:
docmancer backup --dry-run
创建免费的口令加密本地归档:
docmancer backup --local --to ~/Backups/agents.dmbak
在新机器上,关闭 Claude Code 和 Codex,然后预览恢复内容:
docmancer restore ~/Backups/agents.dmbak --dry-run
docmancer restore ~/Backups/agents.dmbak
Docmancer 会恢复缺失的历史记录、跳过相同文件、仅合并安全配置,并隔离内容不同的会话。它绝不会复制身份验证存储、.env 文件、MCP 环境变量的字面值、缓存、日志、遥测数据或机器密钥。
备份或恢复后,本地整理功能会从受保护的历史记录中找出长期有效的决策和约束。每项建议都会关联到确切的对话记录证据,并等待审核:
docmancer consolidate
docmancer consolidate --review PROPOSAL_ID
docmancer consolidate --approve PROPOSAL_ID
你的 Agent 已经学到了这些,只是它们无法互相交流。
Claude Code 知道你为什么从 Railway 迁走。Codex 学会了你的迁移约定。Cursor 还在遵循一条你两个月前就推翻的规则。每个 Agent 都记下了一些东西,但它们彼此不一致,而且你在任何能查看的地方都找不到这些内容。
这些知识是真实存在的,而且已经在你的磁盘上。它们散落在 CLAUDE.md 文件、AGENTS.md 文件、Cursor 规则、Agent 记忆目录和会话历史中。你使用的每种工具都把它们放在不同的位置,采用不同的格式。
Docmancer 围绕两个问题构建,并按以下顺序处理:
- 我得向每个编码 Agent 重新解释我的项目。怎样才能让它们都基于相同的上下文工作? Docmancer 将持久有效的内容整理成你可以阅读和编辑的本地纯 Markdown 文件,然后把相关文件提供给你连接的每个 Agent,这样你记录一次的决定就能传达给它们所有人。
- 我的编码 Agent 已经知道哪些关于我和我的工作方式的事情? Docmancer 会索引它们在这台机器上写下的记忆、指令和规则,并将相关来源附在每条结论上,这样你就能直接查看答案,而不是猜测。
除非你明确要求,否则任何内容都不会离开你的机器。没有遥测、没有账户,核心产品也不需要 API 密钥。
安装
pipx install docmancer
pipx ensurepath
export PATH="$(pipx environment --value PIPX_BIN_DIR):$PATH"
docmancer setup
pipx ensurepath 会让更改在之后打开的终端中持续生效。export 行会让 Docmancer 立即在当前终端中可用,这在已经建立的 SSH 会话中特别重要。如果 docmancer 仍然提示 command not found,请重新连接 SSH 后再试。
如果你使用 uv,uv tool install docmancer 也会以相同方式安装。
setup 会查找所有受支持的编码 Agent,向你展示完整计划和隐私警告,并等待你确认后再进行任何更改。接着,它会索引找到的内容、构建你的规范记忆、安装 Agent 技能,并在 Agent 支持的情况下启用自动召回。
向它提问:
docmancer ask "Why did we choose Railway?"
你会得到一个有范围限制、附带引用的答案,依据是你自己的 Agent 提供的证据。然后打开当前项目对应的应用:
cd /path/to/your-project
docmancer web
首次运行就是这些步骤。大约需要一分钟,而且 setup 不会修改你当前所在的项目。
你会获得什么
一份记忆,而不是六份。 每个受支持的 Agent 都读取同一份规范 Markdown,因此,只需记录一次的决定就能同时提供给 Claude Code、Codex、Cursor、Gemini 和其他 Agent,无需你四处复制。
有依据可查的答案。 召回结果会返回必需策略、整理后的记忆,以及附带稳定引用的 Agent 证据,让你看清哪个 Agent 在何时说了什么。可选的大模型会将这些证据整理成文字,但绝不会决定哪些内容可以纳入答案。
文件归你所有,而不是数据库。 Shared Memory 是普通目录中的普通 Markdown 文件。你可以用编辑器打开、提交、搜索或删除它们。即使移动文件,稳定的 docmancer://memory/<id> 地址仍然有效。
默认本地运行和离线使用。 默认配置使用 SQLite FTS5、sqlite-vec 和一个内置的小型嵌入模型。无需守护进程、无需下载模型、无需联网,也无需密钥。
编辑不会互相覆盖。 更改或移动现有记忆文件时,必须提供你上次读取的内容哈希,因此一个 Agent 无法悄无声息地覆盖另一个 Agent 更新的决定。
写入任何内容前都会征求批准。 当你要求 Docmancer 记住或更改某些内容时,它会准备一份完整的文件修改提案并展示差异。默认选择是否,之后在对话中说“是”也不会应用已保存的提案。
将同一份记忆带到 VPS 或另一台机器
上述完整产品可在一台机器上免费使用。可选的付费个人同步功能可在你使用笔记本电脑、VPS 或其他机器时,提供加密传输、托管修订历史、设备管理和恢复功能。
在已有记忆的机器上,运行:
docmancer cloud connect
通过浏览器登录。Docmancer 会创建并检查恢复套件,将其展示一次供你离线保存,并自动开始首次加密上传。随后,账户页面会要求你添加付款方式,以开始 30 天试用期。无需单独验证恢复套件,也无需运行首次同步命令。
在 VPS 或第二台机器上,安装 Docmancer 并运行:
docmancer setup
docmancer cloud connect
新机器会显示一个由四个单词组成的配对码。在已连接的机器上运行 docmancer cloud connect,确认相同的四个单词并批准连接。然后在新机器上再运行一次该命令。Docmancer 会下载整台机器范围内的共享记忆树,以及映射到该机器的所有项目树。如果所有已连接的机器都无法使用,请运行 docmancer cloud connect --recover 并输入离线恢复套件。
试用期结束后,所选的月度或年度订阅会自动开始,除非你取消订阅。续费失败后,会有固定的 7 天上传宽限期,随后提供 30 天只读拉取和导出窗口,之后计划删除托管的密文。无论处于哪种计费状态,本地记忆和所有本地功能都能继续使用。完整流程请参阅个人同步指南。
查看每个 Agent 实际接收到的内容
运行 docmancer web 并打开共享记忆。左侧窗格显示磁盘上的实际文件树,中间窗格会显示所选文件及其来源信息,右侧窗格则列出已连接的 Agent。选择一个 Agent,即可在它收到内容之前,查看它将接收的精确限定视图。
脚手架有明确的设计取舍,但文件属于你:
~/.docmancer/tree/ # machine-wide, follows you between projects
├── profile/
│ ├── about.md
│ └── preferences.md
├── principles/
│ └── working-style.md
├── projects/
│ └── active.md
└── shared/
<project>/.docmancer/tree/ # per project
├── overview.md
├── decisions/
├── constraints/
├── workflows/
└── lessons/
连接你的 Agent
docmancer setup 会安装所有检测到的内容。若要单独管理某个集成:
docmancer agent install claude-code --hooks
docmancer agent install codex --hooks
| Agent | 技能文件 | 自动回忆 | 会话捕获 | MCP |
|---|---|---|---|---|
| Claude Code | 是 | 是 | 是 | 是 |
| Codex(CLI、应用、桌面端) | 是 | 是 | 是 | 是 |
| Cursor | 是 | |||
| Cline | 是 | |||
| Gemini CLI | 是 | |||
| OpenCode | 是 | |||
| GitHub Copilot | 是 | |||
| Claude Desktop | 手动上传 | 是 |
已安装的技能会教 Agent 何时向 Docmancer 查询过往决策,以及如何在你明确要求时有意写入记忆,因此每个受支持的 Agent 都能使用同一份记忆。自动回忆和会话捕获需要生命周期钩子,目前只有 Claude Code 和 Codex 提供这些钩子,因此其他 Agent 会通过各自的技能文件按需回忆。
MCP 是通过相同本地服务实现的另一种传输方式,并非第二个记忆存储:
docmancer mcp install codex
docmancer mcp doctor
有意记录一项决策
发现功能会查找 Agent 已经写入的内容。若你想有意记录某项内容:
docmancer write $'# Deployment\n\nDeploy the API on Railway.' \
--path decisions/deployment.md \
--scope project
稍后可通过任意 Agent 或命令行读取:
docmancer read decisions/deployment.md
也可以让 Ask 来记录,并经过一个审批步骤:
docmancer ask "Remember that production releases require a smoke test"
docmancer ask "Update decisions/release.md to require two reviewers" --apply
日常命令
| 命令 | 用途 |
|---|---|
docmancer setup | 发现 Agent 记忆,并连接所有受支持的 Agent。 |
docmancer ask "..." | 回忆证据、回答问题,或提出一项记忆更改。 |
docmancer web | 打开当前项目的本地应用。 |
docmancer common | 显示多个 Agent 独立记录的内容。 |
docmancer delivery | 显示已安装的集成、回忆状态和近期使用情况。 |
docmancer timeline | 显示整理后的记忆随时间发生的变化。 |
docmancer write ... --path file.md | 写入一个经过审慎考虑的 Markdown 记忆文件。 |
docmancer read <address-or-path> | 读取一个带有来源信息的记忆文件。 |
docmancer edit ... --expected-hash <hash> | 安全地编辑记忆文件。 |
docmancer move ... --expected-hash <hash> | 安全地重命名或移动记忆文件。 |
docmancer import ./notes | 将任意 Markdown 复制到项目收件箱。 |
docmancer docs query "..." | 搜索单独的文档知识库。 |
docmancer status | 显示记忆、来源、安全、集成和 Cloud 的运行状况。 |
docmancer doctor | 诊断安装和配置问题。 |
docmancer cloud connect | 连接此设备,通过四词代码批准另一台设备,并启动加密同步。 |
docmancer cloud estimate | 预览下一次加密上传的大小、分批情况和当前套餐限额,不会将其加入队列或发送。 |
运行 docmancer --help 或 docmancer <command> --help 查看确切参数;完整命令列表请参阅命令参考。
文档属于单独的知识库
你的决策和供应商的 API 参考回答的是不同的问题,因此 Docmancer 将它们分开存放。知识库内容可供搜索,但不会自动注入你的个人记忆。
docmancer docs add https://docs.pytest.org
docmancer docs query "How do I parametrize a fixture?"
使用 ask 查询你自己的决策、偏好和规则。使用 docs query 查询知识库、API 和供应商文档。
选择检索配置
默认配置无需守护进程,也无需大型下载:
docmancer setup --profile local
它运行 SQLite FTS5、sqlite-vec 和捆绑的 Model2Vec 模型。若要持续摄取数据,并对大约 50,000 至 100,000 份文档进行筛选式向量搜索,请切换到 scale 配置:
pipx install "docmancer[embeddings-heavy]"
docmancer qdrant up
docmancer setup --profile scale
如果你使用 uv,第一行命令应改为 uv tool install "docmancer[embeddings-heavy]"。
Scale 使用 Qdrant、FastEmbed 稠密嵌入、稀疏 SPLADE 检索和倒数排名融合。它有助于向量筛选、并发写入和提升运维余量。它无法弥补来源覆盖不足或评估薄弱的问题;两种配置实现的记忆语义完全相同:切换只会改变存储方式和容量,不会改变权威性、来源信息或 Shared Memory 的定义。
隐私
你的记忆、凭据、索引和本地应用都保留在你的设备上,Docmancer 不会收集遥测数据。只有在你明确获取在线文档、使用外部模型、检查软件包注册表或启用 Cloud 时,它才会访问网络。
以上所有功能都是免费的,并且会一直免费。免费版单机产品无法解决两个问题,而付费方案正是为了解决这些问题。第一个问题是:你在多台设备上工作,但记忆只构建在一台设备上。可选的付费 Personal Sync 可以将同一份规范记忆同步到你批准的每台设备;记忆离开设备前会在设备上加密,并提供托管的修订历史和恢复功能。通常只需在每台设备上运行一次 docmancer cloud connect,然后在一台你已信任的设备上输入四个词进行批准。第二个问题是:你的 Agent 积累的某项功能相关上下文被困在一台设备上,团队其他成员无法访问。Team Sync 正是为解决这个问题而设计的,目前尚未推出。
托管服务接收的是密文,无法读取你的明文记忆,也无法在你的设备上运行任何内容。安全架构会准确说明哪些元数据仍然可见,而不会声称服务器什么都不知道。
文件存储位置
| 位置 | 内容 |
|---|---|
~/.docmancer/tree/ | 设备级 Markdown 内容,位于 profile/、principles/、projects/、shared/ 中。 |
<project>/.docmancer/tree/ | 项目记忆,位于 decisions/、constraints/、workflows/、lessons/ 中。 |
<project>/.docmancer/inbox/ | 导入的 Markdown 文件,等待可选的整理。 |
<project>/.docmancer/trash/ | 可恢复的已删除记忆文件。 |
<project>/.docmancer/state/decision-journal.jsonl | 经过整理的文件的仅追加历史记录。 |
~/.docmancer/memory.db | 可重建的设备级索引。 |
~/.docmancer/docmancer.yaml | 本地配置。 |
系统要求
Docmancer 支持 Python 3.11 及更高版本,包括 3.14,因此安装命令无需指定解释器版本。pipx install docmancer(或 uv tool install docmancer)可以使用你的设备已提供的任意较新版本 Python。如果 pipx 安装成功,但 shell 找不到 docmancer,请运行 pipx ensurepath,使用 export PATH="$(pipx environment --value PIPX_BIN_DIR):$PATH" 导出 bin 目录,然后重试。如果命令已启动后遇到问题,docmancer doctor 会告诉你原因。
参与贡献
欢迎提交问题和拉取请求。请先阅读 CONTRIBUTING.md,了解项目布局和扩展点;如果你想先讨论想法,可以发起讨论。安全问题有专门的私密渠道,详情请参阅 SECURITY.md。
有关架构、支持的数据源、Cloud 的边界和故障排查,请参阅 wiki 或完整的文档。
许可证
MIT。请参阅 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。