×−+
从 Claude Code 迁移专题 D · Codex 教程
专题 D · FROM CLAUDE CODE

从 Claude Code 搬过来:
换个名字,换个习惯

用过 Claude Code,学 Codex 会快很多:给 agent 看的说明书、技能、钩子、MCP、子代理,这边都有,连搬家工具都备好了。真正要花心思的,是几处"手感"不一样的地方:权限怎么放、改坏了怎么退、脚本怎么写。这一篇先带你搬家,再把这几处讲透。

约 25 分钟 10 节 · 4 个动手练习 章末测验 形式参考 luongnv89/claude-howto · 事实依据 OpenAI 官方文档
点上面切换,也可以单独点一张卡片
入门先用起来 原理弄懂为什么 实战动手练 深入进阶与避坑

这是专题,默认你已经会用 Claude Code。时间紧就看第 2 节(怎么导入)和第 5 节(概念对照),剩下的遇到问题再回来查。

01入门

先看全局:哪些一样,哪些不一样

从 Claude Code 换到 Codex,像跳槽到同行的另一家公司:干活的方法差不多,工牌、门禁、报销流程得重新认识。

行李能直接搬:配置和资料项目说明书、设置、技能、自定义命令、子代理、钩子、MCP、插件、项目记忆、最近的对话、项目文件夹。官方的导入工具会把它们转成 Codex 的格式。
有的搬过来要重新插电:登录和脚本MCP 可能要重新登录,钩子要重新信任,带参数的命令要检查。东西到了,不一定一插就亮。
规矩要重新学:使用习惯权限怎么放、改坏了怎么退、脚本怎么写,这些导入不了,只能换习惯。

本页的三种标签

Claude Code 里的东西,在 Codex 里对应得有多"准",差别很大。本页用三种标签区分:

标签什么意思例子
官方对照官方导入工具明确写了"这个导入成那个"CLAUDE.md → AGENTS.md
类比功能相近,但官方没说它们对应,也没说导入会不会替你转换,按要自己重设来准备权限模式 ≈ 三档权限
没有对应Codex 里没有这个东西,要换一种做法/rewind
两边可以并存

导入不会改动、也不会删除你原来的 Claude Code 设置。想两边都用,App 里还能打开自动更新,让导入的内容跟原来的保持同步(下一节)。

02入门

一键导入:App 里五步

导入在 ChatGPT 桌面 App 的设置里。App 能从 Claude Code、Claude Cowork、Cursor 导入,本页只讲 Claude Code。下面的界面是示意,文字以你的 App 为准。

1
打开 Settings > Import设置里还没有 Import 这一栏的话,打开 General,找 Import other agent setup。
2
点 Import开始检测:你电脑上的用户级设置,和你已有项目里的项目级设置。
3
选要从哪个 agent 导入,点 Continue选 Claude Code。
4
在 Select items to import 里勾选,再点 Continue说明文件、设置、技能、命令、子代理、钩子、MCP、插件、记忆、项目、最近的对话,按需要勾。第 4 节可以动手模拟一遍。
5
导入完成,打开导入的项目或对话接着干要是有插件或连接还没设好,App 会弹一张状态卡片提醒你,点 Finish 按提示做完。

导完之后,Import 这一栏还有两样东西

1
Import从别的 agent 带来说明、设置、技能、插件、项目和最近的对话
Import
2
自动更新让导入的内容和原来的 agent 保持同步
3 导入记录
Claude Code · 11 项今天
Claude Code · 2 项上周
位置:Settings > Import。画面是示意,按钮和文字以你的 App 为准。
  1. 1Import开始一次导入,就是上面的五步。
  2. 2自动更新打开后,导入的内容会跟原来的 agent 保持同步。两边一起用的人最需要它。
  3. 3导入记录以前每次导了什么,都能在这里回看。

命令行里:/import(命令行)

在本地启动 Codex CLI,输入 /import,选 Claude Code,再勾选要带过来的设置、项目文件和最近的对话,导完看一眼导入的配置就能接着用。和 App 比有三点不同:

  • 命令行只能从 Claude Code 和 Cursor 导入,不支持 Claude Cowork。
  • 对话最多导 50 个,而且只看最近 30 天的。
  • 任务正在跑的时候、远程会话里、连着本地 app-server 守护进程的时候,/import 都用不了。命令行的细节在第 14 课。
03原理

能导什么、导到哪

官方列了 11 类。每一行是 Claude Code 里的一样东西、它在 Codex 里的新家,以及本教程哪一课细讲它。

导入的东西在 Codex 里变成细讲
说明文件(CLAUDE.md)AGENTS.md第 5 课
settings.jsonconfig.toml第 7 课
SkillsSkills第 8 课
插件插件第 11 课
已有的项目文件夹用同一个文件夹的项目第 2 课
Claude Code 的项目记忆Memories 实验第 5 课
最近 30 天的对话ChatGPT 里的对话—
MCP 服务器配置Codex 的 MCP 配置第 9 课
HooksCodex 的 hooks第 10 课
斜杠命令(自定义命令)Skills第 8 课
子代理Codex 的子代理第 12 课

注意"斜杠命令"那一行:Claude Code 的自定义命令到了 Codex 变成 skill,用 $名字 调用;启用的 skill 也会出现在 / 命令列表里。

导入时,它按这个顺序做事

  1. 检测能导入的设置和最近的工作。用户级的来自你电脑上的文件,项目级的来自你选的仓库和文件夹。
  2. 只导入你勾选的。
  3. 原来的 agent 设置保持不动。
  4. 检查导入的插件、连接还需不需要设置。
  5. 需要你收尾时,弹出一张状态卡片(官方文档说在窗口左下角),标出要处理的项。

几条"不覆盖"的规矩

下面几条来自官方开发者接口(app-server)文档里对导入功能的说明,能帮你预判结果。App 界面上的表现以你的 App 为准。

  • 放在哪:文档里的例子是,项目里的 CLAUDE.md 导成同一个文件夹里的 AGENTS.md;~/.claude/skills 里的技能文件夹复制到 ~/.agents/skills。
  • 已有的不动:项目里已经有一份写了内容的 AGENTS.md,就不会再导说明文件;技能导入也不会覆盖已经存在的技能文件夹。检测结果里只列"还有事要做"的项。
  • 插件:从 .claude/settings.json 里读你配置的插件市场,列出能尝试迁移的插件。
04实战

动手:替 order-admin 搬一次家

订单后台 order-admin 之前一直用 Claude Code 开发。下面模拟一遍导入:勾选要带的东西,看它们落到哪、哪些要你回头处理。试试把"已经有 AGENTS.md"打开,看检测结果怎么变。

Settings · Import
示意

项目内容、文件名是虚构的;导入的类别、去处、跳过和复查规则来自官方文档。

05原理

概念对照:你熟悉的,在 Codex 里叫什么

选一个 Claude Code 里的概念,看 Codex 里对应的是什么、有哪些差别、去哪一课细看。标签告诉你这是官方对照,还是只是"大致相当于"。

官方对照类比没有对应

"本教程"链接到 Codex 教程对应的课;"Claude Code 教程"链接到姊妹教程,方便你对照着回忆原来的用法。

06原理

三处"手感"不一样的地方

配置能导入,习惯导入不了。老用户最容易栽跟头的是权限、回退、脚本这三处。

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 课讲怎么放宽。

Ask for approval默认
Approve for me自动审查
Full access不设限
输入框下方的权限菜单(示意)
07实战

练一练:这样东西搬得过来吗

8 样你在 Claude Code 里常用的东西,判断它们到了 Codex 会怎样。

08实战

搬家后第一天:在 Codex 里做一个任务

导入完成,打开 order-admin。点"开始"一步步回放:看老习惯在哪里要换个做法。中途有状态卡片和批准卡片,你可以自己点。放完可以接着在输入框里试。

画面为教学示意:文件名、测试数量和 Codex 说的话都是虚构的;导入状态卡片、$ 调用 skill、.git 受保护、审阅面板 Revert 这些规则与官方文档一致。

09深入

导完别急着用:先过五件事

官方专门列了导入后要复查的地方。每一条后面,是 Codex 这边的原因和去哪一课细看。

skill 和子代理里写的工具限制、权限Codex 能碰什么、什么时候问你,由沙箱和审批决定(第 3 课);子代理会继承你在输入框下方选的权限档位(第 12 课)。
用了自定义认证、请求头、环境变量或特殊传输方式的 MCP 服务器可能要重新登录:在 Settings > MCP servers 的列表里点 Authenticate,在输入框里打 /mcp 看连上了哪些(第 9 课)。
Hooks:导入后行为可能不同只执行 command、mcp_tool 两种,prompt、agent 类会被跳过;不是管理员托管的要先审查、信任;改文件时脚本收到的是整个补丁(第 10 课)。
插件、插件市场这类要手动跟进的设置导入结束的状态卡片会标出来,点 Finish 按提示做完;插件带的 hooks 也要先审查才会跑(第 11 课)。
依赖参数、shell 插值、文件路径占位符的命令式提示词它们现在是 skill 了。用 $名字 实际跑一次,不对就照第 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。
~/.codex/config.toml
project_doc_fallback_filenames = ["CLAUDE.md"]
旧教程对照
  1. "Codex 没法从 Claude Code 迁移,只能手动把 CLAUDE.md 复制成 AGENTS.md":2026 年 6 月,当时的 Codex app 就有了从 Claude Code 导入的流程;8 月初命令行有了 /import;8 月 11 日起,ChatGPT 桌面 App 支持 Claude Code、Claude Cowork、Cursor 三家,还能自动同步。
  2. "把 Claude 的命令放进 ~/.codex/prompts,用 /prompts:名字 调用":custom prompts 已废弃,改用 skill;导入也会把斜杠命令转成 skill。
  3. "codex exec --full-auto 就相当于 claude -p 加跳过权限":--full-auto 已废弃,改文件用 --sandbox workspace-write;真要全放开是 --yolo,只在隔离环境里用。
  4. "下载 Codex App":现在是 ChatGPT 桌面 App 里的 Codex(第 1 课)。
导入会改动或删除 Claude Code 那边的设置吗?
不会。官方写明:导入不改变、也不删除你原有的 agent 设置。两边可以同时用。
同一个项目导两次,会重复吗?
检测时只列还有事要做的项:已经有一份写了内容的 AGENTS.md,就不再导说明文件;技能导入不会覆盖已经存在的技能文件夹。命令行的导入也不会把已经同步过的对话再复制一份。想定期同步,用 App 里的自动更新。
命令行里 /import 用不了
它只在本地的交互会话里能用。任务正在跑、在远程会话里、连着本地 app-server 守护进程时都不行。等这一轮停下来再试,或者改用 App 的 Settings > Import。
导入的对话在哪?能导多少?
最近 30 天的对话会变成 ChatGPT 里的对话。命令行最多导 30 天内的 50 个。
导完了,Codex 好像没按 AGENTS.md 做
AGENTS.md 只在对话开始时读。开一个新对话再试;再确认文件不是空的(空文件会被跳过)、没有超过大小上限(默认 32 KiB,超过会被截断)。第 5 课细讲。
记忆导过来了,却没见 Codex 用上
Codex 的 Memories 实验 默认是关的。在 Settings > Personalization 里打开 Enable memories;每个对话里还能用 /memories 决定这次能不能用记忆。记忆在后台更新,不会一结束对话就生成。必须遵守的规矩,官方建议写进 AGENTS.md,别只靠记忆。
Codex 命令行里的按键,和 Claude Code 一样吗?
不全一样。Codex CLI 里,它干活时按 Enter 是把新指示插进正在做的这一轮,按 Tab 是排到下一轮;输入框为空时按两次 Esc,是编辑上一条消息并从那里分叉对话(文档没说会把文件退回去)。App 里的操作第 2 课讲,命令行第 14 课讲。
Cursor、Claude Cowork 也能导吗?
App 能从 Claude Code、Claude Cowork、Cursor 导入;命令行只支持 Claude Code 和 Cursor。能导哪些内容,以 App 里检测出来的为准。
10检验

小测验

8 道题,每题选完会立刻看到解析。