Codex超级详细的保姆级安装和使用
很多小伙伴第一次用 Codex,会把注意力全放在“怎么下载”和“按钮在哪”。软件确实几分钟就能装好,真正影响体验的却是后面几件事:打开哪个目录、给多大权限、怎样描述任务、怎么检查改动,以及什么时候该让它停下来问你。
我把这篇教程设计成了一次完整上手。我们会从空白环境开始,最后让 Codex 接手一个小项目,并把结果交付到可以检查、可以运行、可以撤销的状态。第一次使用的小伙伴可以从头跟着做,已经装好的小伙伴也可以直接跳到“第一次完整交付”。
注意
Codex 更新很快,如果你看到的按钮位置略有不同,先找同名功能,再到文末的官方文档确认最新入口。额度、模型名单、上下文数字这类信息经常变化。
- 安装桌面端或 Codex CLI,并判断自己更适合哪种入口;
- 使用 ChatGPT 账号或 API Key 登录,知道两种计费与能力边界;
- 给 Codex 划定工作目录,选对权限模式;
- 用“目标、现场、边界、验收”四部分交代一个需求;
- 检查
git diff,运行验证,拒绝只看一句“已经完成”; - 用
AGENTS.md固化项目规则,分清 Skill、Plugin 与 MCP; - 处理命令找不到、登录失败、权限卡住、上下文变乱等常见问题。
先选入口:桌面端、CLI、IDE还是云端
Codex 现在可以出现在好几个地方。底层能力相通,操作方式和使用场景有区别。
| 入口 | 更适合谁 | 优点 | 需要适应的地方 |
|---|---|---|---|
| ChatGPT 桌面端里的 Codex | 刚接触 AI 编程、喜欢可视化界面、还要处理文档和图片的小伙伴 | 项目、对话、终端、浏览器和文件预览都在一个窗口里 | 界面功能多,第一次容易把聊天、工作和 Codex 模式混在一起 |
| Codex CLI | 熟悉终端、经常在代码仓库里工作、需要脚本化的开发者 | 启动快,贴近 Git、测试和构建流程,也能用 codex exec 做自动化 | 需要认识终端、工作目录和几个常用命令 |
| IDE 扩展 | 希望边看源码边与 Codex 协作的开发者 | 文件、代码选区和诊断信息离编辑器更近 | 会同时出现 IDE 自己的功能和 Codex 功能 |
| Codex Cloud | 需要把任务放到云端环境并行执行的团队 | 本机不用一直占着,可以处理多个任务 | 要先配置仓库和云端环境,权限边界也不同 |
我建议第一次使用先选桌面端或 CLI。桌面端比较直观,CLI 更容易理解 Codex 到底在哪个目录工作、执行了什么命令。本文两条路线都会讲,后面的任务方法可以通用。

安装前准备:先把这四件事确认好
1. 准备可用的登录方式
本地使用支持两种方式:
- 使用 ChatGPT 账号登录:Codex 使用量跟随你的 ChatGPT 套餐和工作区规则;
- 使用 OpenAI API Key 登录:按 API 账户的标准用量计费,部分依赖 ChatGPT 工作区或云端服务的能力可能不可用。
个人日常使用一般先选 ChatGPT 登录。API Key 更适合私有脚本、CI 或需要单独核算 API 成本的环境。
不要把 Key 写进 AGENTS.md、项目源码、截图、聊天记录或 Git 提交。需要给命令使用时,放进环境变量或团队认可的密钥管理系统。Codex 的 ~/.codex/auth.json 也可能包含凭据,不能上传到仓库。
2. 准备一个练习目录
别拿桌面根目录、下载目录或整个个人文件夹做第一次练习。范围太大时,Codex 需要面对大量无关文件,你自己也很难确认它改了什么。
可以新建一个独立目录:
mkdir camping-gear-ledger
cd camping-gear-ledger
git init

这个练习项目准备做一个“露营装备借还台账”:记录帐篷、营灯和折叠椅的借出状态,支持按归还日期筛选。场景够小,又能走完页面开发、数据校验和验收流程。
这里先初始化 Git。Git 相当于给文件变化建立档案。即使你还不会分支和合并,至少也能通过 git status 和 git diff 看清变化。
3. 确认项目自己能运行
如果你要让 Codex 修改现有项目,先手动执行一次项目常用命令,例如:
npm install
npm test
npm run build
Java 项目可能是:
./mvnw test
命令要按项目实际情况选择。提前跑一次的目的是有必要的:你需要知道基线是否正常。项目原本就有 17 个失败测试,任务结束后还看到 17 个,含义跟“Codex 新改坏了 17 个测试”完全不同。
4. 记录已有改动
进入现有仓库后先执行:
git status --short
如果输出不为空,先弄清哪些文件是自己正在做的。让 Codex 工作时明确告诉它保留这些改动。条件允许的话,先提交一个检查点或新建分支。
路线一:安装ChatGPT桌面端并进入Codex
官方现在把桌面体验放在 ChatGPT 桌面应用中,进入应用后再选择 Codex。你在旧文章里看到“Codex APP”,通常说的就是这条桌面路线。
第一步,进入官方下载页
打开 ChatGPT 中的 Codex,按系统选择安装包。macOS 页面会区分芯片架构时,按你的 Mac 型号选择,不要从网盘或不明下载站拿安装包。

第二步,安装并登录
macOS 下载后,把应用拖进“应用程序”;Windows 或 Linux 按安装向导完成。第一次打开时选择继续登录,浏览器会跳到 ChatGPT 登录页。完成验证后,浏览器把登录结果交还给桌面应用。
如果你准备用 API Key,在登录页选择其他登录方式,再填入 Key。API Key 登录产生的费用走 OpenAI Platform 账户,别把它和 ChatGPT 套餐额度混在一起。

第三步,选择Codex并打开练习目录
进入应用后选择 Codex,新建对话,然后打开刚才准备的 camping-gear-ledger 文件夹。选中一个文件夹,就等于告诉 Codex:这次工作的主要现场在这里。
别急着发送“帮我做个网站”。先看对话框附近显示的目录是否正确,再检查权限模式。目录错一层,Codex 读到的项目规则、依赖和 Git 仓库都可能跟着错。

路线二:安装Codex CLI
CLI 适合希望在终端里直接读代码、改文件、跑命令的小伙伴。下面优先使用官方当前推荐的安装方式。
macOS和Linux:使用独立安装脚本
在终端执行:
curl -fsSL https://chatgpt.com/codex/install.sh | sh
脚本完成后关闭并重新打开终端,再检查版本:
codex --version
如果仍然提示 command not found,先看安装结束时有没有给出 PATH 提示。终端只会从 PATH 记录的目录里寻找命令,文件已经下载不代表当前 Shell 一定能找到它。
已经有Node.js:也可以使用npm
官方保留了 npm 安装入口:
npm install -g @openai/codex
然后执行:
codex --version
如果 npm 报全局目录没有权限,别顺手给整段命令加 sudo。优先修正 Node 的安装方式或 npm 全局目录权限,避免后面更新时出现一部分文件属于 root、一部分属于当前用户的情况。
Windows怎么选
Windows 可以按 Codex CLI官方快速开始 的 Windows 标签安装。已有 WSL2 开发环境的小伙伴,也可以在 WSL2 里按 Linux 路线使用。项目依赖、Git 和 Codex 尽量放在同一个环境里,少走“命令在 Windows,代码在 WSL,依赖又装在另一边”的弯路。
第一次启动和登录
进入练习目录再启动:
cd camping-gear-ledger
codex
首次启动会让你选择登录方式。使用 ChatGPT 登录时,终端会打开浏览器;完成账号验证后回到终端即可。也可以单独执行:
codex login
登录以后先输入:
/status
重点确认当前目录、模型、权限策略、可写范围和上下文余量。这里的信息比“界面看起来登录成功了”更有用。
更新Codex
使用独立安装脚本的环境,可以重新执行同一条官方脚本完成更新:
curl -fsSL https://chatgpt.com/codex/install.sh | sh
当前版本也提供:
codex update
这个命令只在安装方式支持自更新时生效。如果它提示不支持,就沿用当初的安装方式更新。npm 安装则重新执行 npm install -g @openai/codex。
更新以后再跑 codex --version。碰到配置、认证、Git 或运行时异常时,可以用 codex doctor 生成诊断信息。提交诊断截图前仍要检查里面是否带有本机路径或其他敏感信息。
权限怎么选:第一次不要电脑的完整权限交给 Codex
Codex 的权限由两部分共同决定:
- Sandbox 决定它能访问哪些文件、网络和系统资源;
- Approvals 决定碰到边界动作时,由谁审核、什么时候暂停。
桌面端和 CLI 的文案可能略有不同,当前常见模式可以这样理解:
| 模式 | Codex可以做什么 | 适合场景 | 我给新手的建议 |
|---|---|---|---|
| Ask for approval | 能在当前工作区读写和执行日常命令,越过边界前找你确认 | 第一次上手、陌生仓库、包含重要文件的项目 | 从这里开始 |
| Approve for me / Auto-review | 工作区边界不变,额外访问请求交给自动审核 | 已经清楚项目风险,希望减少频繁确认 | 先做几轮低风险任务再用 |
| Full access | 可以访问更广的本机文件和网络,通常不会逐项等你批准 | 外层已经有隔离环境,且任务确实需要广泛权限 | 不要拿真实个人目录练手 |
| Read-only | 只能读取和分析,修改或执行受限制 | 代码审计、方案评估、初次了解仓库 | 很适合“先看再决定” |
Auto-review 改变的是“谁来审核越界请求”,不会自动扩大 Sandbox。Full access 才会明显放大范围,同时增加误删、泄露和意外执行的风险。
CLI 中输入下面的命令可以查看或切换:
/permissions
第一次完整交付:做一个露营装备借还台账
这一节不追求页面多炫,重点是把“需求交代、计划确认、执行、验证、审核”完整跑一遍。桌面端直接在对话框输入,CLI 在终端界面输入,方法相同。
第一次对话只做现场调查
先发送下面这段:
请先检查当前目录和Git状态,不要修改任何文件。
我准备做一个露营装备借还台账,供8到12人的小团队使用。
请根据当前目录里的实际内容告诉我:
1. 这里是不是一个可以开始开发的项目;
2. 已经有什么技术栈、脚本和项目规则;
3. 开始实现前还缺哪些关键决定;
4. 你准备怎样验证最终结果。
如果目录是空的,请给出两个轻量方案并说明区别,先等我选择。
这段话有三个作用:限制它暂时不改文件,让它引用真实现场,还给技术选型留了确认点。空目录里直接说“做个系统”,Codex 可能替你决定框架、包管理器和页面结构。选择本身未必错,但你很难知道这些依赖是怎么进来的。
确认方案以后再执行
假设我们选择“Vite + TypeScript 的纯前端项目”,下一轮可以这样说:
按Vite + TypeScript方案实现,可以开始修改。
业务要求:
- 默认展示帐篷、营灯、折叠椅三类装备;
- 每条记录包含借用人、借出日期、计划归还日期和当前状态;
- 可以按“借出中、已归还、已逾期”筛选;
- 计划归还日期早于今天、并且还没归还时,状态自动显示为已逾期;
- 先用本地模拟数据,不接后端接口。
边界:
- 保留已有文件和未提交改动;
- 不引入重量级UI组件库;
- 不发布到公网;
- 不替我提交Git。
验收:
- 运行项目已有的格式检查、测试和构建;
- 至少补上“跨月逾期”和“当天归还”两个日期边界测试;
- 检查375px宽度下没有横向滚动;
- 完成后列出修改文件、验证命令、验证结果和仍未覆盖的风险。
这段任务里有目标,也有业务规则、禁止项和验收证据。Codex 可以自己决定实现细节,又不会把“做完了”的标准理解成只生成几个文件。
执行过程中看什么
Codex 工作时,你不需要盯住每一行输出,下面几类动作要多看一眼:
- 安装依赖:确认包名和用途,陌生脚本先看来源;
- 删除、覆盖和移动文件:检查目标路径有没有扩大;
- 访问网络或工作区外目录:想一想任务是否真的需要;
- 跳过测试:看它给出的原因是环境问题,还是为了赶快结束;
- 需求理解发生变化:例如它发现日期状态来自后端,就该重新确认方案。
你随时可以补充方向。例如:
筛选逻辑保留。卡片不要继续加阴影,把层级改成边框和留白。
先修移动端横向滚动,再继续做其他细节。
这种反馈比“再高级一点”“不够好看”更容易落到具体修改上。
任务结束后别急着说通过
先在 Codex 里看变化:
/diff
也可以在普通终端执行:
git status --short
git diff --stat
git diff
然后复跑它声称已经通过的命令。页面类项目还要打开真实页面,检查桌面端、移动端、筛选交互和控制台错误。报告里写着“响应式正常”,无法代替 375px 视口下的实际画面。
CLI 还可以输入:
/review
让 Codex 对当前工作区再做一次专门审查。审查适合找遗漏,最终是否接受仍由 diff、测试和运行结果决定。

提示词不需要太长,把四件事说清楚就可以
我给工程任务常用的结构是:目标、现场、边界、验收。
目标:最终要发生什么变化
“优化一下订单页”范围太大。可以改成:
订单列表在连续点击刷新时会出现重复记录,请定位原因,补复现测试并修复。修复后重复响应不能覆盖较新的列表数据。
现场:给出可核对的线索
把报错、复现步骤、相关目录、最近变更或设计稿位置告诉它:
问题出现在
admin-web,Chrome 中连续点击三次刷新可以复现。接口返回都是 200,第三次请求最先回来。先从请求竞态和状态合并逻辑查起。
边界:哪些事情不能顺手做
例如:
- 不改后端接口和数据库结构;
- 保留我在
OrderTable.tsx里的未提交改动; - 不升级整个依赖树;
- 不创建远程分支,不发布,不推送;
- 如果修复需要改变产品行为,先停下来问我。
验收:拿什么证明完成
例如:
- 新测试可以在修复前失败、修复后通过;
- 原有订单列表测试仍通过;
- 快速刷新只展示最新一次请求对应的数据;
- 给出测试命令和关键结果;
- 说明竞态修复覆盖了哪些路径,哪些异常还没覆盖。
目标:
[说清最终要改变的行为]
现场:
[项目目录、复现步骤、报错、相关线索、已有改动]
边界:
[禁止修改的内容、需要保留的内容、必须确认的决定]
验收:
[测试、构建、页面、接口、日志或数据方面的证据]
先检查现场。如果我的描述与仓库实际情况冲突,以现场证据指出冲突,先不要猜着改。
常用命令:先记住这几个就够用
CLI外部命令
| 命令 | 用途 |
|---|---|
codex | 在当前目录启动交互界面 |
codex login | 单独完成登录 |
codex doctor | 检查安装、配置、认证、Git 和运行时问题 |
codex resume | 回到以前保存的会话 |
codex --image error.png | 带着图片开始任务 |
codex --search | 在任务需要最新资料时启用实时搜索 |
codex review | 从命令行发起代码审查 |
codex exec "任务" | 非交互执行,适合脚本和CI场景 |
codex mcp | 查看和管理 MCP 服务 |
会话里的斜杠命令
| 命令 | 用途 |
|---|---|
/status | 查看当前模型、权限、工作目录和上下文 |
/permissions | 查看或调整当前权限模式 |
/model | 选择当前可用模型和推理强度 |
/diff | 查看工作区变更,包括未跟踪文件 |
/review | 对当前工作树发起审查 |
/compact | 把长对话压缩成保留关键事实的摘要 |
/resume | 恢复一个已保存会话 |
/fork | 从当前会话分一条新路线,原对话保留 |
/new | 在当前 CLI 中开始全新对话 |
/init | 在当前目录生成 AGENTS.md 初始框架 |
/plugins | 查看与管理可发现的 Plugins |
斜杠命令会继续增加,输入 / 后查看当前版本给出的列表最稳。别强行记住某篇旧教程里的翻译命令,官方 CLI 使用的是英文命令名。
用AGENTS.md把项目规矩交代清楚
同一套约定每次都粘贴,既浪费上下文,也容易漏掉。Codex 会在开始工作前读取 AGENTS.md,我们可以把长期有效的项目规则放进去。
一个适合练习项目的版本可以这样写:
# AGENTS.md
## 项目定位
- 这是露营装备借还台账的前端项目。
- 当前数据来自本地模拟,除非任务明确要求,不要接入远程服务。
## 开发约定
- 使用现有包管理器,不要混用 npm、pnpm 和 yarn。
- 日期计算集中放在 `src/domain/loanStatus.ts`,组件只负责展示。
- 新增日期规则时必须补边界测试。
- 不要把测试时间直接写成 `new Date()`,使用可注入的当前日期。
## 验证
- 修改 TypeScript 后运行 `npm run lint` 和 `npm test`。
- 修改构建配置或依赖后额外运行 `npm run build`。
- 页面改动检查 375px 与 1280px 两个宽度。
## 安全边界
- 不自动提交、推送或发布。
- 不删除用户已有文件;确实需要删除时先解释目标和原因。
- 不在日志、示例数据或截图中写真实姓名和联系方式。
规则要具体,还要能执行。“代码要优雅”“注意安全”很难指导下一步。写清测试命令、目录边界和需要确认的动作,效果会稳定很多。
多层AGENTS.md怎样生效
Codex 会从全局到当前工作目录逐层发现规则:
- 默认从
~/.codex/AGENTS.md读取个人通用约定; - 从 Git 根目录开始,沿目录向当前工作目录查找项目级文件;
- 同一目录存在
AGENTS.override.md时,它优先于AGENTS.md; - 离当前目录越近的规则越靠后,发生冲突时有更高优先级;
- 规则链存在大小限制,别把整套项目文档都塞进去。
全局文件适合放语言偏好、通用安全边界。项目根目录适合放构建、测试、架构与提交规则。某个服务有特殊约定,再在它的目录里补一层。

Skills、Plugins和MCP分别解决什么问题
这三个词经常一起出现,我用“缺的到底是什么”来判断。
| 机制 | 给Codex补充什么 | 适合例子 |
|---|---|---|
| Skill | 一套可复用的步骤、模板和参考资料 | 每次发布前都按同一清单检查文档链接、构建和截图 |
| Plugin | 可安装、可分享的一组能力,里面可以带 Skills、连接器或两者 | 安装一个团队插件,同时获得周报流程和 GitHub 工具 |
| MCP | 外部工具和数据连接 | 读取监控告警、查询设计系统、访问内部工单平台 |
| AGENTS.md | 进入某个项目就长期生效的本地约定 | 这个仓库用什么命令测试,哪些目录禁止修改 |
Skill怎么用
当请求与某个 Skill 匹配时,Codex 可以自动选择;也可以显式写 $技能名。例如团队有一个 release-check Skill:
$release-check 检查当前分支能不能发布,只做检查,不要提交或部署。
Skill 很适合已经跑通、以后还要反复执行的流程。第一次做任务时先把流程磨顺,确认输入、步骤和输出,再用 $skill-creator 封装。这样生成的是你真实会用的工作方法,不是一份看起来完整、实际没走过的说明书。
安装社区 Skill 前先读 SKILL.md 和配套脚本,尤其检查下载、上传、安装软件、读取凭据、删除文件等动作。知名仓库也要看当前版本,不能只凭名称判断安全。
Plugin怎么用
Plugin 是安装和分发单位,可以同时装进工作流和外部工具。你可以在桌面端或 /plugins 中查看可用项。安装后,先看它包含哪些 Skill、连接器和权限,再决定是否授权账号。
涉及发布、发消息、改工单、操作云资源的 Plugin 可能产生外部影响。第一次使用先做读取或预览,确认目标账号、项目和权限范围,再执行写操作。
MCP什么时候值得接
如果任务必须访问 Codex 当前工具之外的服务,MCP 才有价值。例如要根据真实告警修复线上问题,需要读取监控平台;要核对接口契约,需要访问团队的 API 文档服务。
CLI 可以从这里开始:
codex mcp --help
先看当前版本支持的 list、add、remove 和登录参数,再照目标服务的官方接入说明配置。别把网上某个过时的一行命令当成所有环境都通用的安装办法。

桌面端的几个关键入口:额度、上下文和斜杠命令
前面我们已经把 Codex 跑起来,也完成了一轮实际修改。接下来先别急着继续扔任务,我建议小伙伴把桌面端的几个状态入口认全。额度快用完、上下文快塞满、插件没有连好,表面看起来都像“Codex 突然变笨了”,处理办法却完全不同。
先分清两个百分比:剩余额度和上下文占用
这两个数字很容易混:
- 剩余额度管账号还能用多少。它受套餐、模型、推理强度、任务复杂度和工具调用影响;
- 上下文占用管当前这一个对话还能装多少内容。它只反映本轮对话的“工作记忆”,不会告诉你账号本周还剩多少额度。
举个简单的例子。你新开一个对话时,上下文几乎是空的,但账号额度可能已经在前几个对话里消耗了不少。反过来,账号额度还很充足,某个聊了两天的老对话也可能马上装满。这两个地方要分别看。
在设置里查看剩余额度
点击桌面端左下角的头像或设置,再找剩余额度、用量或 Usage。不同版本的中文名称可能略有变化,页面里通常会看到:
- 当前 5 小时窗口还剩多少;
- 这个窗口何时刷新;
- 套餐存在周限制时,本周还剩多少以及何时刷新;
- 购买过额外 Credits 时,剩余 Credits 或相关入口。
OpenAI 当前采用 5 小时用量窗口,本地消息和 Cloud 对话会共享这个窗口,部分套餐还会叠加周限制。这里显示的百分比也不能直接换算成“还能发多少条消息”。一次改文案和一次跨模块重构,消耗差别可能很大;模型、上下文长度、推理强度、浏览器操作和图片生成都会影响用量。
我平时会在开始大任务前看一眼,做到一半再看一次。如果消耗比预期快,先缩小任务范围,或者换成更轻量的模型。为了省几分钟而把一个大任务拆成十几个重复对话,通常会反复读取同一批文件,反而更费。

左下角查看剩余额度
除了进设置查看外,还可以点击左下角的账户名字,然后会弹出一个小窗口,再点击剩余用量,会显示出一周的剩余额度和额度重置的时间。


/status:不用离开对话也能看状态
在输入框里先输入一个 /,桌面端会弹出当前可用的快捷命令列表。这一类命令叫斜杠命令。继续输入 status,选择 /status,Codex 会在当前对话里显示聊天 ID、上下文占用和速率限制等信息。
/status
这里有个细节要注意:命令本身使用英文。中文界面可能会把说明翻译成“状态”,但实际输入建议写 /status,不要写 /状态。斜杠命令会随着版本、账号和已安装能力变化,记不住也没关系,输入 / 再选就行。


输入框旁边的小圆圈,看的就是当前上下文
对话区域或输入框附近通常有一个小圆圈,也就是上下文指示器。鼠标移上去,可以看到当前对话已经使用多少上下文。界面位置以后可能调整,找不到时直接用 /status 。

上下文里装的东西比聊天文字多。下面这些内容都会占空间:
- 你发出的需求、补充说明和附件;
- Codex 读取的源码、日志与项目规则;
- 终端输出、浏览器页面、截图和工具返回结果;
- 已加载的 Skill 说明、插件工具描述和 MCP 信息;
- Codex 的回答,以及为了继续工作保留下来的历史摘要。
所以有时明明只聊了十几轮,小圆圈却涨得很快。常见原因是贴了超长日志、一次扫描了大量文件,或者浏览器和插件返回了很多内容。
上下文快满时会发生什么
当上下文接近上限时,Codex 会尝试压缩较早的历史,把长对话整理成一份更短的任务摘要,再带着摘要继续工作。这个过程能腾出空间,但不可能原样保留每一句话。早期某个临时口头约定、没有落盘的排查结论,可能只剩下简短概括。
我一般不会等到圆圈快满才处理。在一个阶段刚结束时,可以主动输入:
/compact
/compact 会压缩当前对话的上下文。桌面端里写的“/压缩”表达的是这个功能,当前实际命令仍是 /compact。

压缩前,我会先让 Codex 留一份阶段记录:
先别继续修改。请把当前进度整理成四部分:
1. 已确认的目标和不能改的边界;
2. 已改文件与每个文件的改动;
3. 已执行的验证及结果;
4. 还没解决的问题和下一步。
把记录保存到项目的notes/current-progress.md,我确认后再压缩上下文。
记录落到文件里以后,再执行 /compact。压缩完成后,抽查一次关键约束有没有保留。项目代码、Git 状态和测试结果仍要重新读取,不能拿压缩摘要代替当前现场。
日常最常用的斜杠命令
桌面端输入 / 会给出完整列表,我建议先认识下面这些:
| 命令 | 什么时候用 |
|---|---|
/status | 查看聊天 ID、上下文用量和 rate limits |
/compact | 在阶段边界主动压缩当前上下文 |
/model | 切换当前对话使用的模型 |
/reasoning | 调整当前任务的推理强度 |
/plan | 先讨论方案,再进入实施 |
/review | 进入代码审查模式,检查未提交改动或对比分支 |
/fork | 从当前对话分出一条新路线,保留原对话 |
/side | 临时开一个侧聊,不打断主任务 |
/mcp | 查看 MCP 服务连接状态 |
/memories | 管理当前对话是否读取记忆、是否参与以后生成记忆 |
可用命令由环境和权限决定。看到别人教程里有某条命令,自己的列表里没有,先检查客户端版本、登录方式和工作区策略,不要直接修改本机配置硬开。

点击访问地址后,右侧会打开内置浏览器
Codex 启动前端开发服务器后,回复里经常会出现 http://localhost:3000、http://localhost:5173 一类地址。点击这个地址,页面会在桌面端右侧的内置浏览器中打开,不需要你来回切换 Chrome 和 Codex。
内置浏览器还可以从工具栏手动打开。macOS 常用快捷键是 Cmd+Shift+B,Windows 是 Ctrl+Shift+B。快捷键如果被你改过,可以去设置里的 Keyboard Shortcuts 搜索 Browser。
右侧浏览器适合做什么
我最常用它做三件事:
- 看本地项目是否真的跑起来了。 页面空白时顺手检查访问地址、开发服务器和控制台;
- 在真实页面上验收。 看桌面宽度、手机宽度、弹窗、表单、空状态和错误状态;
- 直接给页面做批注。 打开 Annotation mode,点中具体元素或拖出一块区域,写清想改成什么样,再把批注交给 Codex。
例如,一个活动报名页在手机上把提交按钮挤出了屏幕,可以在右侧浏览器中切到窄屏,选中按钮并写:
375px宽度下按钮超出了表单卡片。
保持按钮文案和卡片宽度不变,让按钮在小屏下占满可用宽度,
同时保留左右16px内边距。
这种批注比“移动端不好看,优化一下”清楚得多。Codex 拿到的是具体页面、具体元素和具体目标,定位代码也更准。

内置浏览器有自己的浏览器资料
它使用单独的浏览器 Profile,不会自动继承你日常 Chrome 的标签页、Cookie 和登录状态。公开页面、本地页面、测试系统,用内置浏览器更省心。确实需要账号时,可以在内置浏览器里单独登录测试账号。
下载文件默认进入系统下载目录,可以在设置 → 浏览器里修改下载位置、清理浏览数据、管理历史记录。浏览器历史可能包含内部网址和搜索词,允许 Codex 读取历史前要看清楚当前任务是否真的需要。
页面预览和“让 Codex 自动点网页”是两种能力
你点击地址、自己查看和添加批注,属于内置浏览器预览。如果希望 Codex 自动打开页面、点击按钮、填写表单、翻页和截图,还要安装并启用 Browser 插件。
不少教程把后一种能力叫做 Browser Use。当前官方界面更常见的名称是 Browser,官方文档里把自动点击这一层称为 Computer Use in the browser。看到这几个叫法不用慌,它们说的是“让 Codex 操作内置浏览器”这件事。
左侧的插件市场:给桌面端补上新工具
打开左侧的插件面板,就能看到当前账号可用的插件目录。插件可以带 Skill、连接器、MCP 服务、浏览器扩展或 Hook。安装一个插件以后,Codex 才能接触到插件提供的那组能力。
前面讲过 Skill、Plugin 和 MCP 的概念,这里专门看桌面端怎么用。小伙伴可以按下面的顺序操作:
- 在左侧打开插件;
- 搜索想要的能力,先进入详情页;
- 看清插件包含哪些 Skill、连接器、MCP 服务和权限;
- 点击安装或启用,外部服务需要登录时再完成授权;
- 安装后新建一个对话,让新会话加载刚装好的能力;
- 在任务里用
@插件名指定工具,或用$技能名指定 Skill。
有的插件由工作区管理员统一安装,个人不能卸载;有的连接器在卸载插件后仍保持登录,需要再去对应的连接管理页面断开。安装和授权是两步,别把“插件已安装”当成“外部账号已经断开或已经连好”。

四个容易混淆的桌面端能力
| 能力 | 它操作什么 | 最适合的场景 | 调用方式示例 |
|---|---|---|---|
| Browser | Codex 自己的内置浏览器 Profile | 本地页面、公开网页、测试账号 | @Browser |
| Chrome | 你日常使用的 Chrome Profile 和已登录标签页 | 必须使用现有登录态的网站 | @Chrome |
| Computer Use | macOS 或 Windows 上允许访问的桌面应用 | 只能通过图形界面完成的操作 | @Computer 或 @应用名 |
| Image generation | 生成或编辑图片文件 | UI 素材、封面、插画、占位图 | $imagegen |
我一般按这个顺序选:有专用插件就用专用插件;网页优先用内置 Browser;必须复用日常登录态再用 Chrome;只有图形界面才能完成时,最后考虑 Computer Use。路径越结构化,结果越容易复查,权限也越好控制。
Browser Use
进入插件 → Browser安装插件,也可以去设置 → 浏览器检查它是否启用。使用时直接在任务中写 @Browser:
Codex 可以用内置和自己的浏览器访问页面、但是要让 Codex 完全可以自己去操控浏览器、填写数据、自动点击等相关的功能,就需要 Browser Use 浏览器操作功能了。
进入设置 → 浏览器,确保 Browser Use 功能开启了,还可以在这里设置权限规则和禁止打开的域名。

在对话中通过 @浏览器打开页面
@浏览器 帮我打开 http://127.0.0.1:5173/ 这个页面

Chrome:使用已经登录的浏览器会话
Browser 的独立 Profile 里没有你日常网站的登录态。确实需要已登录的 Chrome 时,可以安装 Chrome 插件和配套扩展:
- 在 Codex 左侧插件面板安装 Chrome;
- 按提示跳转到 Chrome 安装扩展;
- 接受 Chrome 展示的扩展权限;
- 回到 Codex 的设置 → Computer Use,确认 Google Chrome 显示已连接;
- 新建对话,使用
@Chrome发起任务。

在对话中通过 @Chrome 打开页面:
@Chrome 帮我打开 http://127.0.0.1:5173/ 这个页面,并告诉我装备借还记录各个状态下的设备统计情况。
能看到 Codex 调用了 Chrome 扩展,打开了日常登录的浏览器标签页。Codex 还可以在这个标签页里读取页面内容。

Computer Use:让 Codex 操作桌面应用
Computer Use 可以看到并操作你允许的桌面应用,包括读取屏幕、移动鼠标、点击、输入和跨应用切换。当前官方资料显示,它在支持地区可用于 macOS 和 Windows。macOS 首次使用时需要授予屏幕录制与辅助功能权限;Windows 会在当前活动桌面前台操作,执行时会占用鼠标和键盘。
安装路径通常是插件 → Computer Use → 安装/启用,然后到设置 → Computer Use检查应用权限。任务里可以写 @Computer,也可以直接点名已连接应用。


接下来让 Codex 直接操作我的电脑,打开 PPT 程序,并写上一行话。
@电脑 打开我电脑的ppt程序,并新建个幻灯片,里面写上:这是Codex完成的内容。这样一行话

能看到 Codex 确实完成了一系列的操作,但是过程实在是很慢,而且比较曲折。并且有些软件对 Agent 的支持的不太好,所以能用终端命令行和浏览器完成的操作,就不要用 Computer Use。

Image generation:在对话里直接生成图片素材
图像生成属于内置 Skill。输入 $ 可以查找当前可用 Skills,明确调用时写 $imagegen。它适合生成 UI 占位图、网站头图、插画、背景、精灵图,也能根据你上传的参考图做编辑。
下面换一个“城市夜跑路线指南”的例子:
$imagegen 为“城市夜跑路线指南”生成一张16:9网站头图。
画面:傍晚的滨河步道,三名跑者从暖黄色路灯下经过,远处有简化的城市天际线。
风格:克制的编辑插画,深蓝、橙黄和灰白为主色。
构图:右侧放人物和河岸,左侧留出约40%的干净标题区。
限制:画面中不要生成任何文字、品牌Logo和真实地标名称。
输出:1920×1080 PNG,先生成一张方向稿。
生成后别只看“好不好看”,还要检查尺寸、裁切、人物肢体、品牌元素和标题安全区。OpenAI 当前说明,图片生成也会消耗 Codex 通用额度,平均可能比普通对话快 3~5 倍。先出一张方向稿,确认后再批量做变体,额度更好控制。

表格、文档和演示稿插件怎么选
插件市场里还会看到 Spreadsheets、Documents、Presentations 等能力。它们适合直接创建或修改对应文件,并在桌面端预览结果。处理这类文件时,把原件和输出分开:
读取activity-signups-raw.xlsx,新生成activity-signups-checked.xlsx,保留原文件不动。
检查重复报名、缺失联系方式和日期格式异常,增加“待人工确认”列。
不要猜测缺失值,不要覆盖原表。完成后检查公式、筛选范围和中文显示。
插件能成功保存文件,只能证明文件写出来了。表格还要查公式和日期,文档要看分页和字体,演示稿要看溢出、遮挡和图片清晰度。
持久记忆系统:哪些话以后还记得
很多小伙伴把“上下文”和“记忆”当成同一件事。上下文属于当前对话,压缩或新建对话后会变化;持久信息会保存在对话之外,下次工作时还有机会再次加载。
Codex 桌面端里常见的持久信息可以分成三层:
- 全局自定义指令,保存个人长期偏好;
- 项目里的
AGENTS.md,保存这个仓库必须遵守的约定; - Memories,从符合条件的历史对话中提取可复用经验。
它们都能影响后续对话,但职责不同。下面逐层拆开。
第一层:全局自定义指令
打开设置 → 个性化,可以选择回答个性并填写自定义指令。这里适合写所有项目都通用的个人习惯,例如:
默认使用中文交流。
涉及文件修改时,先说明将要改哪些文件。
结论要带上实际检查结果,无法验证的地方明确写出来。
看到工作区已有改动时保留它们,不要擅自覆盖。
官方当前说明,桌面端修改自定义指令后,会更新个人的 AGENTS.md。本机常见位置是:
~/.codex/AGENTS.md
这个文件影响多个项目,所以别在里面写某一个仓库独有的端口、模块路径或发布命令。全局内容越短越容易长期维护。

第二层:项目级 AGENTS.md
项目根目录的 AGENTS.md 只在对应目录范围内生效,适合写当前仓库的固定规则:
- 使用什么语言和运行时版本;
- 代码、目录和命名约定;
- 修改后必须运行哪些测试;
- 哪些生成目录、迁移文件和外部系统不能碰;
- 交付时要给出哪些证据。
前面已经演示过 /init 和多层 AGENTS.md,这里补一个判断方法:团队成员拉下仓库后都必须遵守的内容,应当跟着仓库提交;只属于你个人表达习惯的内容,放全局自定义指令。
安全规则、构建命令、发布边界不能只依赖自动记忆。记忆可能尚未生成,也可能在当前对话里没有被召回;仓库中的 AGENTS.md 才便于版本管理和团队审查。
第三层:自动 Memories
Memories 会把符合条件的历史对话整理成本地记忆文件,并在以后的相关任务里召回。它更像 Codex 从过去工作中记下的经验,而不是你手写的一份固定规则。
打开方法:
- 进入设置 → 个性化;
- 找到 Enable memories 或对应的中文开关;
- 开启后,新对话才有机会参与记忆生成;
- 在具体对话中输入
/memories,管理这一轮是否读取旧记忆、是否成为以后生成记忆的输入。
/memories 调整的是当前对话,不会替你改掉全局开关。比如临时处理一份敏感客户材料时,可以让这轮对话不读取记忆,也不参与未来记忆生成;回到普通项目后,全局设置仍保持原样。

自动记忆什么时候生成
开启开关不代表每次关掉对话都会立刻多一条记忆。Codex 会在后台挑选符合条件的历史对话:
- 正在进行的任务不会马上总结,避免把半截工作当成最终结论;
- 太短、太临时的会话可能直接跳过;
- 对话空闲一段时间后,后台才可能开始提取;
- 剩余 rate limit 低于配置阈值时,记忆生成可能暂缓,避免在额度紧张时继续消耗;
- 后台生成和整合需要时间,所以刚结束任务后没有看到变化很正常。
这也解释了为什么不能说“记住这个”之后马上完全依赖它。必须执行的要求仍要写进 AGENTS.md、项目文档、权限配置或 CI。
本地记忆保存在哪里
本地 Codex 客户端和 ChatGPT 网页使用的是两套记忆。Codex 的本地记忆默认保存在 Codex Home 下:
~/.codex/memories/
里面会有摘要、稳定条目、近期输入和支撑证据等生成内容。它们属于 Codex 自动维护的状态。排查问题或准备迁移电脑时可以检查,但不建议把“手工改生成文件”当成日常管理办法。
如果你需要用配置文件开启,可以在 ~/.codex/config.toml 中写:
[features]
memories = true
[memories]
generate_memories = true
use_memories = true
disable_on_external_context = true
disable_on_external_context 表示,使用过 MCP、网页搜索或其他外部上下文的对话不进入记忆生成,适合对数据边界要求较严的环境。配置字段会继续演进,优先用桌面端设置;确实要改文件时,再对照当前版本的 Config Reference。
什么适合记,什么应该留在别处
| 内容 | 更合适的位置 | 原因 |
|---|---|---|
| 默认用中文、喜欢先看结论 | 全局自定义指令 | 多个项目都适用,含义稳定 |
| 当前仓库使用 Java 21,修改后跑指定测试 | 项目 AGENTS.md | 团队需要审查,也要跟着代码版本走 |
| 某个项目过去排障时验证过的习惯和线索 | Memories | 以后遇到相近任务时可能有帮助 |
| 这次需求临时决定按钮改成橙色 | 当前任务记录 | 下个需求可能立刻失效 |
| 今天线上实例数量和告警状态 | 监控系统或现场查询 | 状态变化快,旧记忆容易误导 |
| API Key、Cookie、客户资料 | 都不要写入记忆 | 属于敏感信息,应使用专门的凭据和数据系统 |
| 禁止生产删库、发布前必须审批 | 权限、CI和项目规则 | 这类要求必须强制执行,不能碰运气召回 |
Codex 在生成记忆字段时会尝试处理 Secret,但我们不能把它当成保险箱。分享 ~/.codex、迁移配置或提交诊断材料前,仍然要检查记忆文件里有没有内部路径、账号、客户数据和其他敏感内容。
记忆也会过期,也可能记错
假设记忆里写着“这个项目用 Node.js 20”,一个月后项目已经升到 Node.js 22。Codex 如果直接照旧记忆执行,就会得到错误结论。所以恢复旧任务时,我常加一句:
可以参考相关记忆,但请先读取当前仓库的package.json、锁文件和AGENTS.md。
如果记忆与磁盘现状冲突,以当前文件为准,并把冲突列出来。
记忆负责减少重复介绍,源码、Git、测试和外部系统负责证明当前事实。两者配合起来才稳。

让桌面端长期用起来更顺手
归档旧对话,别把所有历史都堆在左侧
对话完成后,把鼠标移到左侧会话上,可以将它归档。归档不会删除内容,后面可以去设置 → 已归档对话恢复。一个问题已经结束就归档,新问题另开对话,查找和上下文管理都会轻松一些。
长任务时防止电脑休眠
进入设置的 General 或常规区域,打开 Prevent sleep while running。它适合本地构建、长时间测试和需要持续观察的任务。这个开关只是尽量防止任务运行时睡眠,合盖、断网、系统更新和公司设备策略仍可能中断任务。
右侧面板可以看浏览器、终端和插件活动
Codex 工作时,右侧面板会汇总浏览器、终端、文件预览、插件调用和后台任务。执行卡住时先打开对应条目,看它是在等终端输出、网站授权,还是某个插件登录失败。比一句“怎么还没完成”更容易找到原因。

Review面板负责看改了什么
Codex 修改 Git 仓库后,Review 面板会列出新增、删除和修改。你可以按文件查看 diff,也可以只暂存或还原某一部分。点击“暂存全部”前至少看一遍文件范围,避免把缓存、构建产物、本地配置或自己原有的改动一起带进去。
git status --short
git diff --stat
git diff
界面审核和命令行检查可以互相补充。Review 面板看局部很直观,Git 命令更适合确认整个工作区是否还有遗漏。
自动化和远程能力先知道入口
左侧自动化面板可以创建 Scheduled Tasks,让 Codex 按计划在本地项目或隔离环境中执行重复工作。第一次创建后手动试跑,检查目录、权限、网络、输出和失败记录。涉及删除、发布、付款或对外发消息的流程,不适合在没人看守时直接自动批准。
远程能力可以从手机或另一台设备查看进度、补充指令和处理审批。任务真正使用的项目文件、插件和权限仍在运行 Codex 的那台电脑上。配对二维码、设备名称和连接信息属于敏感数据,截图必须遮住。
常见问题排查
设置里找不到“剩余额度”
先查看左下角头像菜单、Settings、Profile 或 Usage。个人套餐、企业工作区、API Key 登录看到的页面可能不同。仍然找不到时,在对话中运行 /status,或者打开官方 Pricing 页面里的 usage dashboard。API Key 会话按 Platform API 用量计费,不能拿 ChatGPT 套餐百分比来判断。
输入 /状态 或 /压缩 没有反应
直接输入 / 查看当前命令列表。实际命令写 /status 和 /compact。中文“状态”“压缩”是功能说明,不一定是可执行命令。
上下文还很多,额度却掉得很快
上下文和账号额度是两套指标。图片生成、强模型、高推理强度、长时间 Browser/Computer Use、重复读取大文件,都可能让额度消耗加快。用 /status 看当前信息,再回到 Usage 页面看窗口剩余量。
对话越来越乱
先停止塞新需求,让 Codex 列出当前目标、已改文件、验证结果和待办。把重要进度写入项目文件,然后执行 /compact。目标已经换了,就新建对话;想保留当前路线再尝试另一个方案,用 /fork。
点击地址后没有在右侧打开页面
先确认开发服务器仍在运行,地址能否访问。再检查右侧 Browser 是否被关闭,以及设置里 Browser 插件是否启用。页面预览不要求 Codex 自动操作;自动点击和截图需要 Browser 插件及网站授权。
Browser 没有继承 Chrome 登录状态
这是正常现象。内置 Browser 使用独立 Profile。需要普通预览就留在 Browser;必须使用日常 Chrome 登录态时,安装 Chrome 插件与扩展,并用 @Chrome。不要为了省一次登录就向所有网站开放权限。
Computer Use 看不到或点不了应用
macOS 检查系统设置里的 Screen Recording 和 Accessibility;Windows 确认目标应用位于当前活动桌面并保持可见。然后回到 Codex 的设置 → Computer Use,检查应用是否允许。管理员认证和系统安全弹窗仍要你亲自处理。
插件装好了,当前对话里仍然不可用
先确认插件已经启用,外部连接器也完成了登录。然后新建对话,让新的会话加载插件提供的 Skills 和工具。还不行时打开插件详情,看是否有 MCP 服务未启动、区域限制或工作区管理员策略。
开了 Memories,第二天还是没看到新记忆
记忆在后台异步生成,短对话、仍活跃的任务和额度偏低时都可能跳过或延后。用 /memories 检查本轮对话是否允许参与生成,再确认全局 Enable memories 已开启。重要信息不要等它自动记,及时写进 AGENTS.md 或项目记录。
第一次熟悉桌面端的检查清单
- 会从设置里找到 5 小时窗口、周限制和刷新时间;
- 知道剩余额度和上下文占用是两个指标;
- 会用
/status查看当前聊天状态; - 会在阶段结束时记录进度,再用
/compact压缩; - 点击本地地址后,能在右侧 Browser 预览页面并添加批注;
- 能说清 Browser、Chrome 和 Computer Use 的区别;
- 安装插件前看过它包含的 Skill、连接器、MCP 和权限;
- 使用 Chrome 时只开放任务需要的网站;
- 使用 Computer Use 时给出具体应用、具体动作和停止条件;
- 会用
$imagegen调用图像生成,并知道图片更消耗额度; - 分得清全局指令、项目
AGENTS.md和 Memories; - 知道
/memories只控制当前对话,自动记忆也不会立刻生成; - 知道源码、Git、测试和外部系统才是当前事实来源;
- Review、Worktree、自动化和远程操作都保留了审核与回退路线。
把这些入口走一遍以后,桌面端用起来就顺了。后面碰到新插件也不用死记教程里的按钮,只要先判断它操作的是本地文件、独立浏览器、日常 Chrome、桌面应用还是外部服务,再按对应权限检查就行。