双 CLI 工作流
Codex 快速编写 + Claude Code 深度审查 = 双层保障。用 tmux 管理会话,两个 AI 同屏协作。
你将学到什么
- 理解双 CLI 工作流的价值
- 安装和使用 tmux 管理终端会话
- 配置一键启动命令
- 掌握"Codex 写 + Claude 审"的日常开发流程
前置条件:已完成 Claude Code 入门,终端基础
预计时间:20 分钟
最终效果:
┌─────────────────────────┬─────────────────────────┐
│ │ │
│ Claude Code │ 终端 / Codex │
│ 深度审查 & 重构 │ 快速编写 & 测试 │
│ │ │
└─────────────────────────┴─────────────────────────┘
一、为什么双 CLI
单独用一个 AI 编程工具已经很强了。但两个配合使用,效果远超 1+1:
| 角色 | 工具 | 擅长 |
|---|---|---|
| 快枪手 | Codex CLI | 快速生成代码、批量编写、原型搭建 |
| 审查官 | Claude Code | 深度理解、发现隐患、架构优化 |
实际工作中的模式:
- 用 Codex 快速写出功能代码
- 用 Claude Code 审查,发现潜在 bug、性能问题、安全隐患
- 根据审查意见修改
- 再让 Claude Code 做最终确认
这就像有一个程序员写代码,另一个资深工程师做 Code Review -- 全天候、不知疲倦。
二、安装 tmux
两个 CLI 要同屏运行,需要一个终端复用器。tmux 是最佳选择。
brew install tmux验证安装:
tmux -V
# 输出类似: tmux 3.6a三、tmux 是什么,为什么需要它
问题场景
你正让 Claude Code 做一个大规模重构,预计要跑 20 分钟。这时候:
- 不小心关了终端窗口 --> 对话丢失,任务中断
- 网络断了(远程 SSH 场景) --> 同上
- 想同时跑另一个任务 --> 得开新窗口,来回切换很烦
tmux 解决了什么
tmux(Terminal Multiplexer,终端复用器)在后台运行一个持久化的会话层:
你的终端(iTerm2 / Terminal.app)
│
└── tmux 会话(后台持久运行)
├── 窗格 1: Claude Code
└── 窗格 2: 终端 / Codex
- 关掉终端不影响 -- 会话在后台继续跑
- 随时重连 -- 打开新终端,一条命令回到现场
- 分屏 -- 一个窗口里看到多个面板
四、快捷命令配置
把以下内容添加到 ~/.zshrc:
# ===== tmux 基础别名 =====
alias t='tmux'
alias ta='tmux attach -t' # 重连会话
alias tl='tmux ls' # 列出所有会话
alias tk='tmux kill-session -t' # 关闭会话
# ===== 一键 Claude Code 开发环境 =====
tcc() {
local name="${1:-claude}"
local dir="${2:-.}"
tmux new-session -d -s "$name" -c "$dir"
tmux send-keys -t "$name" 'claude' Enter
tmux split-window -h -t "$name" -c "$dir"
tmux attach -t "$name"
}让配置生效:
source ~/.zshrctcc 做了什么
逐行拆解:
| 行 | 说明 |
|---|---|
tmux new-session -d -s "$name" -c "$dir" | 后台创建会话,指定名称和工作目录 |
tmux send-keys -t "$name" 'claude' Enter | 在左窗格自动启动 Claude Code |
tmux split-window -h -t "$name" -c "$dir" | 右边开一个新窗格 |
tmux attach -t "$name" | 进入会话 |
一条命令,左边 Claude Code 已就绪,右边是干净的终端。
五、日常工作流
Step 1: 启动开发环境
tcc myproject ~/projects/myproject你会看到左右分屏的界面。左边 Claude Code 正在启动。
Step 2: 左边 -- 让 Claude 熟悉代码库
在左侧 Claude Code 窗格中:
> 分析一下这个项目的整体结构和技术栈
> 列出目前代码中的主要问题和技术债
Claude Code 会遍历整个代码库,给你一份全面的分析。
Step 3: 右边 -- 用 Codex 快速写代码
点击右侧窗格(或用快捷键切换),启动 Codex:
codex让 Codex 快速完成编写任务:
> 给 User 模型添加一个 updateProfile 方法,支持修改 name 和 avatar
> 写一个 useDebounce hook,延迟 300ms
Codex 的优势是速度快,几秒钟就能输出代码。
Step 4: 让 Claude 审查 Codex 写的代码
切回左侧 Claude Code 窗格:
> 审查一下刚刚修改的文件,检查有没有问题
> review 最近的 git diff
Claude Code 会深入分析:
- 有没有边界条件没处理
- 类型定义是否完整
- 有没有安全隐患
- 代码风格是否一致
Step 5: 要离开?脱离会话
按 Ctrl+B,然后按 d(detach):
# 会话脱离,后台继续运行
[detached (from session myproject)]
Step 6: 回来?重连
ta myproject
# 一切还在,Claude 对话还在,Codex 也在六、tmux 操作速查表
前缀键:Ctrl+B(tmux 默认;按住 Ctrl 敲 B,松开,再按后续键)
Tip: 很多人会在
~/.tmux.conf中把前缀键改为Ctrl+A,更顺手。如果你已经改过,下面的Ctrl+B替换为Ctrl+A即可。
会话管理
| 操作 | 命令 / 按键 |
|---|---|
| 创建会话 | tmux new -s 名称 |
| 脱离会话 | Ctrl+B --> d |
| 列出会话 | tl 或 tmux ls |
| 重连会话 | ta 名称 或 tmux attach -t 名称 |
| 关闭会话 | tk 名称 或 tmux kill-session -t 名称 |
窗格操作
| 操作 | 按键 |
|---|---|
| 左右分屏 | Ctrl+B --> % |
| 上下分屏 | Ctrl+B --> " |
| 切换窗格 | 鼠标点击,或 Ctrl+B --> 方向键 |
| 关闭当前窗格 | exit 或 Ctrl+D |
| 调整窗格大小 | 鼠标拖动边框 |
窗口管理
| 操作 | 按键 |
|---|---|
| 新建窗口 | Ctrl+B --> c |
| 切换窗口 | Ctrl+B --> 数字键 |
| 翻看历史 | 滚轮,或 Ctrl+B --> [ |
速记口诀
d = detach(脱离),% = 竖线分屏(想象 % 中间那根竖线)," = 横线分屏
七、多项目并行
tmux 支持同时运行多个会话,每个项目一个独立环境:
tcc opensci ~/projects/opensci # 会话 1: 前端项目
# Ctrl+B d 脱离
tcc quantpm ~/projects/quantpm # 会话 2: 量化项目
# Ctrl+B d 脱离
tcc backend ~/projects/api-server # 会话 3: 后端项目
# Ctrl+B d 脱离查看所有会话:
tl
# opensci: 2 windows (created ...)
# quantpm: 2 windows (created ...)
# backend: 2 windows (created ...)随时切换:
ta quantpm # 切到量化项目每个会话都是完全隔离的 -- 独立的工作目录、独立的 Claude 对话、独立的 Codex 实例。关掉终端再打开,全部还在。
八、实战练习
试试这个完整流程:
-
创建一个测试项目:
codemkdir -p ~/projects/dual-cli-test && cd ~/projects/dual-cli-test git init && npm init -y -
用 tcc 启动双面板环境:
codetcc test ~/projects/dual-cli-test -
左边让 Claude Code 生成项目配置:
code> /init -
右边用 Codex 写一个简单的 Express 服务器
-
切回左边,让 Claude Code 审查:
code> review 整个项目,给出改进建议 -
练习脱离(
Ctrl+B d)和重连(ta test) -
完成后清理:
codetk test
九、进阶预告 -- 运维 Subagent
Claude Code 的 Agent 模式不仅能写代码,还能用于自动化运维:
- 让 Agent 定期巡检服务状态
- 自动分析日志、发现异常
- 执行标准化运维操作
这是 AINEOS 的核心能力之一 -- 用 AI Agent 管理 AI 基础设施。详见下一篇教程。
十、下一步
掌握了双 CLI 工作流后,来探索 AINEOS 的技能生态:
小贴士
- 关掉 iTerm2 / Terminal 不影响 tmux -- 重新打开后
ta 会话名就回来了 - 鼠标够用就别硬记快捷键 -- tmux 支持鼠标点击切换窗格、拖动调整大小
- 分屏自动保持目录 -- 新窗格会继承当前工作目录
- Claude Code 的 /resume 命令 -- 即使 Claude Code 进程意外退出,重新启动后用
/resume可以恢复上次对话