Claude Code 迁移到 Codex:用 /import 搬规则、技能、MCP 和 hooks,导入后 model_provider 还在吗(第三方 API Key 实测)

Codex CLI 的 /import 能把 Claude Code 的 CLAUDE.md、settings.json、hooks、技能、MCP、子 Agent 和最近对话搬进 Codex。实测已有的 model_provider = "aicodewith" 没被改,导入后照常调用;但 settings.json 里的 Key 会被写进 Codex 的 shell 环境,要手动去掉。

5 分钟阅读
Claude Code 迁移到 Codex:用 /import 搬规则、技能、MCP 和 hooks,导入后 model_provider 还在吗(第三方 API Key 实测)

先说结论:Codex CLI 的 /import 可以把 Claude Code 的规则(CLAUDE.md)、settings.json、hooks、技能、MCP 服务器、子 Agent 和最近的对话一次搬进 Codex,我们这次 7 项不到 10 秒就导完了。

大家最关心的问题:已经配好的 model_provider = "aicodewith" 没被改,model 和 [model_providers.aicodewith] 一整段一行没动,导入后 Codex 照常走本站接口,直接调接口返回 HTTP 200。

但有一个坑要手动处理:Claude Code settings.json 里的 env 会被原样写进 Codex 的 config.toml,包括 ANTHROPIC_AUTH_TOKEN,也就是你的 Key。之后 Codex 跑的每一条 shell 命令都能读到它。导入时取消勾选 Settings,或者导入后删掉那两行就行,下面有具体做法。

创建 API Key,Claude Code 和 Codex 用同一个 Key →

/import 能搬什么

据 OpenAI 官方文档《Import from another agent》,Codex CLI 可以从 Claude Code 或 Cursor 导入,对应关系是:

Claude Code 里的东西导入到 Codex 的哪里
规则文件(CLAUDE.md)AGENTS.md
settings.jsonconfig.toml
技能(Skills)技能
插件插件
MCP 服务器配置Codex 的 MCP 配置
HooksCodex hooks
斜杠命令技能
子 AgentCodex 子 Agent
项目记忆记忆
最近 30 天的对话对话,最多 50 条

官方文档还写了几条限制:/import 只能在本地的 Codex CLI 交互界面里用,任务运行中、远程会话里不能用;导入不会修改或删除 Claude Code 原来的配置。

实测环境

我们在 2026 年 10 月 27 日用 Codex CLI 0.164.0 测试,导入前 Codex 已经按本站教程配好全局 ~/.codex/config.toml:

toml
model_provider = "aicodewith"
model = "gpt-6.1-sol"
model_reasoning_effort = "medium"

[model_providers.aicodewith]
name = "aicodewith"
base_url = "https://api.aicodewith.ai/chatgpt/v1"
wire_api = "responses"
experimental_bearer_token = "你的 API Key"

还没配的先看《Codex 接入 AICodeWith》和《Codex config.toml 配置指南》。

Claude Code 这边按日常用法准备了这些东西:

  • 全局 ~/.claude/settings.json:env 里有 ANTHROPIC_BASE_URL(https://api.aicodewith.ai)和 ANTHROPIC_AUTH_TOKEN,model 是 claude-sonnet-5-5,加了一条 permissions 和一个 PostToolUse hook;
  • 全局技能 ~/.claude/skills/commit-msg;
  • 项目里的 CLAUDE.md、.mcp.json(一个文件系统 MCP 服务器)、子 Agent .claude/agents/reviewer.md、斜杠命令 .claude/commands/hello.md;
  • 用 Claude Code 在这个项目里聊过 1 次。

第一步:先备份 config.toml

导入会写 config.toml,动手前先留一份:

bash
cp ~/.codex/config.toml ~/.codex/config.toml.bak

第二步:在项目目录里运行 /import

bash
cd 你的项目目录
codex

第一次在这个目录打开会问是否信任,选 Trust and continue。进入界面后输入 /import 回车,会列出它找到的东西:

text
> Import setup
  [x] Tools & setup
      Importing: Settings 1, Hooks 1, Skills 1
  [x] Current project
      Importing: MCP servers 1, Agents 1, Instructions 1
  [x] Chat sessions (1)
      Importing: Chat sessions 1
  Selected 7 of 7 items.
  › 1. Import selected
    2. Customize selection
    3. Cancel

选 Import selected 就全部导入;按 c 可以逐项勾选(建议这样做,原因见下面“要处理的坑”)。导入结果:

text
• Import finished: 7 imported, 0 failed.

我们放的斜杠命令 .claude/commands/hello.md 没有出现在这次的导入清单里,用斜杠命令比较多的,导入后去 Codex 的技能列表里确认一下。

导入后东西都去了哪

原来的导入后说明
项目 CLAUDE.md项目根目录 AGENTS.md内容原样复制,CLAUDE.md 保留不动
~/.claude/settings.json~/.codex/config.toml只加了 shell_environment_policy 一段,见下文
hooks~/.codex/hooks.json导入后是“待审核”状态,不会直接运行
~/.claude/skills~/.agents/skills技能文件原样复制
.mcp.json项目 .codex/config.toml 里的 mcp_servers命令和参数原样保留
.claude/agents/reviewer.md项目 .codex/agents/reviewer.toml名字、描述、提示词保留,但原来的 tools: Read, Grep 限制没带过来
最近对话Codex 对话记录1 条导入成功

两点值得注意:

  1. hooks 不会偷偷运行。导入后再打开 Codex,会先弹出 hooks 审核界面,提示 “1 hook needs review before it can run”,PostToolUse 显示已安装 1、生效 0。确认没问题后在 /hooks 里信任它才会生效。
  2. 子 Agent 的工具限制丢了。Claude Code 里只给了 Read 和 Grep 的子 Agent,导入后的 reviewer.toml 里没有对应限制。官方文档也提醒要检查导入后技能和 Agent 的工具权限,需要的话手动补上。

另外我们检查了 ~/.claude 和项目里的 Claude Code 文件,导入前后都没有被修改,和官方文档说的一致。

model_provider 有没有被改

把导入前后的 ~/.codex/config.toml 做对比(Key 用占位符代替):

diff
 model_provider = "aicodewith"
 model = "gpt-6.1-sol"
 model_reasoning_effort = "medium"

 [model_providers.aicodewith]
 name = "aicodewith"
 base_url = "https://api.aicodewith.ai/chatgpt/v1"
 wire_api = "responses"
 experimental_bearer_token = "你的 API Key"
+
+[projects."/你的项目目录"]
+trust_level = "trusted"
+
+[shell_environment_policy]
+inherit = "core"
+
+[shell_environment_policy.set]
+ANTHROPIC_BASE_URL = "https://api.aicodewith.ai"
+ANTHROPIC_AUTH_TOKEN = "你的 API Key"

(另有两行 [tui] 界面状态,和导入无关,省略。)

结果很清楚:provider、model、base_url、Key 都没变,Claude Code 里的 model: claude-sonnet-5-5 也没有覆盖 Codex 的模型。新增的只有信任目录和 shell_environment_policy 两段。

导入后还能不能用

导入后直接跑一次最小对话:

bash
codex exec -s read-only "1+1 等于几?"

启动信息仍是 provider: aicodewith、model: gpt-6.1-sol,两次分别约 4.8 秒和 4.4 秒返回。回答第一行还带上了 CLAUDE.md 里那条测试规则的标记,说明导入的 AGENTS.md 也生效了。

再用同一个 Key 直接调一次接口确认:

bash
curl https://api.aicodewith.ai/chatgpt/v1/responses \
  -H "Authorization: Bearer 你的API Key" \
  -H "Content-Type: application/json" \
  -d '{"model": "gpt-6.1-sol", "input": "reply with the word ok"}'

返回 HTTP 200,status 是 completed,整次请求约 3 秒。

要处理的坑:Key 被写进了 shell 环境

[shell_environment_policy.set] 的意思是:Codex 每次执行 shell 命令时,都把这些变量设进命令的环境里。我们让 Codex 运行 printenv ANTHROPIC_AUTH_TOKEN | wc -c,返回的长度和 Key 长度一致,说明 Key 确实传给了它跑的每条命令。

Codex 自己调接口用的是 experimental_bearer_token,根本不需要这两个变量。留着它们,任何被 Codex 执行的脚本、测试、第三方工具都能读到你的 Key。两种处理办法:

办法一:导入时不勾 Settings。 在 /import 界面按 c 进入逐项选择,把光标停在 Settings 上按空格取消,再选 Review selection、Import selected。我们重测了一次:其他 4 项照常导入,config.toml 里只多了信任目录和界面状态,没有 shell_environment_policy。

办法二:导入后删掉这段。 打开 ~/.codex/config.toml,删掉 [shell_environment_policy.set] 和下面的 ANTHROPIC_BASE_URL、ANTHROPIC_AUTH_TOKEN 两行。改完重新打开 Codex 即可。

如果 Key 已经在别的地方用过、不确定有没有被别的程序读到,最稳的是到控制台删掉旧 Key、新建一个。

创建 API Key,重新配一个干净的 Key →

如果 provider 真被改了,怎么修

我们这次的测试里 provider 没被改。如果你导入后发现启动信息里不是 provider: aicodewith,或者调用报 401,按这个顺序处理:

  1. 用备份恢复:cp ~/.codex/config.toml.bak ~/.codex/config.toml;
  2. 没有备份的,把上面“实测环境”里那段 model_provider、model 和 [model_providers.aicodewith] 写回全局 ~/.codex/config.toml,注意 Key 和 provider 只能写在全局文件里;
  3. 跑一次 codex exec -s read-only "hi",看启动信息里的 provider 是不是 aicodewith。

401 的排查见《Codex 401 Unauthorized 怎么解决》。

导入后还要检查的几件事

常见问题

导入会不会改坏 Claude Code?

不会。官方文档说导入不改原来的配置,我们实测 ~/.claude 和项目里的 Claude Code 文件导入前后都没变,Claude Code 可以继续用。

能重复导入吗?

可以再运行 /import。我们第二次运行时显示 “No compatible setup was found to import.”,已经导过的不会重复导。

还没装 Codex,或者还没登录,能直接导入吗?

先装好 Codex 并配好 config.toml。没配任何登录方式时,Codex 打开就是登录选择界面,进不到 /import。安装见《Codex 安装教程》。

不想整个迁移,只是任务做一半想换 Codex 接着做?

用 handoff.md 交接上下文更轻,见《Claude Code 跑一半怎么交给 Codex》;想让两边互相审查,见《Claude Code 和 Codex 怎么一起用》。

创建 API Key,开始用 Codex →