前言
Codex CLI 是 OpenAI 推出的本地编程代理工具,你可以在终端中运行它。它能够在你选定的目录里读取代码、修改文件,并在你的机器上执行代码。它是开源的,并使用 Rust 构建,以获得更高的速度和效率。
准备工作
确保您拥有:- 打开的终端或命令提示符
- 一个要处理的代码项目
- 一个支持 OpenAI Responses 协议 的 API 令牌(如何创建令牌)
安装 Codex CLI
在终端运行以下命令全局安装:配置 Codex CLI
通过以下方式创建 codex 配置文件:- macOS/Linux
- Windows
config.toml 中添加以下内容:
模型选择建议(Codex 系列):
gpt-5.2-codex:默认首选,综合能力最强,适合大多数真实工程任务(重构、排障、跨文件改动、多步骤实现)。gpt-5.1-codex:稳定的通用选择(介于 5.2 与 mini 之间),适合日常开发与团队默认配置。gpt-5.1-codex-mini:性价比优先,适合快修、小改、脚手架生成、简单问题定位。gpt-5.1-codex-max:长任务 / 深度任务优先,适合大规模重构、迁移、复杂调试、长时间 agent loop。gpt-5-codex:更“保守/兼容”的选择,适合你需要对齐旧行为、或成本/稳定性有特殊要求的场景。
设置环境变量
将 API Key 设置为环境变量:- macOS/Linux
配置完成后,建议重启终端以确保环境变量生效。
开始使用
进入你的项目目录并启动 Codex CLI:使用技巧
1. 先让它“读懂”再让它“动手”
建议你把一次复杂需求拆成两步:- 理解/探索:让它先概览架构、入口、依赖、关键路径
- 实施/验证:再让它改代码、跑测试、给 diff
2. 随手 /diff + /review:把每一轮改动当成 PR 来审
/diff:随时看工作区改动(包括未被 Git 追踪的文件),避免“改了啥我不知道”。/review:启动一个专门的 reviewer,读取你选择的 diff 变更并给出优先级建议,而且不会动你的 working tree。
3. 用 /permissions 在“谨慎”和“放手”之间随时切换
Codex 的 Approval modes(审批/权限)分为 Auto、Read-only、Full Access,你可以在会话中用 /permissions 动态调整。
4. 长对话记得 /compact
当你做了很多轮对话(尤其是跨文件重构、排障),上下文会越来越大。
/compact 可以把当前可见对话压缩成摘要,减少 token 压力并保留关键结论。
5. 把“仓库长期规则”写进 AGENTS.md
/init 可以在当前目录生成 AGENTS.md 脚手架,用来写“这个仓库的长期偏好/规范/禁区”。
常见写法例如:
- 本项目请始终用中文跟用户交流。
- 默认用哪套测试命令
- 代码风格 / lint / commit 规范
- 不要改动哪些目录/文件
- 输出格式(必须给 diff、必须给迁移步骤等)
基本命令
1. 启动与运行
K_CODEX 环境变量,并且 config.toml 里 env_key = "K_CODEX",base_url = "https://api.poixe.com/v1"。
2. 常用 CLI flags(启动时就能用)
3. 会话恢复(resume)
~/.codex/sessions/),方便你“接着干”。
4. 非交互模式(CI/脚本):codex exec
适合自动化:让它跑检查、输出结果到 stdout 或 JSONL、必要时写入文件。
codex exec 的参数(如 --json、--output-last-message、--output-schema、--yolo 等)在官方文档有细节。
会话内斜杠命令(Slash Commands)
在交互式会话里输入/ 会弹出命令列表并可搜索。
下面是你最常用的一组:
| 命令 | 用途 | 典型用法 |
|---|---|---|
/model | 切模型(有些模型也支持调 reasoning effort) | “切到更强模型再重构” |
/permissions | 切换审批/权限模式 | “先 Read-only 看计划,再 Auto 执行” |
/status | 看当前会话配置、token 使用、可写目录等 | “排查为什么不能写某目录” |
/diff | 查看 Git diff(含未追踪文件) | “每轮改完都看一次” |
/review | 独立 reviewer 做本地代码审查 | “提交前扫一遍风险点” |
/compact | 压缩长对话为摘要 | “对话太长了先压一下” |
/init | 生成 AGENTS.md 脚手架 | “把仓库规则固化下来” |
/mention | 把指定文件/路径附加进对话上下文 | “指定让它看某个目录/文件” |
/resume / /new / /fork | 恢复/新开/分叉会话 | “保留当前思路,同时试另一个方案” |
/logout / /quit | 退出/登出 |
注意事项
1. 权限模式别开太大(尤其是 Full Access)
- Auto(默认):目录内读写执行都比较顺滑,但涉及目录外或网络会再问你
- Read-only:只做顾问,改代码/跑命令前需要你批准
- Full Access:跨机器、含网络,尽量少用,只在你非常信任的仓库/任务下使用
2. Web search 默认是 cached,不代表“实时网页”
Codex 的 web search 默认启用,但会优先走 OpenAI 维护的缓存索引(cached),而不是实时抓取;你也可以通过参数启用 live search。 即便如此,也要把 web 结果当作“不可信输入”,避免提示注入。3. Windows 支持是实验性的
官方说明:Codex CLI 在 macOS / Linux 更成熟,Windows 支持仍属实验;更推荐在 WSL 工作区使用。4. 尽量在 Git 仓库里使用
很多能力(比如/diff、review、变更追踪)都依赖 Git。
如果你在非 Git 目录跑,需要时可以用 --skip-git-repo-check(主要在 codex exec 场景)。
5. Poixe 网关下的“行为差异”
Poixe 是转发层,会在稳定性、风控、计费与工具能力上做一些工程取舍。若你遇到某些能力不可用/表现不同,请优先查阅 Poixe 的 兼容性与差异说明 相关章节。特别注意:Poixe 系统会对 OpenAI Responses 接口传入的
reasoning.encrypted_content 相关参数做过滤处理,避免因加密推理片段不是跨组织/跨 Key 通用的会话凭证而产生报错。详细请参考 Poixe 的 加密推理内容过滤 章节。常见问题
启动后提示需要登录 / 没权限?
启动后提示需要登录 / 没权限?
首次运行会引导登录(ChatGPT OAuth / API key)。如果你用 API key 模式,请确认:
- 已设置
K_CODEX环境变量 config.toml中env_key = "K_CODEX"配置正确
为什么它不能写某个目录或运行某些命令?
为什么它不能写某个目录或运行某些命令?
通常是权限或沙箱策略导致。建议按顺序检查:
- 当前
/permissions是否为 Read-only - 是否需要把目录加入可写范围(
--add-dir或配置可写 roots) - sandbox 策略是否限制(例如
--sandbox read-only会阻止写入/执行)
为什么 `/review` 没有改我的代码?
为什么 `/review` 没有改我的代码?
这是设计如此:
/review 会启动“独立 reviewer”,只读 diff 并输出建议,不会修改 working tree。你需要自行决定是否采纳建议并手动修改,或让 Codex 以普通任务方式执行改动。如何在脚本/CI 里用 Codex?
如何在脚本/CI 里用 Codex?
使用
codex exec。- 需要机器可读输出:加
--json - 需要把最终结果写入文件:用
--output-last-message/-o - 需要续跑:用
codex exec resume ...
我想要“实时网页”结果,而不是 cached?
我想要“实时网页”结果,而不是 cached?
启动时加
--search 可以把 web_search 从默认 cached 切成 live。官方说明:--search 会设置 web_search="live"。