从 Claude Code 搬过来:
换个名字,换个习惯
用过 Claude Code,学 Codex 会快很多:给 agent 看的说明书、技能、钩子、MCP、子代理,这边都有,连搬家工具都备好了。真正要花心思的,是几处"手感"不一样的地方:权限怎么放、改坏了怎么退、脚本怎么写。这一篇先带你搬家,再把这几处讲透。
这是专题,默认你已经会用 Claude Code。时间紧就看第 2 节(怎么导入)和第 5 节(概念对照),剩下的遇到问题再回来查。
先看全局:哪些一样,哪些不一样
从 Claude Code 换到 Codex,像跳槽到同行的另一家公司:干活的方法差不多,工牌、门禁、报销流程得重新认识。
本页的三种标签
Claude Code 里的东西,在 Codex 里对应得有多"准",差别很大。本页用三种标签区分:
| 标签 | 什么意思 | 例子 |
|---|---|---|
| 官方对照 | 官方导入工具明确写了"这个导入成那个" | CLAUDE.md → AGENTS.md |
| 类比 | 功能相近,但官方没说它们对应,也没说导入会不会替你转换,按要自己重设来准备 | 权限模式 ≈ 三档权限 |
| 没有对应 | Codex 里没有这个东西,要换一种做法 | /rewind |
导入不会改动、也不会删除你原来的 Claude Code 设置。想两边都用,App 里还能打开自动更新,让导入的内容跟原来的保持同步(下一节)。
一键导入:App 里五步
导入在 ChatGPT 桌面 App 的设置里。App 能从 Claude Code、Claude Cowork、Cursor 导入,本页只讲 Claude Code。下面的界面是示意,文字以你的 App 为准。
导完之后,Import 这一栏还有两样东西
- 1Import开始一次导入,就是上面的五步。
- 2自动更新打开后,导入的内容会跟原来的 agent 保持同步。两边一起用的人最需要它。
- 3导入记录以前每次导了什么,都能在这里回看。
命令行里:/import(命令行)
在本地启动 Codex CLI,输入 /import,选 Claude Code,再勾选要带过来的设置、项目文件和最近的对话,导完看一眼导入的配置就能接着用。和 App 比有三点不同:
- 命令行只能从 Claude Code 和 Cursor 导入,不支持 Claude Cowork。
- 对话最多导 50 个,而且只看最近 30 天的。
- 任务正在跑的时候、远程会话里、连着本地 app-server 守护进程的时候,
/import都用不了。命令行的细节在第 14 课。
能导什么、导到哪
官方列了 11 类。每一行是 Claude Code 里的一样东西、它在 Codex 里的新家,以及本教程哪一课细讲它。
| 导入的东西 | 在 Codex 里变成 | 细讲 |
|---|---|---|
说明文件(CLAUDE.md) | AGENTS.md | 第 5 课 |
settings.json | config.toml | 第 7 课 |
| Skills | Skills | 第 8 课 |
| 插件 | 插件 | 第 11 课 |
| 已有的项目文件夹 | 用同一个文件夹的项目 | 第 2 课 |
| Claude Code 的项目记忆 | Memories 实验 | 第 5 课 |
| 最近 30 天的对话 | ChatGPT 里的对话 | — |
| MCP 服务器配置 | Codex 的 MCP 配置 | 第 9 课 |
| Hooks | Codex 的 hooks | 第 10 课 |
| 斜杠命令(自定义命令) | Skills | 第 8 课 |
| 子代理 | Codex 的子代理 | 第 12 课 |
注意"斜杠命令"那一行:Claude Code 的自定义命令到了 Codex 变成 skill,用 $名字 调用;启用的 skill 也会出现在 / 命令列表里。
导入时,它按这个顺序做事
- 检测能导入的设置和最近的工作。用户级的来自你电脑上的文件,项目级的来自你选的仓库和文件夹。
- 只导入你勾选的。
- 原来的 agent 设置保持不动。
- 检查导入的插件、连接还需不需要设置。
- 需要你收尾时,弹出一张状态卡片(官方文档说在窗口左下角),标出要处理的项。
几条"不覆盖"的规矩
下面几条来自官方开发者接口(app-server)文档里对导入功能的说明,能帮你预判结果。App 界面上的表现以你的 App 为准。
- 放在哪:文档里的例子是,项目里的
CLAUDE.md导成同一个文件夹里的AGENTS.md;~/.claude/skills里的技能文件夹复制到~/.agents/skills。 - 已有的不动:项目里已经有一份写了内容的
AGENTS.md,就不会再导说明文件;技能导入也不会覆盖已经存在的技能文件夹。检测结果里只列"还有事要做"的项。 - 插件:从
.claude/settings.json里读你配置的插件市场,列出能尝试迁移的插件。
动手:替 order-admin 搬一次家
订单后台 order-admin 之前一直用 Claude Code 开发。下面模拟一遍导入:勾选要带的东西,看它们落到哪、哪些要你回头处理。试试把"已经有 AGENTS.md"打开,看检测结果怎么变。
项目内容、文件名是虚构的;导入的类别、去处、跳过和复查规则来自官方文档。
概念对照:你熟悉的,在 Codex 里叫什么
选一个 Claude Code 里的概念,看 Codex 里对应的是什么、有哪些差别、去哪一课细看。标签告诉你这是官方对照,还是只是"大致相当于"。
"本教程"链接到 Codex 教程对应的课;"Claude Code 教程"链接到姊妹教程,方便你对照着回忆原来的用法。
三处"手感"不一样的地方
配置能导入,习惯导入不了。老用户最容易栽跟头的是权限、回退、脚本这三处。
Claude Code你习惯
按 Shift+Tab 在几种权限模式之间切;在设置里写 allow / deny 规则,精确放行或拦住某条命令;嫌确认太多就开 auto 模式,让安全员把关。
Codex改成
在输入框下方的权限菜单里选一档:Ask for approval(默认,每次越界都问你)、Approve for me(交给自动审查代你判断)、Full access(不设限)。后两档要先在 Settings > General 的 Permissions 里打开。精细的命令规则写成 Rules 实验。
第一次 git commit、甚至建个分支都弹批准。这不是出错:.git、.codex、.agents 在项目里也只读。默认也不联网,npm install 同样会问。想少点几次,第 3 课讲怎么放宽。
Claude Code你习惯
按两下 Esc 或打 /rewind,选一条消息,把代码、对话或者两样一起退回那一刻。
Codex改成
没有这个命令。动手前先提交一次,留个检查点;改坏了在审阅面板里 Revert(整体、按文件、按代码块);想换条路,用 /fork 把对话复制一份重来。
审阅面板的 Revert 按 Git 算,不分是谁改的。你自己没提交的改动也会一起被撤掉,所以先把自己的改动提交了,再让 Codex 动手。第 4 课细讲。
- 先提交一次,留个检查点
- 让 Codex 动手
- 审阅面板切到 Last turn,看它这一轮改了什么
- Revert 不要的部分,或者
/fork换个做法
Claude Code你习惯
claude -p "…":不进交互界面,跑完把结果打印出来,接进管道或脚本。
Codex改成
codex exec "…"。默认是只读沙箱,要改文件加 --sandbox workspace-write;要在 Git 仓库里跑;进度走 stderr,最后的回答走 stdout。
搬过来的脚本要是指望它改文件,只把 claude -p 换成 codex exec,默认什么也改不了。别用网上说的 --full-auto,它已经废弃。第 14 课细讲。
codex exec "总结最近 10 个提交"
codex exec --sandbox workspace-write "修好 lint 报错"练一练:这样东西搬得过来吗
8 样你在 Claude Code 里常用的东西,判断它们到了 Codex 会怎样。
搬家后第一天:在 Codex 里做一个任务
导入完成,打开 order-admin。点"开始"一步步回放:看老习惯在哪里要换个做法。中途有状态卡片和批准卡片,你可以自己点。放完可以接着在输入框里试。
画面为教学示意:文件名、测试数量和 Codex 说的话都是虚构的;导入状态卡片、$ 调用 skill、.git 受保护、审阅面板 Revert 这些规则与官方文档一致。
导完别急着用:先过五件事
官方专门列了导入后要复查的地方。每一条后面,是 Codex 这边的原因和去哪一课细看。
/mcp 看连上了哪些(第 9 课)。command、mcp_tool 两种,prompt、agent 类会被跳过;不是管理员托管的要先审查、信任;改文件时脚本收到的是整个补丁(第 10 课)。$名字 实际跑一次,不对就照第 8 课的写法改。两边一起用
团队里还有人用 Claude Code,或者你想对照着用一段时间:
- 放心试:导入不改原来的设置。App 里打开自动更新,导入的内容会跟着原来的 agent 同步。
- 只维护一份项目说明:让 Codex 把
CLAUDE.md当"备用文件名"来读(下面这行配置)。每个文件夹 Codex 最多取一个文件,顺序是AGENTS.override.md→AGENTS.md→ 备用文件名,所以同一层已经有AGENTS.md时,就不会再读CLAUDE.md。改完配置,重启 Codex 才会生效。 - 旧插件的 hook 脚本:Codex 会给插件里的 hook 命令设上
CLAUDE_PLUGIN_ROOT、CLAUDE_PLUGIN_DATA两个环境变量,就是为了兼容已有的插件 hook。
project_doc_fallback_filenames = ["CLAUDE.md"]- "Codex 没法从 Claude Code 迁移,只能手动把
CLAUDE.md复制成AGENTS.md":2026 年 6 月,当时的 Codex app 就有了从 Claude Code 导入的流程;8 月初命令行有了/import;8 月 11 日起,ChatGPT 桌面 App 支持 Claude Code、Claude Cowork、Cursor 三家,还能自动同步。 - "把 Claude 的命令放进
~/.codex/prompts,用/prompts:名字调用":custom prompts 已废弃,改用 skill;导入也会把斜杠命令转成 skill。 - "
codex exec --full-auto就相当于claude -p加跳过权限":--full-auto已废弃,改文件用--sandbox workspace-write;真要全放开是--yolo,只在隔离环境里用。 - "下载 Codex App":现在是 ChatGPT 桌面 App 里的 Codex(第 1 课)。
导入会改动或删除 Claude Code 那边的设置吗?
同一个项目导两次,会重复吗?
AGENTS.md,就不再导说明文件;技能导入不会覆盖已经存在的技能文件夹。命令行的导入也不会把已经同步过的对话再复制一份。想定期同步,用 App 里的自动更新。命令行里 /import 用不了
导入的对话在哪?能导多少?
导完了,Codex 好像没按 AGENTS.md 做
记忆导过来了,却没见 Codex 用上
/memories 决定这次能不能用记忆。记忆在后台更新,不会一结束对话就生成。必须遵守的规矩,官方建议写进 AGENTS.md,别只靠记忆。Codex 命令行里的按键,和 Claude Code 一样吗?
Cursor、Claude Cowork 也能导吗?
小测验
8 道题,每题选完会立刻看到解析。
