关于 Anamnesis
Anamnesis 是面向跨设备工作的开发者、供 Claude Code 使用的本地优先文件式记忆层。它以可读的 Markdown 存储内容,通过 Git 远程仓库同步,并在各设备本地重建搜索索引。
主要功能
- 01以 Markdown 笔记作为事实来源
- 02本地 SQLite FTS5 关键词搜索
- 03通过 Git 在设备间同步
- 04用于会话记忆的 Claude Code 钩子
- 05可选的反思、合并与评估
- 06用于浏览和编辑的网页仪表板
适用场景
- 01从另一台设备搜索项目笔记
- 02在 Claude Code 会话开始时加载相关记忆
- 03捕获会话摘要并进行同步
- 04在仪表板浏览、编辑笔记并查看历史
MCP 相关
其 MCP 服务向 Claude Code 提供只读记忆查询工具,以及写入和同步工具。会话钩子会注入相关笔记并捕获会话摘要。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
5收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| k | integer | 否 | |
| type | any | 否 | |
| query | string | 是 | |
| scope | any | 否 | |
| project | any | 否 | |
| user_id | any | 否 | |
| workspace_id | any | 否 |
详细介绍
Anamnesis
Claude Code 的跨机器记忆
uv tool install anamnesis-memory && anamnesis init
ἀνάμνησις (anamnesis):希腊语,意为回忆,即将知识重新唤回脑海的行为。
Anamnesis 是专为 Claude Code 打造的本地优先、基于文件的记忆层,可在你自己的多台机器间 同步。Claude 对你项目的了解(约定、架构决策、有效的修复方法、你昨天做过什么)会以纯 Markdown 格式存储,在本地建立索引以供搜索,并在你的 专用网络中保持同步。
Claude Code 自带的记忆只保留在写入它的那台机器上。通过 Dropbox 或 iCloud 等云端 文件夹复制 SQLite 索引会导致其损坏。Anamnesis 则使用 git 同步 Markdown,并在每台机器上重新构建 索引,因此在台式机上写下的笔记也能在笔记本电脑上搜索到。
无需云账户。记忆保存在你的机器上,受版本控制且可供人阅读。
工作原理
┌─────────────┐ git over your private mesh ┌─────────────┐
│ desktop │ ◄──────────── (Tailscale) ────────► │ laptop │
│ │ │ │
│ Claude Code│ │ Claude Code│
│ ▼ │ │ ▼ │
│ MCP server │ markdown (source of truth) │ MCP server │
│ ▼ │ + SQLite FTS index (rebuilt locally) │ ▼ │
│ ~/.anamnesis│ │ ~/.anamnesis│
└─────────────┘ └─────────────┘
- 文件优先。 每条笔记都是
~/.anamnesis/memory/下的一个 Markdown 文件,可直接阅读,也可用git diff查看差异。 Markdown 是唯一事实来源;其他内容都由它派生。 - 本地索引。 SQLite FTS5 索引支持关键词(BM25)召回。索引会在本地重建,不会 同步。在项目的评测集上,关键词搜索的召回率约为 94%,因此在测量结果表明有必要之前,不会使用向量存储。
- 通过 git 同步。 Markdown 仓库通过你的专用 Tailscale 网状网络同步,也可使用你控制的任意 git 远程服务。只有 Markdown 会传输;每台机器都会自行重建索引,因此 数据库文件不会在机器间复制。如果两台机器编辑了同一条笔记,同步会报告 git 冲突,而不会丢弃任一方的修改。
- Claude Code 集成。 MCP 服务提供只读查询工具,其他工作由会话钩子完成: SessionStart 会注入相关笔记,SessionEnd 会记录会话摘要并进行同步。
- 反思与合并。 可选的反思流程(配置中指定任意兼容 OpenAI 的模型)
会将会话笔记提炼为长期笔记,
anamnesis merge会合并近似重复项。生成的 笔记会在 front-matter 中注明来源和置信度。merge --apply会经过评测集验证,以确保 召回率不会下降;anamnesis eval则会在沙盒副本上衡量反思前后的效果。 - 控制面板。 Web 图形界面,可浏览、搜索、编辑记忆,并查看所有 机器上的记忆历史。
快速开始
前置要求:Claude Code、uv 和 git。
uv tool install anamnesis-memory && anamnesis init
anamnesis init 会在用户级别为 Claude Code 注册 MCP 服务,安装 SessionStart、SessionEnd 和 PreCompact 钩子,将存储配置到 ~/.anamnesis,并运行首次同步。此操作可重复执行:它会备份 settings.json,且不会重复添加钩子。--print 会显示完整计划,但不会写入任何内容;--local-only 会跳过远程服务,直到你需要使用它为止。
Claude Code 会获得 5 个工具:memory_search、memory_list 和 memory_status(只读,可安全地自动批准),以及 memory_write 和 memory_sync。完整参考:
命令行 ·
MCP 工具 ·
配置。
改为从源代码开发
git clone https://github.com/oscardvs/anamnesis && cd anamnesis/server
uv venv --python 3.12
uv pip install -e ".[mcp,dev]"
uv run anamnesis init --print
该仓库还附带一个项目级 .mcp.json。Claude Code 会使用经过筛选的环境启动 MCP 服务,因此 ANAMNESIS_HOME / ANAMNESIS_MACHINE_ID / ANAMNESIS_GIT_REMOTE 应放在其 "env" 块中,而不是放在 shell 中。服务内部说明:server/README.md。
跨机器同步
记忆是一个 git 仓库(~/.anamnesis/memory/),通过你的私有
Tailscale 网络或任何由你控制的 git 远程仓库进行同步。只需设置一次:
-
将每台机器接入同一个 tailnet(安装 Tailscale, 执行
tailscale up)。选择一台始终在线的机器来托管共享仓库;tailscale status会显示其 MagicDNS 名称(例如host.your-tailnet.ts.net)。 -
在主机上创建一个共享的裸仓库:
git init --bare -b main ~/anamnesis-memory.git -
将每台机器指向该仓库:
anamnesis init --remote '[email protected]:anamnesis-memory.git'主机本身使用本地路径:
--remote "$HOME/anamnesis-memory.git"。
同步会按 commit -> pull --rebase -> push 的顺序运行,并在拉取后重建本地索引,因此一台机器上写入的笔记会在一个同步周期内可供其他机器搜索。如果你最初使用了 --local-only,之后可重新运行 init --remote ...;存储会关联到远程仓库并推送其历史记录。
钩子
anamnesis init 会安装 3 个 Claude Code 钩子:
- SessionStart 会注入与当前项目最相关的笔记(你的全局偏好、项目的长期笔记,以及几篇近期会话摘要),并启动后台同步。
- SessionEnd 会根据会话记录生成一篇情景笔记并同步,这样下一次会话时,你的其他机器上也会有这篇笔记。PreCompact 会在上下文压缩前生成同类笔记。
另外两条命令基于这些钩子实现:
- 反思(可选)。 将
anamnesis config set reflection.provider ...指向一个兼容 OpenAI 的模型,再运行anamnesis reflect,即可将累积的会话笔记提炼为长期惯例。设置reflection.auto后,当项目积累了足够多尚未反思的笔记时,会在会话结束时自动运行。anamnesis merge会合并近似重复项,且仅在你的评估集上的召回率保持不变时才会应用更改。 - 导入。
anamnesis import会将 Claude Code 自身的项目级记忆复制到存储中,从而纳入你之前为它撰写的笔记。
如果想手动设置钩子,而不是使用 init,请将
examples/hooks.settings.json 复制到 ~/.claude/settings.json,并将其中的路径指向你的安装位置。
基准测试
bench/cross-machine-tokens/ 会在一台全新机器上运行两次脚本化任务:一次不使用 Anamnesis,让 Agent 探索项目以了解其惯例;另一次则注入真实的 SessionStart 记忆块。它在合成项目上以无头模式驱动 Claude Code CLI,因此 Pro/Max 订阅即可,无需 API 密钥。
已提交的 result.json(在 claude-opus-4-8 上每组运行 3 次)显示,使用记忆后总输入 token 数平均减少约 8%,从 366k 降至 336k;输出 token 数和轮次基本相同。项目惯例从第一轮起就已知,而不是重新探索得出。该场景的早期版本使用了一个 5 个文件的项目,结果没有差异;同一 README 中记录了这一零结果。
控制面板
用于管理记忆存储的 Web GUI:浏览并全文搜索所有笔记,编辑 Markdown 并查看每条笔记的历史记录,查看所有机器(哪台机器写入了什么,以及上次同步时间),并在浏览器中运行反思。来源标记会显示每条笔记的来源:你、会话捕获、反思或导入。

npx anamnesis-dashboard # http://localhost:3000
或者,使用你已有的 CLI:
anamnesis dashboard
需要 Node 20 或更高版本。从仓库克隆目录运行 cd dashboard && npm run dev 即可进行开发。
它是一个轻量级读写客户端,使用与 MCP 服务相同的本地存储:直接读取 SQLite 索引,并调用 anamnesis CLI 执行写入和同步。使用 --port、--store 和 --no-open 调整服务方式。有关配置和设计说明,请参阅 dashboard/README.md。
状态
2026 年 9 月:v0.1.3 已发布到 PyPI。本地优先的核心功能已完成,并已在真实的多机器环境中使用:存储、MCP 服务、钩子、git 同步、一键安装、带有评估框架的反思和合并流程,以及控制面板。不同版本之间的 API 仍可能变化。
下一步:为没有自己的网状网络的用户提供托管中继(服务已在 [relay] extra 下提供 anamnesis relay 命令,但尚未编写相关文档),以及团队记忆。
仓库布局
| 路径 | 说明 |
|---|---|
server/ | MCP 记忆服务和 CLI(Python,FastMCP)。 |
dashboard/ | 记忆 GUI(Next.js)。 |
site/ | 公共网站和文档(在线查看)。 |
bench/ | 跨机器 token 基准测试和演示录制流程。 |
examples/ | 用于手动配置钩子的手写 hooks.settings.json。 |
参与贡献
欢迎提交问题和参与讨论。如果安装过程在你的机器上不顺利,请提交问题,并附上你运行的确切命令及其输出。
许可证
Apache License 2.0。请参阅 NOTICE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。