实际迁移了什么
你的 CLAUDE.md 文件——链接而非转换。 Warp 的 /init 直接链接 CLAUDE.md,同时还支持其他六种格式:“CLAUDE.md、.cursorrules、AGENT.md、GEMINI.md、.clinerules、.windsurfrules、.github/copilot-instructions.md”。是链接,而不是检测。一个装满 CLAUDE.md 的仓库在被链接之前什么也做不了。
你的技能(skills)——只需更改目录。 Claude Code 读取 .claude/skills/;Warp 从 .agents/skills/ 读取项目技能,从 ~/.agents/skills/ 读取个人技能,并可通过 /skills 进行浏览。SKILL.md 的格式是相同的。这只是移动,而不是重写。
你的 MCP 服务器——如果你同时使用两个界面,需要配置两次。 Warp 指出“规则和技能不需要迁移:CLI 和 Warp 应用都会从相同的文件位置发现它们”,但 MCP 是个例外:“CLI 保留自己独立的 MCP 服务器配置,与 Warp 应用的配置分开”,在 macOS 上位于 ~/.warp_cli/.mcp.json。
代码库理解——重建而非移动。 Warp 的 Codebase Context“对你 Git 跟踪的代码库进行索引”,文档指出“Warp 服务器上不存储任何代码”。你只需重新索引;无需导出任何内容。
无法迁移的内容:Claude 记录的关于你工作的所有内容。 Claude Code 的自动记忆记录了四种笔记,通过每个文件 frontmatter 中的 type 字段进行标记:user(你的角色、专业知识和工作偏好)、feedback(你给 Claude 的纠正和确认的方法)、project(进行中的工作、截止日期以及 Claude 无法从代码或 git 历史记录中推导出的决策)和 reference(在项目之外寻找信息的位置)。它是默认开启的,因此如果你在某个仓库上使用过 Claude Code 一段时间,无论你是否查看过,该目录都存在。
没有导出功能。另一端也没有导入功能。而最有价值的笔记是 feedback 和 project——正如 Anthropic 的文档所指出的,当 Claude 可以从代码库中推导出这些内容时,它就会跳过编写这些类别。
同样消失的还有:作为一种机制的路径范围规则。 Claude Code 的 .claude/rules/ 允许仅在 Claude 触及匹配文件时加载指令。Warp 的等效做法是位置放置:在子目录中放置一个 AGENTS.md。这是一个较粗糙的工具,而且其加载行为有一个在依赖它之前值得了解的边界情况——将在下一节中介绍。
手动迁移
步骤 1:在停止打开 Claude Code 之前,先读取自动记忆目录
这是一个阅读练习,也是唯一一个以后无法重新执行的步骤。
你的笔记位于 ~/.claude/projects/<project>/memory/。<project> 路径派生自 git 仓库,因此同一仓库的每个工作区共享一个目录。在里面你会发现一个 MEMORY.md 索引——“每条记忆一行,加载到每个会话中”——以及每条记忆一个主题文件。
先打开 MEMORY.md;这是 Claude 为自己维护的目录。然后打开它指向的主题文件。两个实用的注意事项:Anthropic 的文档指出,只有“MEMORY.md 的前 200 行,或前 25KB(以先到者为准),会在每次对话开始时加载”,超过该阈值的内容“在会话开始时不会加载”——因此,如果你的索引很长,其中一部分可能已经闲置了一段时间,你现在是第一次真正阅读它。主题文件在启动时根本不会加载;Claude 会“按需读取它们”。
在阅读过程中,将你发现的内容分类整理到三个堆中:
- 已在
CLAUDE.md中。 跳过它。它可以免费链接过去。 - 可从仓库中推导。 也跳过它。Warp 会对代码进行索引。
- 两者皆非。 这是你实际需要迁移的有效载荷:你给出的纠正、附带原因的决策、截止日期、指向仓库外部系统的指针。在继续之前,将它们复制到某个地方。
不要删除任何内容。Anthropic 将记忆目录排除在其对话记录保留清理范围之外——“MEMORY.md 和主题文件会一直保留,直到你或 Claude 编辑或删除它们”——因此保留安装 Claude Code 不会产生任何成本,并且可以保持原始文件可读。
步骤 2:落实编写好的那一半,然后正确设置加载模型
在仓库根目录下的 Warp 中运行 /init,并选择链接现有的 CLAUDE.md。然后确保做好以下三件事,因为其中任何一件出错都会静默失败。
文件名区分大小写。 Warp 的文档将其作为警告提出:“文件名必须为全大写,Warp 才能识别它(例如 AGENTS.md,而不是 agents.md 或 Agents.md)。”小写文件不会被识别为规则文件,并且不会报错。
只有两个位置会自动加载。 “Warp 会自动应用根目录和当前目录中的 AGENTS.md(或 WARP.md)。”对于其他任何位置,“Warp 会尽最大努力尝试同时包含该子目录的规则文件”——前提是你在那里编辑文件。如果规则必须应用于整个仓库,根目录文件是唯一有保障的归宿。
最具体的规则文件胜出。 Warp 解决冲突的顺序是:当前子目录优先,然后是根目录,最后是全局规则(Global Rules),其声明的意图是“最具体、与项目最相关的规则优先于更广泛的规则”。从声明式限定范围的 .claude/rules/ 转换过来,这是需要注意的变化:一个过期的子目录文件现在会优于最新的根目录标准,且仅在该子目录中生效。
然后将 .claude/skills/ 移动到 .agents/skills/,为你使用的应用或 CLI 配置 MCP 服务器,并运行 /index 以构建 Codebase Context。
Warp 提供了 Claude Code 没有的一项功能:验证。“交互中使用的规则将显示在对话的 References(参考)下,或标记为派生自特定规则。”在你已知应该触发的规则上使用一次,这样你就可以在需要调试规则之前了解加载的规则是什么样子的。
这就完全涵盖了编写好的那一半。但学到的那一半仍然无处可去。
更好的方法:将学到的那一半放在不绑定到单一机器的地方
Warp 确实对此有解决方案,即使你现在还无法使用,也值得了解一下。
Agent Memory 被描述为“一个存在于 Warp 上并在每个受支持的 agent 运行环境(包括内置的 Warp Agent、Claude Code、Codex 以及随后面添加的其他环境)之间共享的持久记忆系统”。记忆被组织到存储库(stores)中——个人、agent 所有或团队所有——附加到具有只读或读写访问权限的特定 agent,并需要每个存储库的指令。每条记忆都会“记录其来源”,每次更改都会被记录以供检查,并且创建和检索在后台运行,因此它们“不消耗 token,也不会给活动任务增加延迟”。
同样也明确指出了三个限制。它“处于研究预览阶段,并针对设计合作伙伴按团队启用”,设有候补名单。第三方运行环境仅在作为云 agent 运行时才被覆盖——“在研究预览期间不支持在本地运行第三方运行环境”。此外,程序化 API 访问和自托管都列在“即将推出”中。
因此:这是一个很好的设计,方向正确,但尚未普遍可用,且目前无法从本地 Claude Code 会话中访问。如果你的团队是设计合作伙伴,请使用它——这是原生路径。
如果你不是,你仍然需要将学到的那一半落地到某个地方,而这正是 MemoryLake 所做的事情:一个独立于任何单一工具之外的记忆层,这样你在步骤 1 中挽救的笔记今天就可以从 Warp 中读取,也可以从你下一步使用的任何工具中读取。设置分为三个步骤。
步骤 1:创建 API 密钥
登录并创建 API 密钥。一个凭据即可跨越你连接的各种工具。

步骤 2:上传你的第一批记忆
简短的条目,每条记录一个主张。你的源材料是步骤 1 中的第三堆内容,Claude Code 自己的笔记类型是一个很好的分类指南:

保留下来的纠正。 Claude Code 的 feedback 类别——你拒绝的方法和确认的方法。这是价值最高的一堆,在 Warp 的规则模型中没有任何等效项。
附带原因的决策。 “迁移只能是增量的,因为只读副本在负载下会滞后。”该指令属于 AGENTS.md;原因属于这里,正是它阻止了该规则在下个季度被撤销。
非代码的工作上下文。 截止日期、当前优先级、谁拥有哪个服务——Claude Code 的 project 类别,其文档将其描述为 Claude“无法从代码或 git 历史记录中推导出的内容”。
指向外部的指针。 仪表板、问题跟踪器、运行手册——即 reference 类别。
步骤 3:连接你的 AI 和 agent
连接你使用的工具。MemoryLake 可以通过 MCP 和 API 访问,并且 Warp 支持 MCP 服务器——请记住,应用和 CLI 保留独立的 MCP 配置,因此共享设置需要配置两次。Claude Code、Codex、Cline 和 OpenClaw 以相同的方式连接,其他任何工具都可以通过 API 读取相同的记忆。

三个客观的限制。MemoryLake 无法读取、导出或删除 Claude Code 的自动记忆——该目录没有 API,这就是为什么步骤 1 需要手动阅读的原因。It does not write your AGENTS.md or your Global Rules;上述加载行为是 Warp 的,记忆层不会改变它。此外,记忆是上下文,而不是强制执行——Anthropic 自己的文档对 CLAUDE.md 和自动记忆也提出了同样的观点,即 Claude“将它们视为上下文,而不是强制配置”。任何每次都必须成立的内容都应该放在会导致运行失败的检查中。
这在实践中改变了什么
规则迁移只需几分钟,而不是一个下午。 /init 可以就地链接 CLAUDE.md。
学到的那一半不再是隐形的。 你主动阅读一次该目录,而不是在几个月后才发现它的存在。
机器本地不再是默认设置。 Claude Code 的自动记忆明确规定不在机器之间共享;你移出的任何内容都不再受此限制。
规则调试得到了真正的答案。 References 会显示实际触发了什么,而 CLAUDE.md 从未做到过这一点。
下一次迁移的成本更低。 知识不再存在于任何一个工具的主目录中。
从 Claude Code 迁移到 Warp 的最佳实践
在切换之前阅读 MEMORY.md,而不是在切换之后。 它会加载到每个 Claude Code 会话中,并且是其他所有内容的索引。
链接而不是复制。 /init 链接了七种外部格式。同一规则的两个副本会在一个月内产生偏差。
立即检查文件名的大小写。 必须全大写,否则它就不存在。这是 Warp 规则系统中最常见的静默失败。
将仓库范围的规则放在根文件中。 根目录和当前目录会自动加载;其他所有位置都是尽力而为。
审计子目录文件以防过期的覆盖。 最具体的规则文件胜出,而旧文件会保持其具体性。
针对你关心的每条规则,使用 References 验证一次。 加载了什么是事实;你写了什么是意图。
不要将推理留在规则文件中。 规则是在请求时应用的,并且会竞争上下文——大致形式在编码 agent 实际读取的内容中进行了介绍。
不要将技能视为记忆。 技能是程序性的且稳定的;记忆是在你工作时写入的。两者的区别在为什么 agent 技能不是记忆中进行了介绍。
结论
这是极少数目的地会为你考虑周全的迁移。Warp 的 /init 直接链接 CLAUDE.md,你的技能通过更改目录名称进行移动,而 Codebase Context 会从仓库中自行重建。如果你的上下文完全存在于你编写的文件中,你只需一个下午就能搞定,唯一需要做对的就是全大写的文件名、根目录与子目录加载模型,以及最具体规则胜出的优先级。
无法随你迁移的是 Claude 编写的那一半。自动记忆默认开启,它将你的纠正和项目状态保存在 ~/.claude/projects/<project>/memory/ 中,其设计为机器本地,且无法导出。Warp 的 Agent Memory 是承载这些知识的正确形式——跨运行环境、可追踪来源、按 agent 访问——但它是一个仅限于设计合作伙伴团队的研究预览版,并且在预览期间它不涵盖在本地运行的第三方运行环境。
因此,在停止打开 Claude Code 之前,先阅读记忆目录,保留既不在你的 CLAUDE.md 中也无法从代码中推导出的纠正和决策,并将它们放在一个不绑定到单一工具主目录的层中。规则将在几分钟内完成链接。推理是只有你才能带过去的部分——而它最初丢失的原因在为什么 Claude Code 会在不同机器间遗忘中进行了介绍。