跳到主要内容

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 到底在哪个目录工作、执行了什么命令。本文两条路线都会讲,后面的任务方法可以通用。

Codex四种使用入口

安装前准备:先把这四件事确认好

1. 准备可用的登录方式

本地使用支持两种方式:

  • 使用 ChatGPT 账号登录:Codex 使用量跟随你的 ChatGPT 套餐和工作区规则;
  • 使用 OpenAI API Key 登录:按 API 账户的标准用量计费,部分依赖 ChatGPT 工作区或云端服务的能力可能不可用。

个人日常使用一般先选 ChatGPT 登录。API Key 更适合私有脚本、CI 或需要单独核算 API 成本的环境。

API Key别这样保存

不要把 Key 写进 AGENTS.md、项目源码、截图、聊天记录或 Git 提交。需要给命令使用时,放进环境变量或团队认可的密钥管理系统。Codex 的 ~/.codex/auth.json 也可能包含凭据,不能上传到仓库。

2. 准备一个练习目录

别拿桌面根目录、下载目录或整个个人文件夹做第一次练习。范围太大时,Codex 需要面对大量无关文件,你自己也很难确认它改了什么。

可以新建一个独立目录:

mkdir camping-gear-ledger
cd camping-gear-ledger
git init

camping-gear-ledger项目截图

这个练习项目准备做一个“露营装备借还台账”:记录帐篷、营灯和折叠椅的借出状态,支持按归还日期筛选。场景够小,又能走完页面开发、数据校验和验收流程。

这里先初始化 Git。Git 相当于给文件变化建立档案。即使你还不会分支和合并,至少也能通过 git statusgit 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 型号选择,不要从网盘或不明下载站拿安装包。

Codex下载页

第二步,安装并登录

macOS 下载后,把应用拖进“应用程序”;Windows 或 Linux 按安装向导完成。第一次打开时选择继续登录,浏览器会跳到 ChatGPT 登录页。完成验证后,浏览器把登录结果交还给桌面应用。

如果你准备用 API Key,在登录页选择其他登录方式,再填入 Key。API Key 登录产生的费用走 OpenAI Platform 账户,别把它和 ChatGPT 套餐额度混在一起。

Chatgpt登录界面

第三步,选择Codex并打开练习目录

进入应用后选择 Codex,新建对话,然后打开刚才准备的 camping-gear-ledger 文件夹。选中一个文件夹,就等于告诉 Codex:这次工作的主要现场在这里。

别急着发送“帮我做个网站”。先看对话框附近显示的目录是否正确,再检查权限模式。目录错一层,Codex 读到的项目规则、依赖和 Git 仓库都可能跟着错。

Codex项目截图

路线二:安装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
Codex-Cli版本

如果 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-Cli欢迎页面

更新Codex

使用独立安装脚本的环境,可以重新执行同一条官方脚本完成更新:

curl -fsSL https://chatgpt.com/codex/install.sh | sh

当前版本也提供:

codex update
Codex-Cli更新

这个命令只在安装方式支持自更新时生效。如果它提示不支持,就沿用当初的安装方式更新。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
Codex-Cli-permissions Codex-Cli-permissions

第一次完整交付:做一个露营装备借还台账

这一节不追求页面多炫,重点是把“需求交代、计划确认、执行、验证、审核”完整跑一遍。桌面端直接在对话框输入,CLI 在终端界面输入,方法相同。

第一次对话只做现场调查

先发送下面这段:

请先检查当前目录和Git状态,不要修改任何文件。

我准备做一个露营装备借还台账,供8到12人的小团队使用。
请根据当前目录里的实际内容告诉我:
1. 这里是不是一个可以开始开发的项目;
2. 已经有什么技术栈、脚本和项目规则;
3. 开始实现前还缺哪些关键决定;
4. 你准备怎样验证最终结果。

如果目录是空的,请给出两个轻量方案并说明区别,先等我选择。

这段话有三个作用:限制它暂时不改文件,让它引用真实现场,还给技术选型留了确认点。空目录里直接说“做个系统”,Codex 可能替你决定框架、包管理器和页面结构。选择本身未必错,但你很难知道这些依赖是怎么进来的。

确认方案以后再执行

假设我们选择“Vite + TypeScript 的纯前端项目”,下一轮可以这样说:

按Vite + TypeScript方案实现,可以开始修改。

业务要求:
- 默认展示帐篷、营灯、折叠椅三类装备;
- 每条记录包含借用人、借出日期、计划归还日期和当前状态;
- 可以按“借出中、已归还、已逾期”筛选;
- 计划归还日期早于今天、并且还没归还时,状态自动显示为已逾期;
- 先用本地模拟数据,不接后端接口。

边界:
- 保留已有文件和未提交改动;
- 不引入重量级UI组件库;
- 不发布到公网;
- 不替我提交Git。

验收:
- 运行项目已有的格式检查、测试和构建;
- 至少补上“跨月逾期”和“当天归还”两个日期边界测试;
- 检查375px宽度下没有横向滚动;
- 完成后列出修改文件、验证命令、验证结果和仍未覆盖的风险。

这段任务里有目标,也有业务规则、禁止项和验收证据。Codex 可以自己决定实现细节,又不会把“做完了”的标准理解成只生成几个文件。

执行过程中看什么

Codex 工作时,你不需要盯住每一行输出,下面几类动作要多看一眼:

  1. 安装依赖:确认包名和用途,陌生脚本先看来源;
  2. 删除、覆盖和移动文件:检查目标路径有没有扩大;
  3. 访问网络或工作区外目录:想一想任务是否真的需要;
  4. 跳过测试:看它给出的原因是环境问题,还是为了赶快结束;
  5. 需求理解发生变化:例如它发现日期状态来自后端,就该重新确认方案。

你随时可以补充方向。例如:

筛选逻辑保留。卡片不要继续加阴影,把层级改成边框和留白。
先修移动端横向滚动,再继续做其他细节。

这种反馈比“再高级一点”“不够好看”更容易落到具体修改上。

任务结束后别急着说通过

先在 Codex 里看变化:

/diff

也可以在普通终端执行:

git status --short
git diff --stat
git diff

然后复跑它声称已经通过的命令。页面类项目还要打开真实页面,检查桌面端、移动端、筛选交互和控制台错误。报告里写着“响应式正常”,无法代替 375px 视口下的实际画面。

CLI 还可以输入:

/review

让 Codex 对当前工作区再做一次专门审查。审查适合找遗漏,最终是否接受仍由 diff、测试和运行结果决定。

Codex-Cli-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 会从全局到当前工作目录逐层发现规则:

  1. 默认从 ~/.codex/AGENTS.md 读取个人通用约定;
  2. 从 Git 根目录开始,沿目录向当前工作目录查找项目级文件;
  3. 同一目录存在 AGENTS.override.md 时,它优先于 AGENTS.md
  4. 离当前目录越近的规则越靠后,发生冲突时有更高优先级;
  5. 规则链存在大小限制,别把整套项目文档都塞进去。

全局文件适合放语言偏好、通用安全边界。项目根目录适合放构建、测试、架构与提交规则。某个服务有特殊约定,再在它的目录里补一层。

Codex-Cli-init命令结果

Codex规则发现链

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

先看当前版本支持的 listaddremove 和登录参数,再照目标服务的官方接入说明配置。别把网上某个过时的一行命令当成所有环境都通用的安装办法。

Codex-Cli-skills命令 Codex-Cli-skills命令结果

Codex能力扩展地图

桌面端的几个关键入口:额度、上下文和斜杠命令

前面我们已经把 Codex 跑起来,也完成了一轮实际修改。接下来先别急着继续扔任务,我建议小伙伴把桌面端的几个状态入口认全。额度快用完、上下文快塞满、插件没有连好,表面看起来都像“Codex 突然变笨了”,处理办法却完全不同。

先分清两个百分比:剩余额度和上下文占用

这两个数字很容易混:

  • 剩余额度管账号还能用多少。它受套餐、模型、推理强度、任务复杂度和工具调用影响;
  • 上下文占用管当前这一个对话还能装多少内容。它只反映本轮对话的“工作记忆”,不会告诉你账号本周还剩多少额度。

举个简单的例子。你新开一个对话时,上下文几乎是空的,但账号额度可能已经在前几个对话里消耗了不少。反过来,账号额度还很充足,某个聊了两天的老对话也可能马上装满。这两个地方要分别看。

在设置里查看剩余额度

点击桌面端左下角的头像或设置,再找剩余额度用量Usage。不同版本的中文名称可能略有变化,页面里通常会看到:

  • 当前 5 小时窗口还剩多少;
  • 这个窗口何时刷新;
  • 套餐存在周限制时,本周还剩多少以及何时刷新;
  • 购买过额外 Credits 时,剩余 Credits 或相关入口。

OpenAI 当前采用 5 小时用量窗口,本地消息和 Cloud 对话会共享这个窗口,部分套餐还会叠加周限制。这里显示的百分比也不能直接换算成“还能发多少条消息”。一次改文案和一次跨模块重构,消耗差别可能很大;模型、上下文长度、推理强度、浏览器操作和图片生成都会影响用量。

我平时会在开始大任务前看一眼,做到一半再看一次。如果消耗比预期快,先缩小任务范围,或者换成更轻量的模型。为了省几分钟而把一个大任务拆成十几个重复对话,通常会反复读取同一批文件,反而更费。

Codex-桌面-使用情况

左下角查看剩余额度

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

Codex-桌面-使用情况

Codex-桌面-使用情况

/status:不用离开对话也能看状态

在输入框里先输入一个 /,桌面端会弹出当前可用的快捷命令列表。这一类命令叫斜杠命令。继续输入 status,选择 /status,Codex 会在当前对话里显示聊天 ID、上下文占用和速率限制等信息。

/status

这里有个细节要注意:命令本身使用英文。中文界面可能会把说明翻译成“状态”,但实际输入建议写 /status,不要写 /状态。斜杠命令会随着版本、账号和已安装能力变化,记不住也没关系,输入 / 再选就行。

Codex-桌面-使用情况

Codex-桌面-使用情况

输入框旁边的小圆圈,看的就是当前上下文

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

Codex-桌面-使用情况

上下文里装的东西比聊天文字多。下面这些内容都会占空间:

  • 你发出的需求、补充说明和附件;
  • Codex 读取的源码、日志与项目规则;
  • 终端输出、浏览器页面、截图和工具返回结果;
  • 已加载的 Skill 说明、插件工具描述和 MCP 信息;
  • Codex 的回答,以及为了继续工作保留下来的历史摘要。

所以有时明明只聊了十几轮,小圆圈却涨得很快。常见原因是贴了超长日志、一次扫描了大量文件,或者浏览器和插件返回了很多内容。

上下文快满时会发生什么

当上下文接近上限时,Codex 会尝试压缩较早的历史,把长对话整理成一份更短的任务摘要,再带着摘要继续工作。这个过程能腾出空间,但不可能原样保留每一句话。早期某个临时口头约定、没有落盘的排查结论,可能只剩下简短概括。

我一般不会等到圆圈快满才处理。在一个阶段刚结束时,可以主动输入:

/compact

/compact 会压缩当前对话的上下文。桌面端里写的“/压缩”表达的是这个功能,当前实际命令仍是 /compact

Codex-桌面-使用情况

压缩前,我会先让 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-桌面-使用情况

点击访问地址后,右侧会打开内置浏览器

Codex 启动前端开发服务器后,回复里经常会出现 http://localhost:3000http://localhost:5173 一类地址。点击这个地址,页面会在桌面端右侧的内置浏览器中打开,不需要你来回切换 Chrome 和 Codex。

内置浏览器还可以从工具栏手动打开。macOS 常用快捷键是 Cmd+Shift+B,Windows 是 Ctrl+Shift+B。快捷键如果被你改过,可以去设置里的 Keyboard Shortcuts 搜索 Browser。

右侧浏览器适合做什么

我最常用它做三件事:

  1. 看本地项目是否真的跑起来了。 页面空白时顺手检查访问地址、开发服务器和控制台;
  2. 在真实页面上验收。 看桌面宽度、手机宽度、弹窗、表单、空状态和错误状态;
  3. 直接给页面做批注。 打开 Annotation mode,点中具体元素或拖出一块区域,写清想改成什么样,再把批注交给 Codex。

例如,一个活动报名页在手机上把提交按钮挤出了屏幕,可以在右侧浏览器中切到窄屏,选中按钮并写:

375px宽度下按钮超出了表单卡片。
保持按钮文案和卡片宽度不变,让按钮在小屏下占满可用宽度,
同时保留左右16px内边距。

这种批注比“移动端不好看,优化一下”清楚得多。Codex 拿到的是具体页面、具体元素和具体目标,定位代码也更准。

Codex-桌面-浏览器

内置浏览器有自己的浏览器资料

它使用单独的浏览器 Profile,不会自动继承你日常 Chrome 的标签页、Cookie 和登录状态。公开页面、本地页面、测试系统,用内置浏览器更省心。确实需要账号时,可以在内置浏览器里单独登录测试账号。

下载文件默认进入系统下载目录,可以在设置 → 浏览器里修改下载位置、清理浏览数据、管理历史记录。浏览器历史可能包含内部网址和搜索词,允许 Codex 读取历史前要看清楚当前任务是否真的需要。

页面预览和“让 Codex 自动点网页”是两种能力

你点击地址、自己查看和添加批注,属于内置浏览器预览。如果希望 Codex 自动打开页面、点击按钮、填写表单、翻页和截图,还要安装并启用 Browser 插件。

不少教程把后一种能力叫做 Browser Use。当前官方界面更常见的名称是 Browser,官方文档里把自动点击这一层称为 Computer Use in the browser。看到这几个叫法不用慌,它们说的是“让 Codex 操作内置浏览器”这件事。

左侧的插件市场:给桌面端补上新工具

打开左侧的插件面板,就能看到当前账号可用的插件目录。插件可以带 Skill、连接器、MCP 服务、浏览器扩展或 Hook。安装一个插件以后,Codex 才能接触到插件提供的那组能力。

前面讲过 Skill、Plugin 和 MCP 的概念,这里专门看桌面端怎么用。小伙伴可以按下面的顺序操作:

  1. 在左侧打开插件
  2. 搜索想要的能力,先进入详情页;
  3. 看清插件包含哪些 Skill、连接器、MCP 服务和权限;
  4. 点击安装或启用,外部服务需要登录时再完成授权;
  5. 安装后新建一个对话,让新会话加载刚装好的能力;
  6. 在任务里用 @插件名 指定工具,或用 $技能名 指定 Skill。

有的插件由工作区管理员统一安装,个人不能卸载;有的连接器在卸载插件后仍保持登录,需要再去对应的连接管理页面断开。安装和授权是两步,别把“插件已安装”当成“外部账号已经断开或已经连好”。

Codex-桌面-插件 Codex-桌面-使用插件

四个容易混淆的桌面端能力

能力它操作什么最适合的场景调用方式示例
BrowserCodex 自己的内置浏览器 Profile本地页面、公开网页、测试账号@Browser
Chrome你日常使用的 Chrome Profile 和已登录标签页必须使用现有登录态的网站@Chrome
Computer UsemacOS 或 Windows 上允许访问的桌面应用只能通过图形界面完成的操作@Computer@应用名
Image generation生成或编辑图片文件UI 素材、封面、插画、占位图$imagegen

我一般按这个顺序选:有专用插件就用专用插件;网页优先用内置 Browser;必须复用日常登录态再用 Chrome;只有图形界面才能完成时,最后考虑 Computer Use。路径越结构化,结果越容易复查,权限也越好控制。

Browser Use

进入插件 → Browser安装插件,也可以去设置 → 浏览器检查它是否启用。使用时直接在任务中写 @Browser

Codex 可以用内置和自己的浏览器访问页面、但是要让 Codex 完全可以自己去操控浏览器、填写数据、自动点击等相关的功能,就需要 Browser Use 浏览器操作功能了。

进入设置 → 浏览器,确保 Browser Use 功能开启了,还可以在这里设置权限规则和禁止打开的域名。

Codex-桌面-Browser Use

在对话中通过 @浏览器打开页面

@浏览器 帮我打开 http://127.0.0.1:5173/ 这个页面

Codex-桌面-Browser Use使用

Chrome:使用已经登录的浏览器会话

Browser 的独立 Profile 里没有你日常网站的登录态。确实需要已登录的 Chrome 时,可以安装 Chrome 插件和配套扩展

  1. 在 Codex 左侧插件面板安装 Chrome;
  2. 按提示跳转到 Chrome 安装扩展;
  3. 接受 Chrome 展示的扩展权限;
  4. 回到 Codex 的设置 → Computer Use,确认 Google Chrome 显示已连接;
  5. 新建对话,使用 @Chrome 发起任务。

Codex-桌面-Chrome

在对话中通过 @Chrome 打开页面:

@Chrome 帮我打开 http://127.0.0.1:5173/ 这个页面,并告诉我装备借还记录各个状态下的设备统计情况。

能看到 Codex 调用了 Chrome 扩展,打开了日常登录的浏览器标签页。Codex 还可以在这个标签页里读取页面内容。

Codex-桌面-Chrome

Computer Use:让 Codex 操作桌面应用

Computer Use 可以看到并操作你允许的桌面应用,包括读取屏幕、移动鼠标、点击、输入和跨应用切换。当前官方资料显示,它在支持地区可用于 macOS 和 Windows。macOS 首次使用时需要授予屏幕录制与辅助功能权限;Windows 会在当前活动桌面前台操作,执行时会占用鼠标和键盘。

安装路径通常是插件 → Computer Use → 安装/启用,然后到设置 → Computer Use检查应用权限。任务里可以写 @Computer,也可以直接点名已连接应用。

Codex-桌面-Computer Use

Codex-桌面-Computer Use

接下来让 Codex 直接操作我的电脑,打开 PPT 程序,并写上一行话。

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

Codex-桌面-Computer Use

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

Codex-桌面-Computer Use

Image generation:在对话里直接生成图片素材

图像生成属于内置 Skill。输入 $ 可以查找当前可用 Skills,明确调用时写 $imagegen。它适合生成 UI 占位图、网站头图、插画、背景、精灵图,也能根据你上传的参考图做编辑。

下面换一个“城市夜跑路线指南”的例子:

$imagegen 为“城市夜跑路线指南”生成一张16:9网站头图。

画面:傍晚的滨河步道,三名跑者从暖黄色路灯下经过,远处有简化的城市天际线。
风格:克制的编辑插画,深蓝、橙黄和灰白为主色。
构图:右侧放人物和河岸,左侧留出约40%的干净标题区。
限制:画面中不要生成任何文字、品牌Logo和真实地标名称。
输出:1920×1080 PNG,先生成一张方向稿。

生成后别只看“好不好看”,还要检查尺寸、裁切、人物肢体、品牌元素和标题安全区。OpenAI 当前说明,图片生成也会消耗 Codex 通用额度,平均可能比普通对话快 3~5 倍。先出一张方向稿,确认后再批量做变体,额度更好控制。

Codex-桌面-Computer Use

表格、文档和演示稿插件怎么选

插件市场里还会看到 Spreadsheets、Documents、Presentations 等能力。它们适合直接创建或修改对应文件,并在桌面端预览结果。处理这类文件时,把原件和输出分开:

读取activity-signups-raw.xlsx,新生成activity-signups-checked.xlsx,保留原文件不动。

检查重复报名、缺失联系方式和日期格式异常,增加“待人工确认”列。
不要猜测缺失值,不要覆盖原表。完成后检查公式、筛选范围和中文显示。

插件能成功保存文件,只能证明文件写出来了。表格还要查公式和日期,文档要看分页和字体,演示稿要看溢出、遮挡和图片清晰度。

持久记忆系统:哪些话以后还记得

很多小伙伴把“上下文”和“记忆”当成同一件事。上下文属于当前对话,压缩或新建对话后会变化;持久信息会保存在对话之外,下次工作时还有机会再次加载。

Codex 桌面端里常见的持久信息可以分成三层:

  1. 全局自定义指令,保存个人长期偏好;
  2. 项目里的 AGENTS.md,保存这个仓库必须遵守的约定;
  3. Memories,从符合条件的历史对话中提取可复用经验。

它们都能影响后续对话,但职责不同。下面逐层拆开。

第一层:全局自定义指令

打开设置 → 个性化,可以选择回答个性并填写自定义指令。这里适合写所有项目都通用的个人习惯,例如:

默认使用中文交流。
涉及文件修改时,先说明将要改哪些文件。
结论要带上实际检查结果,无法验证的地方明确写出来。
看到工作区已有改动时保留它们,不要擅自覆盖。

官方当前说明,桌面端修改自定义指令后,会更新个人的 AGENTS.md。本机常见位置是:

~/.codex/AGENTS.md

这个文件影响多个项目,所以别在里面写某一个仓库独有的端口、模块路径或发布命令。全局内容越短越容易长期维护。

Codex-桌面-设置-个性化

第二层:项目级 AGENTS.md

项目根目录的 AGENTS.md 只在对应目录范围内生效,适合写当前仓库的固定规则:

  • 使用什么语言和运行时版本;
  • 代码、目录和命名约定;
  • 修改后必须运行哪些测试;
  • 哪些生成目录、迁移文件和外部系统不能碰;
  • 交付时要给出哪些证据。

前面已经演示过 /init 和多层 AGENTS.md,这里补一个判断方法:团队成员拉下仓库后都必须遵守的内容,应当跟着仓库提交;只属于你个人表达习惯的内容,放全局自定义指令。

安全规则、构建命令、发布边界不能只依赖自动记忆。记忆可能尚未生成,也可能在当前对话里没有被召回;仓库中的 AGENTS.md 才便于版本管理和团队审查。

第三层:自动 Memories

Memories 会把符合条件的历史对话整理成本地记忆文件,并在以后的相关任务里召回。它更像 Codex 从过去工作中记下的经验,而不是你手写的一份固定规则。

打开方法:

  1. 进入设置 → 个性化
  2. 找到 Enable memories 或对应的中文开关;
  3. 开启后,新对话才有机会参与记忆生成;
  4. 在具体对话中输入 /memories,管理这一轮是否读取旧记忆、是否成为以后生成记忆的输入。

/memories 调整的是当前对话,不会替你改掉全局开关。比如临时处理一份敏感客户材料时,可以让这轮对话不读取记忆,也不参与未来记忆生成;回到普通项目后,全局设置仍保持原样。

Codex-桌面-记忆

自动记忆什么时候生成

开启开关不代表每次关掉对话都会立刻多一条记忆。Codex 会在后台挑选符合条件的历史对话:

  • 正在进行的任务不会马上总结,避免把半截工作当成最终结论;
  • 太短、太临时的会话可能直接跳过;
  • 对话空闲一段时间后,后台才可能开始提取;
  • 剩余 rate limit 低于配置阈值时,记忆生成可能暂缓,避免在额度紧张时继续消耗;
  • 后台生成和整合需要时间,所以刚结束任务后没有看到变化很正常。

这也解释了为什么不能说“记住这个”之后马上完全依赖它。必须执行的要求仍要写进 AGENTS.md、项目文档、权限配置或 CI。

本地记忆保存在哪里

本地 Codex 客户端和 ChatGPT 网页使用的是两套记忆。Codex 的本地记忆默认保存在 Codex Home 下:

~/.codex/memories/

里面会有摘要、稳定条目、近期输入和支撑证据等生成内容。它们属于 Codex 自动维护的状态。排查问题或准备迁移电脑时可以检查,但不建议把“手工改生成文件”当成日常管理办法。

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、测试和外部系统负责证明当前事实。两者配合起来才稳。

Codex三层持久信息与当前上下文

让桌面端长期用起来更顺手

归档旧对话,别把所有历史都堆在左侧

对话完成后,把鼠标移到左侧会话上,可以将它归档。归档不会删除内容,后面可以去设置 → 已归档对话恢复。一个问题已经结束就归档,新问题另开对话,查找和上下文管理都会轻松一些。

长任务时防止电脑休眠

进入设置的 General 或常规区域,打开 Prevent sleep while running。它适合本地构建、长时间测试和需要持续观察的任务。这个开关只是尽量防止任务运行时睡眠,合盖、断网、系统更新和公司设备策略仍可能中断任务。

右侧面板可以看浏览器、终端和插件活动

Codex 工作时,右侧面板会汇总浏览器、终端、文件预览、插件调用和后台任务。执行卡住时先打开对应条目,看它是在等终端输出、网站授权,还是某个插件登录失败。比一句“怎么还没完成”更容易找到原因。

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、桌面应用还是外部服务,再按对应权限检查就行。

参考资料

🎁优惠