I started this article in Claude Code and finished it in Codex. The handoff worked — but the one awkward error is exactly what ordinary users need explained.
What This Plugin Actually Does
- Claude has gathered the context, but you want Codex to implement or review;
- you want a second model to continue the same task instead of writing a fresh handoff brief;
- you want Codex's desktop experience without losing the decisions already made in Claude Code.
Five-Minute Setup
Text
/plugin marketplace add openai/codex-plugin-cc
/plugin install codex@openai-codex
/reload-plugins
/codex:setup
Bash
codex login
Text
/codex:setup --enable-review-gate
The Ideal Handoff
Text
/codex:transfer
Text
Transferred the Claude session into a Codex thread with visible turn history.
Codex session ID: <session-id>
Resume in Codex: codex resume <session-id>
From Codex CLI to Codex Desktop: Exit, Then Retry
Bash
codex resume <session-id>
Text
/app
Text
This is open in another app
Close it there to continue here.
Text
Transfer → Resume → /app → Exit CLI → Retry
The Awkward Part: "Could Not Identify the Current Claude Transcript"
Text
Could not identify the current Claude transcript.
Retry with --source <path-to-claude-jsonl>.
Text
/codex:transfer --source ~/.claude/projects/-Users-me-repo/<session-id>.jsonl
Do This Instead
Text
Find the JSONL transcript for this current Claude Code session under
~/.claude/projects. Do not guess the session ID. Scan it for likely raw
secrets without printing their values. If it is safe, give me one exact,
copy-pasteable command:
/codex:transfer --source <absolute-path-to-current-jsonl>
One Privacy Check Before Transfer
- scan for likely secrets;
- report counts and locations only;
- never print the matching values;
- stop the transfer if anything sensitive is found.
What Worked for Me
| Component | Result |
|---|---|
| Node | 26.7.0 |
| npm | 12.0.2 |
| Codex CLI | 0.147.0 |
| Codex plugin | 1.0.6 |
| Authentication | ChatGPT login, verified |
| Runtime | Direct, starts on demand |
| Review gate | Optional; enabled for my workspace |
The Short Version
Text
1. Install the official OpenAI Codex plugin in Claude Code.
2. Run /codex:setup until it says ready: true.
3. Run /codex:transfer.
4. If transcript detection fails, ask Claude to locate the current JSONL
and return the complete --source command. Do not build the path yourself.
5. Scan the transcript for secrets before importing it.
6. Keep the returned Codex session ID and resume command.
7. Resume in Codex CLI, run /app, then exit the CLI.
8. Click Retry in Codex Desktop so the GUI can take ownership.
Let AI Do It
Text
Set up OpenAI's Codex plugin and transfer this current Claude session.
Reference: https://mjshao.fun/blog/claude-code-to-codex-transfer
Review gate: [ask me: enable or leave disabled]
1. Check Node, npm, Codex CLI, and Codex authentication.
2. Install openai/codex-plugin-cc only if missing, then reload plugins.
3. Run /codex:setup and show me the result.
4. Locate this session's exact JSONL under ~/.claude/projects; do not guess.
5. Scan it for raw secrets, reporting counts only; stop if any are found.
6. Run /codex:transfer, using the exact --source path if auto-detect fails.
7. Return the Codex session ID and exact resume command.
8. Resume the thread, run /app, exit Codex CLI, and click Retry in Desktop.
9. Verify the Desktop task shows the imported history.
这篇文章在 Claude Code 里开头,在 Codex 里收尾。交接确实跑通了,但中间那个别扭的报错,正是普通用户最需要有人讲明白的地方。
这个插件到底做了什么
- Claude 已经把背景查清楚了,但你想让 Codex 继续实现或 review;
- 你想换一个模型接着干,而不是重新写一份交接文档;
- 你想用 Codex 桌面端,同时保留 Claude Code 里已经做出的判断和决定。
五分钟安装
Text
/plugin marketplace add openai/codex-plugin-cc
/plugin install codex@openai-codex
/reload-plugins
/codex:setup
Bash
codex login
Text
/codex:setup --enable-review-gate
理想情况:一条命令交接
Text
/codex:transfer
Text
Transferred the Claude session into a Codex thread with visible turn history.
Codex session ID: <session-id>
Resume in Codex: codex resume <session-id>
从 Codex CLI 进入桌面端:先退出,再 Retry
Bash
codex resume <session-id>
Text
/app
Text
This is open in another app
Close it there to continue here.
Text
Transfer → Resume → /app → 退出 CLI → Retry
最反人类的一步:找不到当前 transcript
Text
Could not identify the current Claude transcript.
Retry with --source <path-to-claude-jsonl>.
Text
/codex:transfer --source ~/.claude/projects/-Users-me-repo/<session-id>.jsonl
正确做法:让 Claude 找,让人只负责粘贴
Text
请在 ~/.claude/projects 下找到「当前这个 Claude Code 会话」对应的
JSONL transcript,不要猜 session ID。只扫描是否存在疑似明文密钥,
不要输出密钥内容。如果安全,请返回一条可以直接粘贴的完整命令:
/codex:transfer --source <当前 JSONL 的绝对路径>
Transfer 前多做一次隐私检查
- 扫描疑似密钥;
- 只报告数量和位置;
- 不打印命中的具体值;
- 一旦发现敏感内容,立即停止 transfer。
我的实测结果
| 组件 | 结果 |
|---|---|
| Node | 26.7.0 |
| npm | 12.0.2 |
| Codex CLI | 0.147.0 |
| Codex plugin | 1.0.6 |
| 认证 | ChatGPT 登录,已验证 |
| Runtime | Direct,按需启动 |
| Review gate | 可选;我的 workspace 已开启 |
最短版操作清单
Text
1. 在 Claude Code 安装 OpenAI 官方 Codex 插件。
2. 运行 /codex:setup,直到显示 ready: true。
3. 运行 /codex:transfer。
4. 如果自动识别 transcript 失败,让 Claude 找当前 JSONL 并返回完整的
--source 命令,不要自己拼路径。
5. 导入前扫描 transcript 是否包含明文密钥。
6. 保存插件返回的 Codex session ID 和 resume 命令。
7. 在 Codex CLI 恢复会话并运行 /app,然后退出 CLI。
8. 回到 Codex 桌面端点 Retry,让 GUI 正式接管。
让 AI 直接帮你做
Text
请帮我安装 OpenAI Codex 插件,并把当前 Claude 会话交给 Codex。
参考:https://mjshao.fun/blog/claude-code-to-codex-transfer
Review gate:[问我:开启或保持关闭]
1. 检查 Node、npm、Codex CLI 和 Codex 登录状态。
2. 仅在缺失时安装 openai/codex-plugin-cc,然后 reload plugins。
3. 运行 /codex:setup,把结果给我看。
4. 定位当前会话在 ~/.claude/projects 下的准确 JSONL,不要猜。
5. 扫描是否有明文密钥,只报告数量;若有则停止。
6. 运行 /codex:transfer;自动识别失败时使用准确的 --source 路径。
7. 返回 Codex session ID 和完整 resume 命令。
8. 恢复该会话,运行 /app,退出 Codex CLI,再到桌面端点 Retry。
9. 验证桌面端已经显示导入的历史记录。