alexs 发表于 昨天 09:08

Codex CLI 速查表【搬运】

## 首要任务——安装与登录

先说前提:**Node.js****>=****22** 是硬性要求,版本低了装不上。账号方面需要 ChatGPT Plus/Pro/Team/Business/Edu 订阅,免费账号用不了。注册机弄的当我没说。

### macOS / Linux 装法(简单)

```bash
# npm 全局安装,一行搞定
npm i -g @openai/codex

# macOS 也可以 brew(装的是桌面应用版本)
brew install --cask codex

# 验证
codex --version
```

### Windows 装法(重点讲讲)

Windows 目前有两种方式跑 cx,各有利弊:

#### 方式一:WSL2(推荐,体验最好)

cx 官方说了 Windows 支持还是**实验性**的,WSL2 是目前最稳的方案。原理就是在 Windows 里跑一个 Linux 子系统,cx 跑在 Linux 环境里,兼容性拉满。

**第一步:装 WSL**

打开 PowerShell(管理员),跑一行:

```powershell
wsl --install
```

装完会提示重启,重启后会自动进入 Ubuntu 的初始化,设个用户名密码就行。

如果之前装过但版本是 WSL1,建议升级到 WSL2:

```powershell
wsl --set-default-version 2
```

**第二步:在 WSL 里装 Node.js**

Ubuntu 自带的 Node 版本太老,别用 apt 装,用 nvm:

```bash
# 装 nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash

# 重新开一个终端,或者 source 一下
source ~/.bashrc

# 装 Node 22
nvm install 22

# 验证
node -v   # 应该显示 v22.x.x
npm -v
```

**第三步:装 Codex CLI**

```bash
npm i -g @openai/codex
codex --version
```

**第四步:把项目放对地方**

这个很重要——**项目要放在 Linux 文件系统里**,别放在 `/mnt/c/` 下面。跨文件系统 IO 会很慢,Git、Docker、测试啥的都会卡。

```bash
# 好的做法:项目放在 Linux home 下
mkdir -p ~/code && cd ~/code
git clone your-repo

# 不好的做法:从 Windows 盘符访问
cd /mnt/c/Users/xxx/project# 别这么干,会很慢
```

**VS Code 配合 WSL 用**

装个 VS Code 的 (https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-wsl),然后在 WSL 终端里:

```bash
cd ~/code/my-project
code .    # 会自动用 WSL 模式打开 VS Code
```

这样 VS Code 的终端也是 WSL 环境,cx 跑起来没问题。

#### 方式二:原生 Windows(PowerShell,能用但有坑)

如果不想折腾 WSL,也可以直接在 PowerShell 里跑。先确保 Node \>\= 22 装好了(可以去 (https://nodejs.org) 下安装包,或者用 `winget install OpenJS.NodeJS`)。

```powershell
npm i -g @openai/codex
codex --version
```

原生 Windows 下 cx 用的是**实验性的 Windows 沙盒**:

- 通过 Restricted Token + 文件系统 ACL 限制写入范围
- 创建专用的 Windows Sandbox User 执行命令
- 用 Windows 防火墙规则限制网络访问

听着挺靠谱的,但实际用下来偶尔会有权限问题,Win10 上比 Win11 更容易出问题。如果你主要在 Windows 上开发而且不想装 WSL,可以试试,遇到问题再切 WSL。

#### Windows 踩坑汇总

| 问题                      | 解决办法                                                                |
| --------------------------- | ------------------------------------------------------------------------- |
| WSL 里`codex`登录弹不出浏览器    | 复制终端里显示的 URL,手动在 Windows 浏览器里打开                     |
| `/mnt/c/`下项目跑得慢            | 把项目移到`~/code/`下                                                            |
| 原生 Windows 沙盒报权限错 | 试试用管理员权限跑 PowerShell,或者切 WSL                               |
| Node 版本不对             | `node -v`检查,低于 22 就用 nvm 重装                                             |
| npm 全局安装报 EACCES   | WSL 里用 nvm 装的 Node 一般没这问题;原生 Windows 试试管理员 PowerShell |

### 认证登录

| 命令 | 说明                                     |
| ------ | ------------------------------------------ |
| `codex`   | 首次启动自动弹浏览器,ChatGPT 账号登录   |
| `codex login`   | 手动触发浏览器 OAuth                     |
| `codex login --device-code`   | 设备码登录,SSH 远程机器没浏览器就用这个 |
| `printenv OPENAI_API_KEY \| codex login --with-api-key`   | API Key 登录                           |

登录后 token 保存在 `~/.codex/token`。WSL 环境下就是 Linux 的 home 目录,原生 Windows 下是 `%USERPROFILE%\.codex\token`。

## 当然佬们一般都是白嫖的codex,从各个中转站或用注册机弄的,再配合cc switch调用来使用,这方面我就不详细介绍了,站内都有详细介绍。

## 快捷键

cx 的快捷键比 cc 少一些,而且目前**不支持自定义**(社区有人提了 (https://github.com/openai/codex/issues/3049) 但还没实现)。

### 基础操作

| 按键 | 作用                                           |
| ------ | ------------------------------------------------ |
| `Enter`   | 发送消息                                       |
| `Esc`   | 取消当前请求                                 |
| `Esc Esc`   | 编辑上一条消息(这个挺实用,说错了可以直接改) |
| `Ctrl+C`   | 中断当前操作                                 |
| `Ctrl+C Ctrl+C`   | 强制退出(按两次,一次可能不够)               |
| `Ctrl+D`   | 退出 Codex                                     |
| `Ctrl+K`   | 清屏                                           |
| `Ctrl+O`   | 选择 Codex Cloud 环境                        |

### 编辑与导航

| 按键 | 作用                                    |
| ------ | ------------------------------------------- |
| `Up`/`Down`    | 翻之前的输入历史,不用重新打字            |
| `Tab`   | 自动补全                                  |
| `@`   | 引用文件(模糊搜索,跟 cc 的 @ 一样好用) |
| `!command`   | 内联跑 Shell 命令,比如`!ls`、`!git status`,不用退出 cx    |

`@` 引用文件是我用得最多的,比复制粘贴代码省 token 多了。

---

## 会话里的斜杠命令

在输入框里打 `/` 会弹出命令面板,下面按用途分类。

### 会话控制

| 命令 | 说明                                                       |
| ------ | ------------------------------------------------------------ |
| `/compact`   | 压缩上下文,聊太久 token 爆了就靠这个续命                  |
| `/diff`   | 看当前 Git 差异,改了哪些文件一目了然                      |
| `/review`   | 让另一个 Codex 代理审查你的代码(相当于找了个同事 review) |
| `/resume`   | 恢复之前的对话                                             |
| `/fork`   | 把当前对话克隆一份到新线程,想试不同方案的时候很好用       |
| `/plan`   | 进入计划模式——只规划不执行,先看方案再动手               |
| `/quit`/`/exit`    | 退出                                                       |

`/compact` 真的建议多用,现在上下文还不是很长,聊久了上下文膨胀得很快,每次一个任务对话完成之后压缩一下能省不少钱。

### 配置与模型

| 命令 | 说明                                                                  |
| ------ | ----------------------------------------------------------------------- |
| `/model`   | 切换模型或调推理级别                                                |
| `/personality`   | 切性格:friendly(话多热情)、pragmatic(干练务实)、none(纯工具人) |
| `/permissions`   | 调权限                                                                |
| `/status`   | 看当前工作目录、模型、token 用了多少                                  |
| `/agent`   | 管理代理                                                            |
| `/experimental`   | 开实验性功能(比如 Multi-agents),改完要重启                         |

`/personality pragmatic` 我个人比较喜欢,不废话直接干活。

### 开发与工具

| 命令 | 说明                                     |
| ------ | ------------------------------------------ |
| `/init`   | 在项目里创建 AGENTS.md,**新项目第一件事建议就做这个**               |
| `/skills`   | 浏览和插入技能                           |
| `/mcp`   | 列出已连接的 MCP 工具                  |
| `/theme`   | 换主题配色                               |
| `/statusline`   | 自定义底部状态栏显示啥                   |
| `/debug-config`   | 看配置加载顺序,排查配置问题的时候很有用 |

### 会话持久化

| 命令 | 说明                                     |
| ------ | ------------------------------------------ |
| `/export session.json`   | 导出当前会话                           |
| `/load session.json`   | 加载之前的会话继续干(适合跨天的大重构) |

---

## 启动参数怎么用

### 基础启动

| 命令 | 说明                                 |
| ------ | ---------------------------------------- |
| `codex`   | 启动交互式 TUI                         |
| `codex "你的任务"`   | 带着问题直接启动                     |
| `codex exec "任务"`   | 非交互式执行(别名`codex e`),跑脚本/CI 用这个 |
| `codex resume`   | 恢复之前的会话                         |
| `codex resume --last`   | 直接恢复最近一次,不用选               |
| `codex resume --all`   | 包括其他目录的会话也能恢复             |
| `codex fork`   | 分叉之前的会话                         |
| `codex fork --last`   | 分叉最近一次会话                     |

`codex resume --last` 相当于 cc 的 `claude -c`,恢复上次对话。

### 模型与行为

| 参数 | 说明                               |
| ------ | ------------------------------------ |
| `--model <model>`   | 指定模型,如`gpt-5-codex`、`gpt-5.3-codex`                     |
| `--full-auto`   | 全自动模式,等于`-a on-request -s workspace-write`                   |
| `-a never`   | 从不暂停请求人工审批               |
| `-a on-request`   | 需要时才问你(交互式推荐)         |
| `--path <dir>`   | 指定工作目录                     |
| `--add-dir <path>`   | 添加额外的可写目录,可重复用       |
| `--search`   | 开启实时网页搜索(默认是缓存模式) |
| `-c key=value`   | 临时覆盖配置值,优先级最高         |

### 沙盒模式

这是 cx 和 cc 最大的区别之一——**cx 有内置沙盒**,默认就会限制文件读写和网络访问。

| 参数 | 说明                                                         |
| ------ | -------------------------------------------------------------- |
| `-s read-only`   | 只读,只能看不能改,连 /tmp 都写不了                         |
| `-s workspace-write`   | 只能在项目目录和临时目录里写,默认禁网络(日常开发推荐这个) |
| `-s danger-full-access`   | 全放开,啥都能干,慎用                                       |

### 全自动模式(cx 版的"不用按确认")

这是大家最关心的——**怎么让 cx 全自动跑起来不用一直按确认**:

| 参数 | 说明                              |
| ------ | ----------------------------------- |
| `--full-auto`   | **最推荐的自动模式**,自动审批但还有沙盒保护          |
| `--yolo`   | 禁用所有审批 + 禁用沙盒,等于裸奔 |
| `--dangerously-bypass-approvals-and-sandbox`   | 跟`--yolo`一样,全称版本                  |

对比一下 cc 的话:

- cx 的 `--full-auto` ≈ cc 的 `--permission-mode auto-accept`(但 cx 还带沙盒保护)
- cx 的 `--yolo` ≈ cc 的 `--dangerously-skip-permissions`

**我的建议**:日常用 `--full-auto` 就够了,它在自动执行的同时还有沙盒兜底。`--yolo` 只在 Docker 容器或者虚拟机里才考虑用。

### 输出格式(exec 模式专用)

| 格式| 说明                               |
| ------- | ------------------------------------ |
| 默认| 进度 → stderr,最终结果 → stdout |
| JSONL | 结构化流式输出,方便程序解析       |

---

## 所有子命令一览

| 子命令 | 别名 | 一句话说明                  |
| -------- | ------ | ------------------------------- |
| `codex`       | —   | 开 TUI                        |
| `codex exec`       | `codex e`   | 非交互执行,CI 用             |
| `codex resume`       | —   | 恢复会话                      |
| `codex fork`       | —   | 分叉会话                      |
| `codex apply`       | `codex a`   | 把 Cloud 任务的 diff 拉到本地 |
| `codex cloud-tasks`       | —   | 看 Cloud 任务列表             |
| `codex login`       | —   | 登录                        |
| `codex completion`       | —   | 生成 Shell 补全脚本         |
| `codex app`       | —   | 开 macOS 桌面应用             |
| `codex mcp-server`       | —   | 当 MCP 服务器用               |
| `codex features`       | —   | 管理功能标志                  |
| `codex execpolicy check`       | —   | 检查执行策略(预览功能)      |

---

## 聊聊 AGENTS.md

### 这东西是干嘛的?

就是 cx 版的 CLAUDE.md。你在里面写项目约定、架构说明、编码风格之类的,cx 每次启动都会先读这个文件,这样它就知道你的项目是怎么回事了。

**新项目第一件事**:启动 cx 后输入 `/init`,它会帮你生成一个 AGENTS.md 的框架。

### 查找优先级

cx 会从全局到当前目录逐层查找 AGENTS.md,越靠近当前目录的优先级越高:

| 级别   | 位置                     |
| ---------- | ---------------------------- |
| 全局   | `~/.codex/AGENTS.md`                           |
| 全局覆盖 | `~/.codex/AGENTS.override.md`(有这个就不读上面那个)   |
| 项目根   | `项目根目录/AGENTS.md`                           |
| 项目覆盖 | `项目根目录/AGENTS.override.md`                           |
| 子目录   | 各级子目录中的`AGENTS.md`(逐层叠加) |

合并规则:每个目录最多取一个文件,从根往下拼接,总大小上限 32 KiB(可以在 config.toml 里改 `project_doc_max_bytes`)。

### 小技巧

如果团队里有人不想用 AGENTS.md 这个名字,可以在 config.toml 里配回退文件名:

```toml
project_doc_fallback_filenames = ["TEAM_GUIDE.md", ".agents.md"]
project_doc_max_bytes = 65536
```

这样 cx 会按 `AGENTS.override.md` → `AGENTS.md` → `TEAM_GUIDE.md` → `.agents.md` 的顺序查找。

---

## 配置怎么搞

cx 用 TOML 格式配置(不是 JSON),配置文件在 `~/.codex/config.toml`。

### 配置优先级(从高到低)

1. **CLI 参数**(`-c key=value`)—— 临时覆盖,优先级最高
2. **Profile 值** —— 命名配置集
3. **项目配置**(`.codex/config.toml`)—— 仅受信项目生效
4. **用户配置**(`~/.codex/config.toml`)—— 全局默认
5. **内置默认值**

### 常用配置项

| 配置项 | 说明                               |
| -------- | ------------------------------------ |
| `model`       | 用哪个模型,比如`gpt-5-codex`                   |
| `model_provider`       | 模型提供商 ID,默认`openai`                |
| `model_context_window`       | 上下文窗口大小                     |
| `model_auto_compact_token_limit`       | 自动压缩的 token 阈值            |
| `instructions`       | 直接写指令替代 AGENTS.md         |
| `sandbox_mode`       | 沙盒策略                           |
| `review_model`       | `/review`用的模型(可以单独指定一个便宜的) |
| `web_search`       | 网页搜索模式:`cached`(默认)/`live`(实时)    |

### 安全相关

| 配置项 | 说明                                                |
| -------- | ------------------------------------------------------- |
| `sandbox_writeable_roots`       | workspace-write 下额外可写的路径                      |
| `sandbox_net_allow_workspace_write`       | 允许沙盒内访问网络                                    |
| `project_trust`       | 标记项目是否受信(不受信的会跳过 .codex/ 目录的配置) |

### 接第三方模型

如果想用 Azure OpenAI 或者其他兼容 API,可以自定义 provider:

```toml

base_url = "https://api.example.com/v1"
env_key = "MY_API_KEY"


X-Custom-Header = "value"
```

然后 `model_provider = "my_provider"` 就行了。

### 功能标志

```bash
codex features list            # 看有哪些功能标志
codex features enable shell_snapshot   # 开某个功能
codex features disable shell_snapshot# 关掉
```

### Shell 补全(建议装上)

```bash
# Zsh
codex completion zsh > "${fpath}/_codex"

# Bash
codex completion bash > /etc/bash_completion.d/codex

# Fish
codex completion fish > ~/.config/fish/completions/codex.fish
```

装了之后 Tab 补全命令和参数,效率提升明显。

---

## 目录里都有些啥文件

### 全局(\~/.codex/)

| 文件 | 干嘛的       |
| ------ | -------------- |
| `config.toml`   | 全局配置   |
| `token`   | 登录凭证   |
| `AGENTS.md`   | 全局项目指令 |
| `AGENTS.override.md`   | 全局指令覆盖 |

### 项目级(.codex/)

| 文件 | 干嘛的               |
| ------ | ------------------------ |
| `config.toml`   | 项目配置(仅受信项目) |
| `AGENTS.md`   | 项目指令               |
| `AGENTS.override.md`   | 项目指令覆盖         |

---

## 沙盒和权限这块比较重要

这部分是 cx 的一大亮点——**自带沙盒安全机制**,cc 目前还没有。

### 两层安全

1. **沙盒(Sandbox)** :物理层面限制能干什么——能不能写文件、能不能联网
2. **审批策略(Approval)** :流程上限制——什么时候需要你点确认

### 沙盒模式一览

| 模式 | 读文件 | 写文件            | 联网   | 我的理解               |
| ------ | -------- | ------------------- | -------- | ------------------------ |
| `read-only`   | 能   | 全禁(包括 /tmp) | 禁   | 纯看代码用,完全安全   |
| `workspace-write`   | 能   | 项目目录+临时目录 | 默认禁 | **日常开发首选**,出不了项目目录       |
| `danger-full-access`   | 能   | 随便写            | 能   | 系统级操作才用,要小心 |

macOS 用 Seatbelt 实现沙盒,Linux 用 Landlock(也可以选 Bubblewrap)。这意味着限制是操作系统层面的,cx 自己想绕也绕不过去。

### 审批策略

| 策略       | 什么时候问你             |
| ------------ | -------------------------- |
| `on-request`         | 需要越权的时候问(推荐) |
| `never`         | 从不问,CI/脚本用      |
| `on-failure`(已弃用) | 出错了才问,别用了       |

---

## 我平时怎么用的

### 新项目起手式

```bash
cd my-project
codex
# 进去第一件事输入 /init 生成 AGENTS.md
# 然后手动补充项目的技术栈、目录结构、编码规范
# 这步做好了后面省很多口舌
```

### 计划先行

我一般习惯先 `/plan` 让它出方案,觉得靠谱了再 `/permissions` 切到可写模式执行。不然上来就让它改文件,万一改歪了还得回退。

### 省钱技巧

| 做法       | 为啥                                    |
| ------------ | ----------------------------------------- |
| 多用`/compact`       | 聊久了 token 暴涨,压缩一下能省不少   |
| 用`@`引文件   | 别手动复制粘贴代码了,费 token 还不精确 |
| 先只读探路 | 默认就是只读,看方案满意了再切可写      |
| `/model`调推理级别 | 简单问题没必要用最高推理级别            |

### CI 里怎么跑

```bash
# 最常用的,自动执行但有沙盒保护
codex exec --full-auto "fix the failing tests"

# Docker 里可以放心 yolo
codex exec --yolo "refactor the auth module"

# 加预算限制防止烧钱
codex exec --full-auto -c max_budget_usd=5 "update dependencies"
```

### 调试小技巧

- 报错直接整段粘进去,cx 解析堆栈跟踪很厉害
- 截图也能贴,cx 是多模态的
- `cat error.log | codex exec "explain"` 管道传日志分析
- `/diff` 随时看改了啥

---

## 懒人速查

### 每天都用

| 干啥          | 命令 |
| --------------- | ------ |
| 开始干活      | `cd project && codex`   |
| 继续昨天的    | `codex resume --last`   |
| 快速问个事    | `codex exec "how do I..."`   |
| 审查代码      | `/review`   |
| 看改了啥      | `/diff`   |
| 看 token 用量 | `/status`   |
| 说错了想改    | `Esc Esc`   |
| 跑路          | `Ctrl+C Ctrl+C`或`/quit`   |

### 全自动执行模式对比

| 方式   | 自动化   | 安全性 | 适用场景         |
| ---------- | ---------- | -------- | ------------------ |
| 默认 TUI | 低       | 高   | 不熟悉时先用这个 |
| `--full-auto`         | 高       | 中   | **日常开发推荐**               |
| `-a never -s workspace-write`         | 高       | 中   | 精细控制         |
| `-s danger-full-access`         | 高       | 低   | 需要系统级操作   |
| `--yolo`         | 完全自动 | 极低   | **仅限容器/VM**               |

### 进阶玩法

| 功能         | 怎么搞                  |
| ---------------- | --------------------------- |
| 分叉对话试方案 | `codex fork --last`                        |
| 接第三方模型   | config.toml 配`model_provider`            |
| MCP 工具       | config.toml 配 MCP 服务器 |
| 多代理协作   | `/experimental`开 Multi-agents         |
| VS Code 联动   | 装 Codex Companion 插件   |
| 导出对话       | `/export session.json`                        |
| 换性格         | `/personality friendly`                        |

---

## cx 和 cc 到底有啥区别

两个都在用的佬友可以参考这个表:

| 对比项       | Codex CLI (cx)          | Claude Code (cc)   |
| -------------- | ------------------------- | -------------------- |
| 开发商       | OpenAI                  | Anthropic          |
| 默认模型   | gpt-5.3-codex         | Claude Sonnet/Opus |
| 项目指令文件 | `AGENTS.md`                        | `CLAUDE.md`                   |
| 配置格式   | TOML                  | JSON               |
| 全自动       | `--full-auto`/`--yolo`                     | `--dangerously-skip-permissions`                   |
| 内置沙盒   | 有(Seatbelt/Landlock) | windows没有      |
| 恢复上次对话 | `codex resume --last`                        | `claude -c`                   |
| 代码审查   | `/review`                        | `/review`                   |
| 上下文压缩   | `/compact`                        | `/compact`                   |
| MCP          | 支持                  | 支持               |
| 开源         | 是(Rust)            | 不是               |
页: [1]
查看完整版本: Codex CLI 速查表【搬运】