双 CLI 工作流

Codex 快速编写 + Claude Code 深度审查 = 双层保障。用 tmux 管理会话,两个 AI 同屏协作。


你将学到什么

  • 理解双 CLI 工作流的价值
  • 安装和使用 tmux 管理终端会话
  • 配置一键启动命令
  • 掌握"Codex 写 + Claude 审"的日常开发流程

前置条件:已完成 Claude Code 入门,终端基础

预计时间:20 分钟

最终效果

code
┌─────────────────────────┬─────────────────────────┐
│                         │                         │
│     Claude Code         │     终端 / Codex        │
│     深度审查 & 重构       │     快速编写 & 测试      │
│                         │                         │
└─────────────────────────┴─────────────────────────┘

一、为什么双 CLI

单独用一个 AI 编程工具已经很强了。但两个配合使用,效果远超 1+1:

角色工具擅长
快枪手Codex CLI快速生成代码、批量编写、原型搭建
审查官Claude Code深度理解、发现隐患、架构优化

实际工作中的模式:

  1. 用 Codex 快速写出功能代码
  2. 用 Claude Code 审查,发现潜在 bug、性能问题、安全隐患
  3. 根据审查意见修改
  4. 再让 Claude Code 做最终确认

这就像有一个程序员写代码,另一个资深工程师做 Code Review -- 全天候、不知疲倦。


二、安装 tmux

两个 CLI 要同屏运行,需要一个终端复用器。tmux 是最佳选择。

code
brew install tmux

验证安装:

code
tmux -V
# 输出类似: tmux 3.6a

三、tmux 是什么,为什么需要它

问题场景

你正让 Claude Code 做一个大规模重构,预计要跑 20 分钟。这时候:

  • 不小心关了终端窗口 --> 对话丢失,任务中断
  • 网络断了(远程 SSH 场景) --> 同上
  • 想同时跑另一个任务 --> 得开新窗口,来回切换很烦

tmux 解决了什么

tmux(Terminal Multiplexer,终端复用器)在后台运行一个持久化的会话层:

code
你的终端(iTerm2 / Terminal.app)
   │
   └── tmux 会话(后台持久运行)
        ├── 窗格 1: Claude Code
        └── 窗格 2: 终端 / Codex
  • 关掉终端不影响 -- 会话在后台继续跑
  • 随时重连 -- 打开新终端,一条命令回到现场
  • 分屏 -- 一个窗口里看到多个面板

四、快捷命令配置

把以下内容添加到 ~/.zshrc

code
# ===== 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"
}

让配置生效:

code
source ~/.zshrc

tcc 做了什么

逐行拆解:

说明
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: 启动开发环境

code
tcc myproject ~/projects/myproject

你会看到左右分屏的界面。左边 Claude Code 正在启动。

Step 2: 左边 -- 让 Claude 熟悉代码库

在左侧 Claude Code 窗格中:

code
> 分析一下这个项目的整体结构和技术栈

> 列出目前代码中的主要问题和技术债

Claude Code 会遍历整个代码库,给你一份全面的分析。

Step 3: 右边 -- 用 Codex 快速写代码

点击右侧窗格(或用快捷键切换),启动 Codex:

code
codex

让 Codex 快速完成编写任务:

code
> 给 User 模型添加一个 updateProfile 方法,支持修改 name 和 avatar

> 写一个 useDebounce hook,延迟 300ms

Codex 的优势是速度快,几秒钟就能输出代码。

Step 4: 让 Claude 审查 Codex 写的代码

切回左侧 Claude Code 窗格:

code
> 审查一下刚刚修改的文件,检查有没有问题

> review 最近的 git diff

Claude Code 会深入分析:

  • 有没有边界条件没处理
  • 类型定义是否完整
  • 有没有安全隐患
  • 代码风格是否一致

Step 5: 要离开?脱离会话

Ctrl+B,然后按 d(detach):

code
# 会话脱离,后台继续运行
[detached (from session myproject)]

Step 6: 回来?重连

code
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
列出会话tltmux ls
重连会话ta 名称tmux attach -t 名称
关闭会话tk 名称tmux kill-session -t 名称

窗格操作

操作按键
左右分屏Ctrl+B --> %
上下分屏Ctrl+B --> "
切换窗格鼠标点击,或 Ctrl+B --> 方向键
关闭当前窗格exitCtrl+D
调整窗格大小鼠标拖动边框

窗口管理

操作按键
新建窗口Ctrl+B --> c
切换窗口Ctrl+B --> 数字键
翻看历史滚轮,或 Ctrl+B --> [

速记口诀

d = detach(脱离),% = 竖线分屏(想象 % 中间那根竖线)," = 横线分屏


七、多项目并行

tmux 支持同时运行多个会话,每个项目一个独立环境:

code
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 脱离

查看所有会话:

code
tl
# opensci: 2 windows (created ...)
# quantpm: 2 windows (created ...)
# backend: 2 windows (created ...)

随时切换:

code
ta quantpm    # 切到量化项目

每个会话都是完全隔离的 -- 独立的工作目录、独立的 Claude 对话、独立的 Codex 实例。关掉终端再打开,全部还在。


八、实战练习

试试这个完整流程:

  1. 创建一个测试项目:

    code
    mkdir -p ~/projects/dual-cli-test && cd ~/projects/dual-cli-test
    git init && npm init -y
  2. 用 tcc 启动双面板环境:

    code
    tcc test ~/projects/dual-cli-test
  3. 左边让 Claude Code 生成项目配置:

    code
    > /init
    
  4. 右边用 Codex 写一个简单的 Express 服务器

  5. 切回左边,让 Claude Code 审查:

    code
    > review 整个项目,给出改进建议
    
  6. 练习脱离(Ctrl+B d)和重连(ta test

  7. 完成后清理:

    code
    tk test

九、进阶预告 -- 运维 Subagent

Claude Code 的 Agent 模式不仅能写代码,还能用于自动化运维:

  • 让 Agent 定期巡检服务状态
  • 自动分析日志、发现异常
  • 执行标准化运维操作

这是 AINEOS 的核心能力之一 -- 用 AI Agent 管理 AI 基础设施。详见下一篇教程。


十、下一步

掌握了双 CLI 工作流后,来探索 AINEOS 的技能生态:

技能生态导航 -->


小贴士

  • 关掉 iTerm2 / Terminal 不影响 tmux -- 重新打开后 ta 会话名 就回来了
  • 鼠标够用就别硬记快捷键 -- tmux 支持鼠标点击切换窗格、拖动调整大小
  • 分屏自动保持目录 -- 新窗格会继承当前工作目录
  • Claude Code 的 /resume 命令 -- 即使 Claude Code 进程意外退出,重新启动后用 /resume 可以恢复上次对话