先说结论: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.json | config.toml |
| 技能(Skills) | 技能 |
| 插件 | 插件 |
| MCP 服务器配置 | Codex 的 MCP 配置 |
| Hooks | Codex hooks |
| 斜杠命令 | 技能 |
| 子 Agent | Codex 子 Agent |
| 项目记忆 | 记忆 |
| 最近 30 天的对话 | 对话,最多 50 条 |
官方文档还写了几条限制:/import 只能在本地的 Codex CLI 交互界面里用,任务运行中、远程会话里不能用;导入不会修改或删除 Claude Code 原来的配置。
实测环境
我们在 2026 年 10 月 27 日用 Codex CLI 0.164.0 测试,导入前 Codex 已经按本站教程配好全局 ~/.codex/config.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和一个PostToolUsehook; - 全局技能
~/.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,动手前先留一份:
cp ~/.codex/config.toml ~/.codex/config.toml.bak
第二步:在项目目录里运行 /import
cd 你的项目目录
codex
第一次在这个目录打开会问是否信任,选 Trust and continue。进入界面后输入 /import 回车,会列出它找到的东西:
> 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 可以逐项勾选(建议这样做,原因见下面“要处理的坑”)。导入结果:
• 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 条导入成功 |
两点值得注意:
- hooks 不会偷偷运行。导入后再打开 Codex,会先弹出 hooks 审核界面,提示 “1 hook needs review before it can run”,PostToolUse 显示已安装 1、生效 0。确认没问题后在
/hooks里信任它才会生效。 - 子 Agent 的工具限制丢了。Claude Code 里只给了 Read 和 Grep 的子 Agent,导入后的
reviewer.toml里没有对应限制。官方文档也提醒要检查导入后技能和 Agent 的工具权限,需要的话手动补上。
另外我们检查了 ~/.claude 和项目里的 Claude Code 文件,导入前后都没有被修改,和官方文档说的一致。
model_provider 有没有被改
把导入前后的 ~/.codex/config.toml 做对比(Key 用占位符代替):
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 两段。
导入后还能不能用
导入后直接跑一次最小对话:
codex exec -s read-only "1+1 等于几?"
启动信息仍是 provider: aicodewith、model: gpt-6.1-sol,两次分别约 4.8 秒和 4.4 秒返回。回答第一行还带上了 CLAUDE.md 里那条测试规则的标记,说明导入的 AGENTS.md 也生效了。
再用同一个 Key 直接调一次接口确认:
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、新建一个。
如果 provider 真被改了,怎么修
我们这次的测试里 provider 没被改。如果你导入后发现启动信息里不是 provider: aicodewith,或者调用报 401,按这个顺序处理:
- 用备份恢复:
cp ~/.codex/config.toml.bak ~/.codex/config.toml; - 没有备份的,把上面“实测环境”里那段
model_provider、model和[model_providers.aicodewith]写回全局~/.codex/config.toml,注意 Key 和 provider 只能写在全局文件里; - 跑一次
codex exec -s read-only "hi",看启动信息里的provider是不是aicodewith。
401 的排查见《Codex 401 Unauthorized 怎么解决》。
导入后还要检查的几件事
- hooks:输入
/hooks逐个看过再信任,尤其是会执行命令的 hook; - MCP:用
/mcp看服务器是否能连上,需要登录的要重新登录,配置细节见《Codex MCP 配置教程》; - 技能:确认技能列表里有导入的技能,触发方式见《Codex Skills 怎么用》;
- 规则:项目里现在有 CLAUDE.md 和 AGENTS.md 两份,内容一样。以后只改一份的话,可以看《Claude Code 和 Codex 共用一份 AGENTS.md》。
常见问题
导入会不会改坏 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 怎么一起用》。



