微信扫码
添加专属顾问
我要投稿
OpenAI Codex CLI 完整使用指南,助你高效开发,告别繁琐配置!核心内容: 1. Codex CLI 的核心功能与适用场景 2. 详细的环境配置与认证步骤 3. 常见环境变量与项目级配置说明
本文档基于 Codex CLI 截至 2026 年 3 月的最新文档整理,适用于 macOS / Linux(Windows 为实验性支持)。鉴于 ClaudeCode 大面积封号导致我吸不到纯正的 Opus 4.6,不得不使用代餐,尽管 GPT 5.4 也很强大,但就是没 Opus 那味儿,可能我还是爱 Opus 更多一点。
Codex CLI 是 OpenAI 推出的本地终端编程 Agent,使用 Rust 编写,具备高性能与低资源占用的特点。它可以:
适用平台:macOS、Linux(Windows 为实验性支持,推荐使用 WSL)
订阅要求:需要 ChatGPT Plus、Pro、Business、Edu 或 Enterprise 计划,或直接使用 OpenAI API Key。
推荐使用 npm 全局安装:
npm install -g @openai/codex
或使用 Homebrew(macOS):
brew install --cask codex
也可以从 GitHub Releases[1] 下载预编译二进制文件,解压后重命名为 codex 并添加到 PATH。
npm update -g @openai/codex
安装后运行 codex,首次启动会提示登录:
codex
支持两种认证方式:
sk-... 格式的密钥也可以提前完成认证:
codex auth
退出登录:
codex auth logout
安装补全脚本以获得命令行 Tab 补全:
codex completion bash # Bash
codex completion zsh # Zsh
codex completion fish # Fish
将输出追加到对应 Shell 的配置文件中(如 ~/.zshrc)。
Codex 的全局配置存放在:
~/.codex/
├── config.toml # 主配置文件
├── sessions/ # 历史会话记录
└── log/ # 日志文件(如 codex-tui.log)
项目级配置存放在仓库根目录下:
<project>/
├── .codex/
│ └── config.toml # 项目级配置(仅受信任项目生效)
└── AGENTS.md # Agent 行为指令文件
OPENAI_API_KEY |
|
OPENAI_BASE_URL |
|
OPENAI_ORGANIZATION |
|
OPENAI_PROJECT |
|
AZURE_OPENAI_API_KEY |
|
CODEX_HOME |
~/.codex 配置目录路径,适合多账号/项目隔离 |
CODEX_SQLITE_HOME |
|
CODEX_OSS_BASE_URL |
|
CODEX_OSS_PORT |
|
VISUALEDITOR |
Ctrl+G 时使用的外部编辑器(如 vim、nano、code --wait) |
使用示例:
# 使用 API Key 启动
OPENAI_API_KEY=sk-xxx codex
# 使用项目隔离配置
CODEX_HOME=$(pwd)/.codex codex exec "列出当前指令源"
# 指向自定义 API 端点(如内部代理)
OPENAI_BASE_URL=https://proxy.example.com codex
安全提示:不要将 API Key 硬编码在脚本中,优先使用环境变量管理器(如
direnv、1Password CLI)注入密钥。
codex [OPTIONS] [PROMPT]
常用选项:
"<prompt>" |
|
-m, --model <model> |
gpt-5.4、gpt-5.4-mini) |
--sandbox <mode> |
read-only、workspace-write、danger-full-access |
--ask-for-approval <policy> |
on-request、never、untrusted |
--yolo |
|
--search |
|
-p, --profile <name> |
|
--image <path> |
|
--path <dir> |
|
--oss |
|
--no-alternate-screen |
|
-c <key=value> |
示例:
# 直接启动 TUI
codex
# 带初始 Prompt 启动
codex "解释一下这个项目的目录结构"
# 指定模型和工作目录启动
codex -m gpt-5.4-mini --path ~/projects/myapp "帮我写单元测试"
# 附带截图启动
codex --image screenshot.png "根据截图修复这个 UI 问题"
codex exec [OPTIONS] "<prompt>"
# 简写:
codex e "<prompt>"
常用选项:
--cd <dir> |
|
--json |
|
--yolo |
|
--auto |
|
-m, --model <model> |
|
-p, --profile <name> |
|
--sandbox <mode> |
|
--no-session-persist |
|
--image <path> |
|
--output-last-message <file> |
|
--response-schema <file> |
|
--allow-no-git |
示例:
# 简单一次性任务
codex exec "给所有 Python 文件加上类型注解"
# CI 环境中使用(JSON 输出 + 无沙箱)
codex exec --json --yolo "运行测试并输出失败原因"
# 指定目录 + 保存结果
codex exec --cd ~/project --output-last-message result.txt "生成 README"
# 使用管道传入 Prompt
echo "分析这个日志文件" | codex exec -
# 交互式选择历史会话
codex resume
# 恢复最近一次会话(当前目录)
codex resume --last
# 恢复任意目录的最近会话
codex resume --last --all
# 恢复指定 ID 的会话
codex resume <session-id>
# 恢复并附加新 Prompt(非交互)
codex exec resume --last "继续实现上次的计划"
# 打开会话选择器后创建分支
codex fork
# 从最近的会话创建分支
codex fork --last
分支会话保留原始对话的完整记录,在新线程中独立推进,适合探索不同实现方向。
# 查看所有 MCP 命令
codex mcp --help
# 添加 MCP 服务器(stdio 类型)
codex mcp add context7 -- npx -y @upstash/context7-mcp
# 添加带环境变量的 MCP 服务器
codex mcp add myserver --env TOKEN=xxx -- npx -y my-mcp-package
# 列出已配置的 MCP 服务器
codex mcp list
# 删除 MCP 服务器
codex mcp remove context7
# 对 MCP 服务器进行 OAuth 认证
codex mcp auth <server-name>
# 查看所有功能标志及其状态
codex features list
# 开启功能(持久化写入 config.toml)
codex features enable unified_exec
# 关闭功能
codex features disable shell_snapshot
# 认证管理
codex auth # 登录
codex auth logout # 退出登录
# 将 Codex 作为 MCP Server 运行(供其他 Agent 调用)
codex mcp-server
# 在 Codex 沙箱中运行任意命令(调试用)
codex sandbox -- <command>
# 检查执行策略规则
codex execpolicy check -- <command>
# 打开桌面 App(macOS)
codex app [<workspace-path>]
# 应用 Codex Cloud 任务生成的 diff 到本地
codex apply # 简写:codex a
在 TUI 的输入框中输入 / 可调出命令列表,继续输入字母过滤。
/clear |
|
/new |
|
/resume |
|
/fork |
|
/exit/quit |
|
/compact |
/model |
|
/permissions |
|
/fast |
|
/status |
|
/statusline |
|
/theme |
|
/experimental |
/review |
|
/copy |
|
/init |
/agent |
|
/terminals |
在 ~/.codex/ 或项目 .codex/ 目录下创建文件即可定义自定义命令:
# 自定义命令文件路径示例
~/.codex/slash-commands/pr-review.md
文件内容为提示词模板,在 TUI 中输入 /pr-review 即可调用。
Ctrl+L |
|
Ctrl+C |
|
Ctrl+G |
$VISUAL / $EDITOR)编写长 Prompt |
↑↓ |
|
Enter |
|
Tab |
|
@ |
|
!<command> |
!ls) |
# 1. 进入项目目录
cd ~/projects/myapp
# 2. 启动 Codex(带初始 Prompt)
codex "在 src/auth 模块下实现 JWT 刷新 Token 逻辑,参考 @src/auth/login.ts 的写法"
# 3. TUI 内查看计划,确认后审批执行
# 4. 查看 diff,如有问题注入修正指令
# 5. 完成后提交
codex
# TUI 内输入:
/review
# 选择"Review uncommitted changes"
# Codex 会报告安全、逻辑、测试等方面的风险
# .github/workflows/codex.yml 示例
- name: Run Codex
run: |
codex exec --yolo --json \
"运行测试套件,修复所有失败用例,不要修改测试文件本身"
codex "将以下三个任务并行处理:
1. 重构 src/utils 下的所有文件,统一错误处理方式
2. 为 src/api 下所有路由补充 OpenAPI 注释
3. 更新 README 中的安装步骤"
# Codex 会自动 spawn 子 Agent 并行执行
# 恢复最近会话并补充新指令
codex exec resume --last "继续昨天的重构任务,重点完成 payment 模块"
# 将错误日志传入 Codex 分析
cat error.log | codex exec - --output-last-message analysis.txt
# 批量处理(JSON 输出)
codex exec --json "生成迁移脚本" | jq '.content'
Codex 支持将截图、设计稿等图片作为输入:
# 命令行附带图片
codex --image mockup.png "根据这个设计稿实现登录页面"
# 多张图片(逗号分隔)
codex --image before.png,after.png "对比这两张截图,找出差异"
TUI 中也可以直接粘贴图片(部分终端支持)。
# 启用实时网页搜索
codex --search "查找 React 19 的 breaking changes 并更新依赖"
# 通过配置永久设置
# 在 config.toml 中:
# web_search = "live"
TUI 内使用 /review,支持四种模式:
# 查看会话 ID(在 /status 或 ~/.codex/sessions/ 中)
ls ~/.codex/sessions/
# 恢复特定会话
codex resume <session-id>
# 分支探索不同方案
codex fork --last
在 Prompt 中明确要求并行时,Codex 会 spawn 多个子 Agent:
"请并行完成以下任务:[任务1]、[任务2]、[任务3]"
注意:每个子 Agent 独立消耗 Token 配额。
# 启动 Ollama 后
codex --oss "用 qwen2.5-coder 分析这个函数"
# 在 config.toml 中配置
# model_provider = "oss"
配置文件路径:~/.codex/config.toml(全局)或 <project>/.codex/config.toml(项目级)。
配置优先级(从高到低):命令行 -c 选项 → 项目配置(当前目录到项目根) → 用户配置 → 系统配置 → 内置默认值。
# ============================================================
# 核心模型配置
# ============================================================
model = "gpt-5.4"
# model = "gpt-5.4-mini" # 更快、更经济的选项
# ============================================================
# 审批与沙箱策略
# ============================================================
approval_policy = "on-request"
# "untrusted" - 所有操作都需要审批(最安全)
# "on-request" - 只在需要时审批(推荐交互使用)
# "never" - 全自动(推荐 CI 使用)
sandbox_mode = "workspace-write"
# "read-only" - 只读,不执行写操作
# "workspace-write" - 可写当前工作区(推荐)
# "danger-full-access" - 完全访问(谨慎使用)
# ============================================================
# 网页搜索
# ============================================================
web_search = "cached"
# "cached" - 使用 OpenAI 缓存索引(默认,更安全)
# "live" - 实时联网搜索
# "disabled" - 关闭搜索
# ============================================================
# 推理配置
# ============================================================
model_reasoning_effort = "high"
# "minimal" | "low" | "medium" | "high"
# ============================================================
# TUI 配置
# ============================================================
[tui]
# alternate_screen = true # 全屏模式(默认开启)
# status_line = ["model", "context_stats", "git_branch"]
# ============================================================
# Shell 环境策略
# ============================================================
[shell_environment_policy]
inherit = "core" # "none" | "core" | "all"
exclude = ["AWS_*", "AZURE_*"] # 不传递给子进程的变量
# include_only = ["PATH", "HOME", "MY_VAR"]
# ============================================================
# 模型 Provider(自定义/代理)
# ============================================================
# model_provider = "proxy"
# [model_providers.proxy]
# name = "Internal LLM Proxy"
# base_url = "http://proxy.example.com"
# env_key = "OPENAI_API_KEY"
# Azure 示例
# [model_providers.azure]
# name = "Azure OpenAI"
# base_url = "https://YOUR_PROJECT.openai.azure.com/openai"
# env_key = "AZURE_OPENAI_API_KEY"
# query_params = { api-version = "2025-04-01-preview" }
# wire_api = "responses"
# Ollama 本地模型示例
# [model_providers.ollama]
# name = "Ollama"
# base_url = "http://localhost:11434/v1"
# env_key = ""
# wire_api = "chat"
Profile 允许在不同场景间快速切换配置:
# 在 config.toml 中定义
[profiles.ci]
approval_policy = "never"
sandbox_mode = "danger-full-access"
model = "gpt-5.4-mini"
[profiles.safe]
approval_policy = "untrusted"
sandbox_mode = "read-only"
使用方式:
codex --profile ci "运行所有测试"
codex exec --profile safe "分析代码结构"
# Agent 完成一个回合时触发外部程序
[notify]
command = ["notify-send", "Codex", "任务完成"]
AGENTS.md 是 Codex 的"项目行为说明书",在每次会话启动时自动载入。
~/.codex/AGENTS.md # 全局个人默认配置
<repo>/AGENTS.md # 仓库级共享规范
<repo>/src/AGENTS.md # 子目录级规则(优先级更高)
<repo>/AGENTS.override.md # 最高优先级,用于临时覆盖
# 在项目根目录运行
/init # TUI 内斜杠命令
# AGENTS.md 示例
## 项目概述
这是一个 Next.js 14 全栈应用,使用 TypeScript 和 Prisma ORM。
## 技术栈
- 框架:Next.js 14 (App Router)
- 数据库:PostgreSQL + Prisma
- 测试:Vitest + Testing Library
- 样式:Tailwind CSS
## 代码规范
- 所有新文件必须使用 TypeScript,禁止 `any` 类型
- 组件使用函数式写法,不使用 class 组件
- 每个新功能必须配套单元测试
## 测试规范
- 修改业务逻辑后必须运行 `pnpm test`
- 不要修改 `__tests__` 目录下已有的测试用例
## 禁止操作
- 不要直接修改 `prisma/migrations/` 目录
- 不要删除 `.env.example` 中的任何字段
- 不要在没有测试覆盖的情况下修改 `src/lib/auth.ts`
## 提交规范
使用 Conventional Commits 格式:feat、fix、docs、refactor、test
# config.toml
project_doc_fallback_filenames = ["TEAM_GUIDE.md", ".agents.md"]
project_doc_max_bytes = 65536 # 最大加载字节数
# 添加 Context7(开发文档 MCP)
codex mcp add context7 -- npx -y @upstash/context7-mcp
# 添加带认证的服务
codex mcp add myservice --env API_TOKEN=xxx -- npx -y my-mcp-server
# config.toml
# stdio 类型 MCP 服务器
[mcp_servers.context7]
command = "npx"
args = ["-y", "@upstash/context7-mcp"]
# HTTP 类型 MCP 服务器
[mcp_servers.remote-api]
url = "https://mcp.example.com/sse"
bearer_token_env_var = "REMOTE_API_TOKEN"
startup_timeout_sec = 15
tool_timeout_sec = 60
# enabled = false # 临时禁用
# 以 MCP Server 方式运行 Codex(供其他 Agent 调用)
codex mcp-server
read-only |
|||
workspace-write |
|||
danger-full-access |
untrusted |
||
on-request |
||
never |
# --auto 等同于 workspace-write + on-request
codex --auto "重构 utils 模块"
即使在 workspace-write 模式下,.git/ 和 .codex/ 目录默认保持只读。如需 Codex 执行 git commit 等操作,需在审批后确认。
codex exec "执行任务描述"
# 简写
codex e "执行任务描述"
codex exec --json "分析项目结构" | jq '.type == "text"'
输出为换行符分隔的 JSON 事件,每行一个状态变化事件。
- name: Codex 代码检查
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
run: |
codex exec \
--yolo \
--cd ${{ github.workspace }} \
"检查代码中是否有安全漏洞,输出详细报告"
# 使用 JSON Schema 验证输出
codex exec \
--response-schema schema.json \
"分析依赖并返回结构化数据"
一个高质量的 Codex Prompt 包含以下四个要素:
"在 @src/api/users.ts 中实现用户分页查询接口,
参考 @src/api/products.ts 的写法,
添加对应的 Zod 校验 schema,
完成后运行 `pnpm test -- users` 确认测试通过"
在 TUI 输入框中输入 @ 触发工作区文件模糊搜索:
"参考 @src/utils/logger.ts,为所有 API 路由添加统一日志"
按 Ctrl+G 打开 $VISUAL/$EDITOR 编辑器,写完保存后自动发送:
# 配置 VS Code 为编辑器
export VISUAL="code --wait"
在重大任务前后创建 Git commit,方便回滚:
git add -A && git commit -m "checkpoint: before Codex refactor"
codex "重构整个 auth 模块"
# 如果不满意:git reset --hard HEAD~1
长对话中使用 /compact 命令压缩上下文,释放 Token 空间,避免超出上下文窗口:
/compact
Codex 也会在必要时自动压缩。
每次发现 Codex 反复犯同类错误(如忘记某个约定),将规则写入 AGENTS.md,形成团队共享的"AI 使用手册"。
gpt-5.4 |
|
gpt-5.4-mini |
|
gpt-5.3-codex-spark |
# TUI 内切换
/model
# 启动时指定
codex -m gpt-5.4-mini "快速修复这个 typo"
为不同场景(开发、CI、安全分析)定义不同 Profile:
codex --profile dev "正常开发任务"
codex --profile ci exec "自动化任务"
codex --profile safe "审查陌生代码"
在 TUI 输入框中直接运行 Shell 命令,输出作为 Codex 的上下文:
!git status
!pnpm test 2>&1 | tail -20
将常用的 Prompt 模板封装为 Slash Command,供团队复用:
# 文件:~/.codex/slash-commands/security-audit.md
# 内容:
对当前工作区进行安全审计,重点检查:
1. SQL 注入风险
2. XSS 漏洞
3. 不安全的依赖版本
4. 硬编码的 secrets
输出格式:按严重程度分级,每项给出具体文件和修复建议
--yolo / danger-full-access,除非运行在完全隔离的容器中cached).codex/config.toml 仅在"受信任项目"中生效,不要将敏感配置提交到公开仓库shell_environment_policy 中使用 exclude = ["AWS_*", "*SECRET*", "*TOKEN*"] 防止密钥泄露到子进程/compact 压缩上下文gpt-5.4-mini 以节省配额[windows]
sandbox = "elevated"
--allow-no-git 选项project_root_markers = [".git", ".hg", "pyproject.toml"]
Authentication required |
codex auth 重新认证 |
|
Rate limit exceeded |
||
Sandbox blocked |
sandbox_mode 或手动审批 |
|
Session not found |
~/.codex/sessions/ |
|
ollama serve |
||
--no-alternate-screen |
gpt-5.4 |
||
gpt-5.4-mini |
||
gpt-5.3-codex |
||
gpt-5.3-codex-spark |
||
gpt-5.2-codex |
推荐默认:
gpt-5.4(如未在 config.toml 中指定,Codex 会自动选择推荐模型)
# 安装
npm install -g @openai/codex
# 启动
codex # 交互式 TUI
codex "做某件事" # 带初始 Prompt
# 非交互
codex exec "任务" # 执行并退出
codex e "任务" --json # JSON 输出流
# 会话管理
codex resume --last # 恢复最近会话
codex fork --last # 分支最近会话
# MCP 管理
codex mcp add name -- cmd # 添加 MCP 服务器
codex mcp list # 列出服务器
# 功能管理
codex features list # 查看功能标志
codex features enable <flag> # 开启功能
# TUI 内常用斜杠命令
/model /review /clear
/compact /fork /status
/copy /init /exit
文档整理自 OpenAI Codex 官方文档[2] · 最后更新:2026 年 3 月
[1] GitHub Releases: https://github.com/openai/codex/releases[2] OpenAI Codex 官方文档: https://developers.openai.com/codex
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2026-04-07
PRD 已死,原型万岁:Anthropic 产品经理的新活法
2026-04-07
怎么把 EmbedClaw 从 Qwen 扩到五款国产大模型!启明云端乐鑫代理及方案商
2026-04-07
采纳率从3%到80%:智能单元测试生成的进化之路
2026-04-07
12MB的Go二进制,让AI操控浏览器只花800 tokens,PinchTab凭什么这么省?
2026-04-07
刚刚,OpenAI 发了一份 13 页的「超级智能新政」
2026-04-07
Claude Code 和 Codex 接入 Figma MCP 保姆级教程
2026-04-07
Claude Code vs Codex vs Claw Code:三种Harness的实战对比
2026-04-06
Memento-Skills解读:AI自学习“工作手册”,实现性能提升116.2%
2026-01-24
2026-01-10
2026-01-26
2026-01-09
2026-01-09
2026-01-23
2026-01-14
2026-03-13
2026-03-31
2026-01-21
2026-04-07
2026-04-01
2026-03-31
2026-03-31
2026-03-22
2026-03-22
2026-03-21
2026-03-20