一、Codex CLI 是什么?
Codex CLI 是 OpenAI 提供的终端 AI 编程助手,可以在本地终端中读取代码、修改文件、运行命令,并协助完成开发任务。
核心命令是:
codex
可以把它理解为:
运行在终端中的 AI 编程 Agent
适合这些场景:
- 阅读陌生项目
- 解释代码结构
- 修复 bug
- 编写单元测试
- 重构代码
- 分析日志和构建错误
- 生成文档
- 审查 Git diff
- 生成 commit message
- 使用 AGENTS.md 固化项目规则
- 使用 Skills 沉淀可复用工作流
- 使用 MCP 接入外部工具
- 使用
codex exec做脚本化任务
二、Codex CLI、Codex App、IDE Extension、Codex Cloud 的区别
| 形态 | 使用位置 | 适合场景 |
|---|---|---|
| Codex CLI | 终端 | 命令行开发、脚本化、服务器环境 |
| Codex App | 桌面应用 | 多任务并行、图形化 diff、worktree 工作流 |
| IDE Extension | VS Code / Cursor / Windsurf | 在编辑器中直接协作 |
| Codex Cloud | 浏览器 / 云端 | 把任务交给云端环境后台执行 |
如果你主要在终端里开发,优先掌握:
codex
codex exec
codex resume
codex mcp
codex completion
如果你常用 VS Code / Cursor,可以结合 Codex IDE Extension。
三、安装 Codex CLI
1. 使用 npm 安装
官方安装命令:
npm install -g @openai/codex
查看版本:
codex --version
升级到最新版:
npm install -g @openai/codex@latest
如果遇到 npm 全局权限问题,不建议直接使用:
sudo npm install -g @openai/codex
更推荐正确配置 npm 全局目录,或者改用 Homebrew。
2. 使用 Homebrew 安装
macOS 上也可以用 Homebrew:
brew install codex
升级:
brew update
brew upgrade codex
查看安装信息:
brew info codex
查看命令位置:
which codex
3. 登录与退出
首次运行:
codex
会提示登录。可以使用 ChatGPT 账号,也可以使用 OpenAI API Key。
主动登录:
codex login
退出登录:
codex logout
如果是共享电脑,使用后建议执行:
codex logout
四、快速开始
进入项目目录:
cd /path/to/your/project
启动 Codex:
codex
带初始问题启动:
codex "请解释这个项目的目录结构和启动方式"
建议第一次进入项目后先让 Codex 做只读分析:
请先阅读项目结构,不要修改代码。请说明技术栈、启动入口、测试命令和主要模块。
如果确认要让 Codex 修改代码,建议先建立 Git 检查点:
git status
git checkout -b codex/your-task
五、常用命令速查
1. 基础命令
| 场景 | 命令 |
|---|---|
| 启动交互模式 | codex |
| 带问题启动 | codex "Explain this codebase" |
| 指定工作目录 | codex -C /path/to/project |
| 指定模型 | codex -m gpt-5.4 |
| 添加额外目录 | codex --add-dir ../shared |
| 附加图片 | codex -i screenshot.png "根据截图修改 UI" |
| 使用本地开源模型 | codex --oss |
| 指定配置项 | codex -c model_reasoning_effort="high" |
| 指定配置 profile | codex -p work |
| 禁用 TUI alternate screen | codex --no-alt-screen |
| 查看帮助 | codex --help |
| 查看版本 | codex --version |
2. 审批与沙箱
| 场景 | 命令 |
|---|---|
| 只读沙箱 | codex -s read-only |
| 允许工作区写入 | codex -s workspace-write |
| 危险全访问 | codex -s danger-full-access |
| 不信任模式审批 | codex -a untrusted |
| 按需审批 | codex -a on-request |
| 不主动询问审批 | codex -a never |
| 绕过审批和沙箱 | codex --yolo |
推荐日常组合:
codex -s workspace-write -a on-request
高风险命令:
codex --yolo
--yolo 会绕过审批和沙箱,只建议在隔离容器、虚拟机或一次性实验目录中使用。
3. 非交互模式:codex exec
codex exec 适合脚本化、CI 或一次性任务。
codex exec "请总结当前项目结构"
短命令别名:
codex e "请总结当前项目结构"
指定工作目录:
codex exec -C /path/to/project "请分析测试失败原因"
从 stdin 读取 prompt:
cat prompt.txt | codex exec -
分析 Git diff:
git diff | codex exec "请审查这个 diff,重点关注 bug、安全问题和测试覆盖"
JSONL 输出:
codex exec --json "请检查项目中的 TODO"
把最终回答写入文件:
codex exec -o result.md "请生成项目说明文档"
结合 JSON 和最终输出文件:
codex exec --json -o summary.md "请审查当前代码变更"
4. 恢复会话
恢复交互式会话:
codex resume
恢复当前目录最近会话:
codex resume --last
恢复所有目录中最近会话:
codex resume --last --all
恢复指定会话:
codex resume <SESSION_ID>
恢复非交互会话:
codex exec resume --last
恢复非交互会话并追加指令:
codex exec resume --last "继续完成剩余检查"
5. Codex Cloud
打开云任务选择器:
codex cloud
提交云任务:
codex cloud exec --env <ENV_ID> "请修复登录失败问题并补充测试"
列出云任务:
codex cloud list
JSON 输出:
codex cloud list --json
限制返回数量:
codex cloud list --limit 10
应用云任务 diff 到本地:
codex apply <TASK_ID>
适合场景:
- 任务较长
- 需要云端环境执行
- 想让多个任务并行
- 希望本地继续做其他工作
6. MCP 命令
查看 MCP server:
codex mcp list
JSON 输出:
codex mcp list --json
添加 stdio MCP server:
codex mcp add my-server -- node /path/to/server.js
添加环境变量:
codex mcp add my-server --env API_KEY=xxx -- node /path/to/server.js
添加 HTTP MCP server:
codex mcp add docs --url https://example.com/mcp
查看配置:
codex mcp get my-server
删除配置:
codex mcp remove my-server
登录支持 OAuth 的 MCP server:
codex mcp login my-server
退出 MCP server 登录:
codex mcp logout my-server
7. Shell 自动补全
Codex CLI 支持生成 shell completion。
Zsh:
mkdir -p ~/.zsh/completions
codex completion zsh > ~/.zsh/completions/_codex
在 ~/.zshrc 中加入:
fpath=(~/.zsh/completions $fpath)
autoload -Uz compinit
compinit
重新加载:
source ~/.zshrc
Bash:
codex completion bash > ~/.codex-completion.bash
echo 'source ~/.codex-completion.bash' >> ~/.bashrc
source ~/.bashrc
Fish:
codex completion fish > ~/.config/fish/completions/codex.fish
PowerShell:
codex completion power-shell
8. 其他命令
| 命令 | 作用 |
|---|---|
codex login |
登录 |
codex logout |
移除本地凭证 |
codex update |
检查并应用 CLI 更新 |
codex completion |
生成 shell 补全脚本 |
codex features list |
查看 feature flags |
codex features enable <feature> |
启用 feature |
codex features disable <feature> |
禁用 feature |
codex debug models |
打印模型目录 |
codex sandbox |
在 Codex 沙箱中运行命令 |
codex execpolicy check |
检查 execpolicy 规则 |
codex mcp-server |
将 Codex 作为 MCP server 运行 |
六、交互模式 Slash Commands
进入 codex 交互模式后,可以输入:
/
打开命令面板。
常用命令:
| Slash Command | 作用 |
|---|---|
/init |
生成 AGENTS.md 脚手架 |
/model |
切换模型 |
/fast |
开关 Fast 模式 |
/personality |
调整沟通风格 |
/permissions |
调整审批和权限 |
/plan |
进入计划模式 |
/goal |
设置、暂停、恢复或清除长期目标 |
/status |
查看当前模型、权限、上下文、token 等状态 |
/diff |
查看当前 Git diff |
/review |
审查当前工作区变更 |
/clear |
清空终端并开始新对话 |
/new |
在同一 CLI 会话中开始新对话 |
/resume |
恢复历史会话 |
/compact |
压缩上下文 |
/copy |
复制最近一次完成的 Codex 输出 |
/raw |
切换原始滚动输出模式 |
/skills |
浏览和使用 Skills |
/plugins |
浏览和管理插件 |
/mcp |
查看 MCP 工具 |
/hooks |
查看生命周期 hooks |
/memories |
配置 memory 使用和生成 |
/ide |
拉取 IDE 当前打开文件和选区上下文 |
/agent |
切换 subagent 线程 |
/side |
开启临时侧边对话 |
/fork |
从当前会话 fork 出新线程 |
/ps |
查看实验性后台终端 |
/stop |
停止后台终端 |
/theme |
设置代码高亮主题 |
/vim |
切换 Vim 输入模式 |
/keymap |
修改快捷键 |
/debug-config |
打印配置层和策略诊断 |
/exit 或 /quit |
退出 CLI |
推荐常用组合:
/init
/status
/model
/permissions
/plan
/diff
/review
/skills
/compact
七、AGENTS.md:给 Codex 的项目说明书
AGENTS.md 是 Codex 的持久项目说明文件。
它适合放:
- 项目简介
- 技术栈
- 构建命令
- 启动命令
- 测试命令
- 代码风格
- 提交规范
- 安全要求
- 不允许修改的目录
- 特定模块注意事项
生成脚手架:
/init
或者手动创建:
touch AGENTS.md
示例:
# AGENTS.md
## Project Overview
This is a Go backend project using Gin, Redis, and MySQL.
## Common Commands
- Run all tests: `go test ./...`
- Run one package: `go test ./internal/service/...`
- Start server: `go run ./cmd/server`
- Format code: `gofmt -w .`
## Coding Rules
- Prefer table-driven tests for Go unit tests.
- Keep changes minimal and focused.
- Do not introduce new large dependencies without confirmation.
- Preserve existing public API behavior unless explicitly requested.
## Security Notes
- Do not print passwords, tokens, secrets, or credentials in logs.
- Validate uploaded file size, extension, content type, and storage path.
- Avoid path traversal and command injection.
- Be careful with Redis, TLS, authentication, and session timeout changes.
## Before Finishing
- Run relevant tests if possible.
- Summarize files changed.
- Mention tests run and tests not run.
八、AGENTS.md 的加载顺序
Codex 会在开始工作前读取 AGENTS.md。
常见范围:
| 范围 | 路径 | 用途 |
|---|---|---|
| 全局 | ~/.codex/AGENTS.md |
个人默认偏好 |
| 全局覆盖 | ~/.codex/AGENTS.override.md |
临时覆盖全局规则 |
| 仓库根目录 | AGENTS.md |
当前仓库共享规则 |
| 子目录 | services/payments/AGENTS.md |
子模块规则 |
| 子目录覆盖 | AGENTS.override.md |
当前目录更高优先级规则 |
建议:
- 全局文件放个人习惯
- 仓库根目录放团队规则
- 子目录放模块规则
- 不要写密码、Token、生产凭证
- 内容要短而准确,不要堆砌空泛规则
九、config.toml 配置
Codex 用户级配置文件:
~/.codex/config.toml
项目级配置:
.codex/config.toml
项目级配置只在受信任项目中加载。
配置优先级从高到低大致是:
CLI flags / -c 覆盖
profile
项目 .codex/config.toml
用户 ~/.codex/config.toml
系统 /etc/codex/config.toml
内置默认值
1. 推荐个人配置示例
创建:
mkdir -p ~/.codex
vim ~/.codex/config.toml
示例:
model = "gpt-5.5"
approval_policy = "on-request"
sandbox_mode = "workspace-write"
model_reasoning_effort = "high"
personality = "friendly"
web_search = "cached"
[features]
shell_snapshot = true
multi_agent = true
personality = true
hooks = true
2. 项目配置示例
创建:
mkdir -p .codex
vim .codex/config.toml
示例:
approval_policy = "on-request"
sandbox_mode = "workspace-write"
[features]
shell_snapshot = true
注意:
- 不要把 API Key 写入项目配置
- 一些机器本地配置,例如
openai_base_url、model_provider、model_providers等,不应放项目级配置 - 项目级配置适合放团队共享的低风险设置
3. 临时覆盖配置
临时改模型:
codex -c model='"gpt-5.4"'
临时提高推理强度:
codex -c model_reasoning_effort='"high"'
临时指定日志目录:
codex -c log_dir='"./.codex-log"'
十、审批与沙箱怎么理解?
Codex 的安全控制主要有两层:
Sandbox:技术边界,限制文件、网络、命令能做什么
Approval:审批策略,决定什么时候需要你确认
1. Sandbox 模式
| 模式 | 含义 |
|---|---|
read-only |
只读,适合理解项目和审查 |
workspace-write |
可写当前工作区,适合日常开发 |
danger-full-access |
基本放开限制,风险高 |
推荐:
codex -s workspace-write
2. Approval 策略
| 策略 | 含义 |
|---|---|
untrusted |
更保守,适合陌生项目 |
on-request |
按需询问,适合日常 |
never |
不主动询问,适合自动化但风险更高 |
推荐:
codex -a on-request
3. 日常推荐组合
codex -s workspace-write -a on-request
只读分析:
codex -s read-only -a on-request
非交互脚本:
codex exec -s workspace-write -a never "请执行代码检查并输出总结"
危险实验环境:
codex --yolo
只建议在隔离环境中使用。
十一、Skills:可复用能力包
Skills 可以把重复工作流沉淀为可复用能力。
一个 Skill 是一个目录,至少包含:
SKILL.md
常见结构:
my-skill/
├── SKILL.md
├── references/
├── scripts/
└── assets/
SKILL.md 必须包含:
---
name: skill-name
description: Explain exactly when this skill should and should not trigger.
---
Skill instructions for Codex to follow.
1. Skill 存放位置
| 范围 | 路径 |
|---|---|
| 当前目录 | $CWD/.agents/skills |
| 仓库上级目录 | $CWD/../.agents/skills |
| 仓库根目录 | $REPO_ROOT/.agents/skills |
| 用户级 | $HOME/.agents/skills |
| 管理员级 | /etc/codex/skills |
注意:Codex 的 Skills 目录是:
.agents/skills
不是:
.codex/skills
2. 创建 Go 单元测试 Skill
创建目录:
mkdir -p ~/.agents/skills/go-test-writer
创建文件:
vim ~/.agents/skills/go-test-writer/SKILL.md
内容:
---
name: go-test-writer
description: Generate or improve Go unit tests using table-driven tests. Use when the user asks for Go UT, unit tests, test coverage, or test cases.
---
# Go Test Writer
When writing Go unit tests:
1. Read the target function and related dependencies.
2. Identify inputs, outputs, errors, and side effects.
3. Prefer table-driven tests.
4. Avoid monkey patching unless explicitly requested.
5. Prefer dependency injection through interfaces.
6. Cover normal, error, nil, empty, and boundary cases.
7. Use `t.Run` for each case.
8. Run the most relevant `go test` command if possible.
Before editing:
- List the test scenarios.
- Identify hard-to-test dependencies.
After editing:
- Summarize added test cases.
- Mention whether tests were run.
- If tests fail, explain the failure.
使用:
/skills
或者直接在 prompt 中提到:
请使用 $go-test-writer 给这个文件补充单元测试。
3. 使用内置 skill creator
Codex 内置了 skill creator,可以这样使用:
请使用 $skill-creator 创建一个用于生成 Hugo 博客文章的 skill。
或者:
请使用 $skill-creator 创建一个 security-log-review skill,用于检查日志中是否包含敏感信息。
十二、MCP:接入外部工具
MCP,即 Model Context Protocol,可以让 Codex 使用外部工具和上下文。
适合接入:
- GitHub
- 文件系统
- 数据库
- Jira / Linear
- 文档系统
- 内部 API
- 浏览器自动化工具
- 自定义脚本
添加 stdio server:
codex mcp add my-tool -- node /path/to/server.js
添加 HTTP server:
codex mcp add docs --url https://example.com/mcp
查看列表:
codex mcp list
查看详情:
codex mcp get docs
删除:
codex mcp remove docs
在会话中查看:
/mcp
建议:
- 先只接入只读工具
- 不要让 MCP 工具直接拿生产密钥
- 外部工具的权限越小越好
- 对删除、部署、数据库写入类工具保持审批
十三、Ollama / 本地开源模型
Codex CLI 支持使用本地开源模型 provider。
前提是本机 Ollama 已运行:
ollama serve
运行 Codex:
codex --oss
也可以在非交互模式使用:
codex exec --oss "请解释这个项目结构"
如果想指定模型,需要结合本地 provider 配置和模型名称。日常更建议先确认 Ollama 模型可运行:
ollama list
ollama run qwen3
然后再使用:
codex --oss
注意:
- 本地模型能力和官方 Codex 模型可能不同
- 工具调用、长上下文、代码修改效果取决于模型能力
- 本地模型更适合学习、实验和隐私敏感场景
- 复杂项目开发仍建议使用官方 Codex 模型
十四、自定义模型 Provider
Codex 支持通过 ~/.codex/config.toml 配置模型 provider。
常见字段包括:
model_provider = "custom"
[model_providers.custom]
name = "Custom Provider"
base_url = "https://example.com/v1"
env_key = "CUSTOM_API_KEY"
wire_api = "responses"
然后设置环境变量:
export CUSTOM_API_KEY="your-api-key"
注意:
- Codex 的自定义 provider 需要兼容它使用的 API 协议
wire_api当前以responses为主- 不要把 API Key 直接写进
config.toml - 机密信息用环境变量或密钥管理系统
- 如果第三方服务只兼容 Chat Completions,不一定能直接用于 Codex
对于普通使用者,优先使用:
ChatGPT 登录
OpenAI API Key 登录
Ollama --oss
自定义 provider 适合更熟悉模型网关和 API 协议的用户。
十五、Git 工作流建议
修改前:
git status
git checkout -b codex/your-task
让 Codex 先分析:
请先分析这个需求,不要修改代码。请给出修改计划、影响范围和测试点。
确认后再执行:
按计划修改,保持改动范围尽量小。
修改后:
/diff
/review
运行测试:
请运行相关测试,并解释结果。
自己确认后提交:
git add .
git commit -m "your commit message"
不建议一开始就允许 Codex 自动执行:
git push
十六、常见开发场景 Prompt
1. 理解项目
请先不要修改代码。请阅读项目结构,说明技术栈、启动入口、核心模块、测试命令和主要风险点。
2. 修复 bug
请分析这个 bug 的根因和影响范围,先给出修改计划,不要直接改代码。
3. 写 Go UT
请为这个 Go 文件补充 table-driven tests,不要使用 monkey patch。修改前先列出测试场景。
4. 审查 diff
请审查当前 git diff,重点关注空指针、并发安全、错误处理、日志敏感信息和测试覆盖。
5. 生成 commit message
请根据当前 git diff 生成一条简洁清晰的 commit message。
6. 生成文档
请根据当前项目生成一份 README 草稿,包括项目简介、启动方式、配置项、测试命令和部署注意事项。
十七、常见问题
1. codex: command not found
检查:
which codex
codex --version
echo $PATH
npm 安装检查:
npm list -g @openai/codex
Homebrew 检查:
brew info codex
brew list | grep codex
2. 登录失败
尝试:
codex logout
codex login
检查网络、代理、公司网络策略。
如果使用 API Key,确认 Key 是否有效、额度是否正常。
3. Codex 改动太大
可以要求:
只做最小必要修改,不要顺手重构无关代码。
或者:
本次只允许修改以下文件:
- xxx.go
- xxx_test.go
4. 如何让 Codex 只读分析?
codex -s read-only
然后提问:
请只读分析这个问题,不要修改代码,不要运行写入类命令。
5. 如何处理上下文太长?
使用:
/compact
或者开新会话:
/new
也可以在 shell 中恢复最近会话:
codex resume --last
6. 如何查看当前配置?
在交互模式中:
/status
/debug-config
查看配置文件:
cat ~/.codex/config.toml
7. Skills 不生效
检查:
- 是否放在
.agents/skills或~/.agents/skills - 是否有
SKILL.md SKILL.md是否包含name和description- 是否重启了 Codex
- 是否在
/skills中能看到 description是否写得太模糊
8. 不想让 Codex 自动使用某个 Skill
可以在 ~/.codex/config.toml 中禁用:
[[skills.config]]
path = "/path/to/skill/SKILL.md"
enabled = false
修改后重启 Codex。
十八、推荐日常工作流
1. 第一次进入项目
cd /path/to/project
codex
在交互模式:
/init
请阅读项目结构,帮我完善 AGENTS.md,包含启动、测试、代码风格、安全注意事项。
2. 开发任务
git checkout -b codex/task-name
codex -s workspace-write -a on-request
在交互模式:
请先给出修改计划,不要直接改代码。
确认后:
按计划修改,并运行相关测试。
3. 提交前
/diff
/review
请根据当前 diff 生成 commit message。
自己检查:
git diff
git status
提交:
git add .
git commit -m "your message"
十九、推荐配置与个人偏好
1. 全局 AGENTS.md
mkdir -p ~/.codex
vim ~/.codex/AGENTS.md
示例:
# Personal Codex Preferences
- Use Chinese for explanations unless I ask for English.
- Before large edits, propose a plan first.
- Keep changes minimal and focused.
- For Go unit tests, prefer table-driven tests.
- Avoid monkey patching unless explicitly requested.
- After changes, run relevant tests when possible.
- Pay attention to security issues, especially sensitive logs, file upload validation, path traversal, command injection, and hardcoded credentials.
2. 全局 config.toml
vim ~/.codex/config.toml
示例:
model = "gpt-5.5"
approval_policy = "on-request"
sandbox_mode = "workspace-write"
model_reasoning_effort = "high"
personality = "friendly"
web_search = "cached"
[features]
shell_snapshot = true
multi_agent = true
hooks = true
personality = true
二十、命令总表
安装与登录
npm install -g @openai/codex
npm install -g @openai/codex@latest
brew install codex
brew upgrade codex
codex login
codex logout
codex --version
交互使用
codex
codex "解释这个项目"
codex -C /path/to/project
codex -m gpt-5.4
codex -s workspace-write -a on-request
codex --add-dir ../shared
codex -i screenshot.png "根据截图修改页面"
非交互使用
codex exec "总结项目结构"
codex e "总结项目结构"
cat prompt.txt | codex exec -
git diff | codex exec "审查 diff"
codex exec --json "检查当前项目"
codex exec -o result.md "生成文档"
codex exec resume --last
会话与云任务
codex resume
codex resume --last
codex cloud
codex cloud exec --env <ENV_ID> "执行任务"
codex cloud list
codex cloud list --json
codex apply <TASK_ID>
MCP
codex mcp list
codex mcp list --json
codex mcp add my-server -- node server.js
codex mcp add docs --url https://example.com/mcp
codex mcp get my-server
codex mcp remove my-server
codex mcp login my-server
codex mcp logout my-server
Skills
mkdir -p ~/.agents/skills/my-skill
vim ~/.agents/skills/my-skill/SKILL.md
交互模式:
/skills
$skill-creator
$skill-installer linear
自动补全
codex completion zsh > ~/.zsh/completions/_codex
codex completion bash > ~/.codex-completion.bash
codex completion fish > ~/.config/fish/completions/codex.fish
二十一、个人建议
我建议你把 Codex CLI 按三个层次来使用:
第一层:日常开发
codex、/plan、/diff、/review、AGENTS.md
第二层:效率提升
codex exec、codex resume、Skills、shell completion
第三层:扩展集成
MCP、Plugins、Codex Cloud、Ollama --oss、自定义 provider
最值得长期沉淀的是:
AGENTS.md + Skills + Git 工作流
其中:
AGENTS.md管项目长期规则Skills管重复流程config.toml管本机默认行为MCP管外部工具能力codex exec管自动化任务
最常用的一组命令:
codex
codex "解释这个项目"
codex -s workspace-write -a on-request
codex exec "请审查当前 git diff"
codex resume --last
codex completion zsh
交互中最常用:
/init
/status
/model
/permissions
/plan
/diff
/review
/skills
/compact
参考资料
- Codex CLI:https://developers.openai.com/codex/cli
- Codex Quickstart:https://developers.openai.com/codex/quickstart
- Codex CLI Reference:https://developers.openai.com/codex/cli/reference
- Codex CLI Features:https://developers.openai.com/codex/cli/features
- Codex Slash Commands:https://developers.openai.com/codex/cli/slash-commands
- Codex Config Basics:https://developers.openai.com/codex/config-basic
- Codex Config Reference:https://developers.openai.com/codex/config-reference
- AGENTS.md Guide:https://developers.openai.com/codex/guides/agents-md
- Codex Skills:https://developers.openai.com/codex/skills
- Codex Sandbox:https://developers.openai.com/codex/concepts/sandboxing
- Agent approvals & security:https://developers.openai.com/codex/agent-approvals-security