首页 / Codex 教程 / 从其他工具迁移

Codex 教程

从其他工具迁移

本教程共 32 篇 · 第 30 篇 · 更新于 2026-07-26 · 约 10 分钟阅读

CodexCodex 教程迁移CursorClaude CodeAGENTS.mdconfig.toml导入

30. 从其他工具迁移

本节目标:搞懂怎么从 Cursor、Claude Code 等工具迁到 Codex—用 /import 自动导入、手动转配置文件、权限模型重建认知、避开想当然的坑。

从别的 AI 编程工具转到 Codex,你不是从零学一个新工具。这俩在同一层面是同一类东西—都是终端里的 AI 编程 CLI,都跑智能体循环,都能直接读写你的代码库。你 90% 的心智模型能直接搬,要重新认的只是「东西放哪、叫什么名」。

打个比方,从安卓换到另一个牌子的安卓机,不是从安卓换苹果那种推倒重来。你拨号、发消息、装应用、滑动返回的肌肉记忆全在,只是图标挪了位置、设置菜单换了层级。

/import:自动导入

ChatGPT 桌面应用提供了导入流程,能把其他智能体里的指令、设置、skills、plugins、项目和最近工作一键带过来。

怎么导入

  1. 在桌面应用打开 Settings > Import(设置里没有独立 Import 页就找 General,里面有个 Import other agent setup)
  2. 选择 Import
  3. 选要从哪个智能体导入,点 Continue
  4. Select items to import 页面勾选要带入的内容,点 Continue
  5. 导入完成后打开已导入的项目或聊天继续工作
Note

导入不会更改或删除你现有的智能体设置。它只往 Codex 这边加东西,你原来那个工具里的配置原封不动。

能导入什么

导入内容目标位置
指令文件(如 CLAUDE.md)AGENTS.md
settings.jsonconfig.toml
SkillsSkills
PluginsPlugins
现有项目文件夹使用同一文件夹的项目
最近 30 天的聊天ChatGPT 聊天
MCP server 配置Codex MCP 配置
HooksCodex hooks
Slash commandsSkills
子代理Codex 智能体

导入后要检查什么

导入不是万能的,有些东西需要手动复查:

  • 已导入 skills 和智能体中的工具限制或权限:迁移后行为可能不同
  • MCP server 设置:使用自定义认证、headers、环境变量或 transports 的,可能需要重新登录
  • Hooks:导入后行为可能变,需要逐个确认
  • Plugins:仍需人工配置的会显示状态卡片,按提示完成
  • 提示词模板:依赖参数、shell 插值或文件路径占位符的,路径可能对不上
Warning

导入结束后,应用左下角会显示状态卡片。如果某个已导入的 plugin 或连接仍需设置,卡片会明确指出。别看到导入完成就以为万事大吉,先处理完状态卡片上的待办。

手动迁移:核心对照表

不想用自动导入,或想精细控制每一步,可以手动迁。核心概念对照如下:

其他工具Codex关系一句话差异
CLAUDE.mdAGENTS.md换名概念一致,覆写规则不同
settings.json(JSON)config.toml(TOML)换格式JSON 转 TOML,键名结构全不一样
权限模式 + allow/deny 规则沙箱 + 审批换思路从「按工具列白名单」变「圈地 + 出圈才问」
claude -p 无头模式codex exec换名都是「不进交互界面、跑完就走」
CLAUDE.local.md 本地变体AGENTS.override.md语义不同前者附加,后者整层替换
自动记忆(默认开)Memories(默认关)脾气不同Codex 记忆默认关、异步生成
Opus / Sonnet / HaikuGPT-5.x 系列换型号选型逻辑一样,换名字

CLAUDE.md 转 AGENTS.md

这是迁移时第一个会撞的问题。Codex 不读 CLAUDE.md,它认的文件名叫 AGENTS.md

好消息是内容几乎能原样搬。项目概述、技术栈、常用命令、代码约定、禁改清单—这五类东西在两边都是同样的写法、同样的目的。

几处照搬会出问题的差异:

维度其他工具Codex
用户级放哪~/.claude/CLAUDE.md~/.codex/AGENTS.md
项目级放哪./CLAUDE.md./AGENTS.md(项目根)
临时覆写CLAUDE.local.md(附加个人内容)AGENTS.override.md(整层替换同级 AGENTS.md)
大小红线按行数(建议 200 行内)按字节(合并后默认 32 KiB)
Tip

搬之前顺手瘦身。删掉那些 Codex 看代码就能自证的内容—立项背景、技术选型经过几轮评审这类,写代码用不上。原来写得偏肥的,搬过来合并体积撞了上限,子目录那份指令就没生效了。

过渡期想让老 CLAUDE.md 也被认,配一行:

# ~/.codex/config.toml
project_doc_fallback_filenames = ["CLAUDE.md"]

加了这条,Codex 在每个目录的挑选顺序变成 AGENTS.override.md -> AGENTS.md -> CLAUDE.md,取第一个存在且非空的。

settings.json 转 config.toml

配置文件不能直接复制,连格式都不一样。JSON 转 TOML,键名和结构全不同。

// Claude Code: settings.json (JSON)
{
  "model": "claude-sonnet-4"
}
# Codex: config.toml (TOML)
model = "gpt-5.6"
model_reasoning_effort = "medium"
Warning

TOML 的几个习惯,从 JSON 转过来最容易写错:键值对用 = 不用 :;不用大括号包整个对象,靠 [section] 节表头分组;行尾不加逗号。我刚转过来时手贱在每行末尾加了逗号(JSON 肌肉记忆),Codex 直接报配置解析错。

别想着「翻译」整个 settings.json,照着 config.toml 的键表,把真正在用的那几条重新配一遍。大多数人实际改的也就模型、沙箱、审批这三五行。

权限模型:最大的认知差

这是迁移时心智差异最大的一处。照搬「列白名单」的思路过来,你会找不着北。

其他工具的权限模型核心是两件事:

  • 权限模式:从步步问到全放开,用快捷键在模式间切
  • 规则白名单:在 settings.json 里写 allow / ask / deny,按工具、按命令精确控权

Codex 把「能动多大」和「问不问你」拆成两个独立旋钮:

  • 沙箱(sandbox):管能动多大—read-only / workspace-write / danger-full-access
  • 审批(approval):管问不问你—untrusted / on-request / never
你想要的效果其他工具怎么设Codex 怎么设
只让它读默认模式 / 只读沙箱 read-only
项目里放手改acceptEdits沙箱 workspace-write + 审批 on-request
全自动bypassPermissions沙箱 danger-full-access + 审批 never
拦死某条命令permissions.deny 写规则rules 用 prefix_rule() 匹配,decision = “forbidden”
切换松紧Shift+Tab/permissions 或启动加 -s / -a

三个必须重建的认知:

第一,「不问」不等于「放权」。 你完全可以「只读 + 不问我」(read-only + never),意思是「随便读、但读的时候一句都别打扰」。never 是「不弹审批」,不是「放开权限」。

第二,默认档跟有没有 Git 挂钩。 有 Git 管的目录给你 workspace-write + on-request,没 Git 的默认 read-only。这是道安全网。

第三,workspace-write 下网络默认关、.git 只读保护。 这俩默认值反直觉,想联网得自己开。

斜杠命令对照

好消息:进了会话后,肌肉记忆大半能直接用。斜杠命令两边重叠度极高。

你想干的事其他工具Codex同名吗
切模型/model/model
压缩上下文/compact/compact
清屏开新对话/clear/clear
看状态/status/status基本对应
生成项目说明书/init/init是(一个生成 CLAUDE.md、一个生成 AGENTS.md)
看改动 diff/diff/diff
审一遍改动/review/review
调权限松紧Shift+Tab/permissions不一样
Tip

最大差异是调权限。其他工具按快捷键在模式间循环切,Codex 是敲 /permissions 弹选择器挑档。功能等价,手感不一样—从快捷键变成菜单选择。

别想当然的清单

迁移最危险的不是「不会用」,是「以为一样、结果不一样」。

你可能的想当然实际情况
Codex 也读 CLAUDE.md它只读 AGENTS.md(除非配 fallback filenames)
记忆默认开着、说一句就记Memories 默认关、异步生成、有地区限制
settings.json 复制过去就行得重写成 TOML 的 config.toml
权限按工具列白名单是沙箱 + 审批两个独立旋钮
Shift+Tab 切权限Codex 敲 /permissions
Warning

必须每次生效的死规矩,两边都该写进项目说明书(AGENTS.md),别赌记忆。Codex 的记忆默认关着,你以为「跟它说一句它就记住了」,结果转头又用错包管理器。

验证迁移成功

迁完怎么确认 Codex 真读到了你的配置?在项目目录里跑:

codex --ask-for-approval never "Summarize the current instructions."

Codex 会回显你写进 AGENTS.md 的那几条—技术栈、常用命令、编程约定、禁区。只要它复述出来,就证明这份 AGENTS.md 这一轮确实被装进了上下文,迁移成功。

小结

  • 总判断:90% 心智模型直接搬,要重学的只是「东西放哪、叫什么名」
  • /import:桌面应用的自动导入流程,能带指令、设置、skills、plugins、项目、聊天、MCP 配置、hooks、子代理。导入后要检查权限、认证、路径
  • CLAUDE.md -> AGENTS.md:内容能搬,文件名、覆写机制、大小红线不同,搬之前顺手瘦身
  • settings.json -> config.toml:换格式重写,TOML 用 =、用 [section]、行尾不加逗号
  • 权限模型:从「模式 + 白名单」变成「沙箱 + 审批」两个独立旋钮,「不问 ≠ 放权」
  • 斜杠命令:大半同名,最大差异是调权限从快捷键变成 /permissions
  • 别想当然:记忆默认关、AGENTS.override.md 语义不同、权限是旋钮不是白名单
  • 验证:用「Summarize the current instructions」确认 AGENTS.md 被读到

下一章讲 Windows 使用指南—原生 Windows 支持、WSL 配置、沙箱差异、常见问题。