×−+
App 工作台第 2 课 · Codex 教程
第 2 课 · WORKSPACE

App 工作台:
把窗口的每一块用熟

第 1 课你让 Codex 做完了第一个任务。这一课把窗口拆开看:项目和对话怎么管,输入框里能放什么,斜杠命令有哪些,它干活时你插一句会怎样,审阅面板怎么挑着收下改动,还有一个随手就能用的终端。

约 35 分钟 10 节 · 7 个动手练习 章末测验 形式参考 luongnv89/claude-howto · 事实依据 OpenAI 官方文档
点上面任意一块,窗口里对应的部分会亮起来。
入门先用起来 原理弄懂为什么 实战动手练 深入进阶与避坑

时间紧就先看第 1、2 节和第 6 节的演练;"原理"几节讲清楚审阅面板和插话排队,决定你能不能放心地把活交出去。页面里的 App 画面都是示意,按钮位置和文字以你电脑上的 App 为准。

01入门

项目与对话

项目像一个工位,对话像工位上的一张张工单。工位上摆着你的文件,每张工单只写一件事。

项目 = 一个工位本地项目连着你电脑上的文件夹(一个或几个)。Codex 能读、能改的,就是这些文件夹里的文件。同一个项目下的对话共用这些文件。
对话 = 一张工单官方建议:每个不同的目标开一个新对话,消息和结果不会搅在一起。order-admin 下面"导出订单 CSV""修复分页 bug""补 README"就是三张工单。

App 的 Projects 视图里,既有 ChatGPT 项目,也有连着文件夹的本地项目。写代码要用本地项目:它连着你电脑上的一个或几个文件夹。

把侧栏管整齐

想做什么怎么做快捷键(macOS / Windows)
常用的放上面置顶(Pin)项目或对话。置顶的对话不会被新对话挤下去对话:⌘⌥P / Ctrl+Alt+P
起个好名字改名(Rename)。用结果当名字,比如"导出订单 CSV"⌘⌥R / Ctrl+Alt+R
找旧对话侧栏里的 Search chats。支持扩展匹配时,记得里面一句话、或者分支名(如 fix/login-redirect)也能搜到默认没有,可以在 Settings > Keyboard Shortcuts 里自己设
找项目在 Projects 视图里搜索—
做完收起来归档(Archive)对话;项目菜单里的 Archive chats 一次归档这个项目的全部对话⌘⇧A / Ctrl+Shift+A
找回归档的Settings > Archived chats,点 Unarchive—

置顶只改变它在侧栏里的位置,不会给 Codex 多加上下文,也不改变它能访问什么。

不属于任何项目的对话

独立的小事:不选项目直接开对话不需要项目文件、也不需要读写文件夹的事,点侧栏 Recents 旁边的 New chat,或者在输入框打 /task。好几个对话都要用同一批文件时,再建项目。
随口问一句:Quick chat(可用时)把鼠标移到 New chat 上,点它旁边的 Quick chat 图标。它开的是一个普通的 ChatGPT 对话,不会出现在 Codex 的侧栏里。快捷键 ⌘⌥N / Ctrl+Alt+N 在两页官方文档里说法不一,以你的 App 为准。
哪些对话在等你:Activity 视图(可用时)点侧栏里的铃铛,最近参与的对话和等你处理的事集中在一起。⌘⌥A / Ctrl+Alt+A 直接跳到下一个等你处理的对话。
一个对话一件事

"导出 CSV"做完了,又想修分页?开一个新对话。同一个项目下的对话共用文件夹,换了对话它照样找得到文件;而旧对话里那一长串关于 CSV 的讨论,不会干扰它修分页。

02入门

输入框:点名文件、附图、开口说

输入框不只用来打字。用 @ 点名文件、拖进一张截图、按一个键直接说,都能更快地把上下文交给 Codex。

1
src/utils/csv.ts
src/utils/csv.test.ts
给 @csv
2
orders-page.png
导出按钮和筛选框挤在一起了,看图里右上角那块
3
列名改成中文,订单号放第一列
正在听写…
界面示意 · 在窗口里的位置:对话区下面的输入框
  1. 1打 @ 点名文件输入文件名的一部分,从弹出的列表里选,文件路径就进了提示词。
  2. 2附一张图按住 Shift 把图片拖进输入框。
  3. 3听写输入框在屏幕上时按 Ctrl+Shift+D,说完检查一遍再发。

@:点名文件,最快的"上下文"

第 1 课讲过提示词四要素,其中"上下文"就是告诉它该看哪些文件。官方最佳实践里的建议是:用 @ 点名相关的文件。项目越大,点名省的事越多,它不用满项目地翻。

@ 在不同场合还能选别的东西,比如插件(第 11 课);输入 $ 调用技能(第 8 课)。

图片:别只丢一张图

界面问题、报错截图、设计稿、架构图,都可以附给它。在 App 里按住 Shift 把图片拖进输入框;也可以直接让它去看你电脑上的某张图片。官方特别提醒:说清楚图里要看哪里、你要什么结果,别指望它光看图就懂。

附图时的提示词(示例)
这是订单列表页的截图。右上角的"导出 CSV"按钮和筛选框挤在一起了。
只调整这两个控件的间距,不要改功能。改完再截一张图,确认它们不再重叠。

附了好几张图时,给每张起个名字,并说清楚它们之间要怎么比(比如"改之前"和"改之后")。

语音:听写和 ChatGPT Voice 是两回事

听写(dictation)ChatGPT Voice(语音对话)
做什么把你说的话转成文字,放进输入框。你看一遍、改好再发实时对话:可以随时打断它、问进度、让它开新任务
怎么开⌃⇧D / Ctrl+Shift+D对话里的 Start voice chat;快捷键 ⌃⇧V / Ctrl+Shift+V,也可以在 Settings > Voice 里设
适合要求很长、懒得打字边做别的边指挥、听它汇报
注意要在可用听写的环境里部分套餐可用、还在逐步开放;整个 App 同一时间只能有一个语音对话
两个小设置

常写多行提示词的话,可以在 Settings > General 里打开"多行提示词要按 Cmd+Enter 才发送",免得一回车就发出去。输入框空着的时候按 ↑,能把上一条提示词找回来。

03原理

斜杠命令:打一个 / 就有

在输入框里打 /,会弹出一张命令清单;接着打字就能筛选,比如打 /sta 只剩 /status。下面的窗口可以真的打:用方向键挑,回车选中,再回车执行。

不想打字就点:

全部命令,按用途分组

点任意一个,上面显示它的说明。标着"第 N 课"的,那一课会细讲。

清单会变

官方说,能用哪些命令取决于你的环境和权限,比如 /cloud 要云端可用、/approve 只在自动审查开着时有用。你启用的技能也会出现在这张清单里(第 8 课)。所以你的清单和这里不完全一样很正常,以你的 App 为准。

04原理

它在干活时,你又想说一句

不用等它做完。发出去的消息有两种去向:插话(Steer),加进正在跑的这一轮;排队(Queue),等这一轮做完再发。

插话像跟开车的人说"前面路口改左转"他马上调整路线。适合纠正方向、补一个漏掉的细节、告诉它新情况。
排队像在仪表盘上贴一张便签:"到了再去加油"等这一程开完再办。适合"做完这个再做那个"的下一件事。

下面这个窗口里,Codex 正在改导出功能。先在上方选好默认去向,再点一条消息发出去,看它去了哪。

Follow-up behavior(默认去向,示意)

在哪设置

默认去向在 Settings > General > Follow-up behavior 里选。那里还会显示一个快捷键:用这个快捷键发出的那一条,会走另一种方式,默认设置不变。具体是哪个键,看你 App 里的这一项。

排队的消息显示在输入框上方,发出去之前还能编辑、调整顺序、立刻发送或删除。

你想说的用为什么
"不对,要导出全部订单,不是当前页"插话方向错了,越早说越少白干
"文件名里别带空格"插话补一个它现在就用得上的细节
"做完后在 README 里写一句怎么用"排队下一件事,不该打断当前这件
"CSV 里的逗号要怎么转义?"/side和当前任务有关、但不该打断主线的旁支问题,开侧聊问(第 7 节)
命令行里不一样

在 Codex CLI 里,干活时按 Enter 是插话、按 Tab 是排队(第 14 课)。App 里的按键以设置里显示的为准,别照搬网上的命令行教程。

05原理

审阅面板:挑着收下改动

审阅面板是你验货的地方。它按 Git 算:不只 Codex 改的,你自己改的、项目里所有没提交的改动都在里面。切换范围看不同的东西,再按整体、文件、代码块三级暂存或撤销。

暂存(Stage)= 把验过的货放进"待发"篮子篮子就是 Git 的暂存区(staging area,也叫 index)。下次提交只会带走篮子里的东西。
撤销(Revert)= 把不要的货退掉丢掉这些还没提交的改动。
提交(Commit)= 封箱发货把篮子里的改动存成一个版本,以后能随时回到这里(第 4 课)。

五种范围

范围显示什么
Unstaged(默认)还没暂存的改动:Codex 的、你的,全都在
Staged已经放进暂存区的改动
Commit你选中的某一次提交
Branch当前分支和基础分支(比如 main)的差异
Last turnCodex 最近一轮改的

下面是 order-admin 此刻的状态:Codex 上一轮挪了导出按钮、这一轮改了 csv.ts 的两处;你自己手改了 README.md,早先还暂存过 .gitignore。切换范围看看,再试试暂存、撤销。

审阅
示意
斜体灰字是教程加的注释,真实的面板不会标出"谁改的"。

三级操作

级别怎么做适合
整体面板顶部的 Stage all / Revert all全部满意,或者全部不要
文件在某个文件上暂存、取消暂存或撤销这个文件改得对,那个文件不要
代码块(hunk)在 diff 里连在一起的一段改动上操作同一个文件里,一处要、一处不要

在上面的面板里只暂存 csv.ts 的一个代码块,你会看到它同时出现在 Staged 和 Unstaged。这是正常的 Git 行为:同一个文件一部分已暂存、一部分还没有。

Revert 会连你自己的改动一起撤

面板按 Git 算,分不出哪一行是谁改的。在 Unstaged 里点 Revert all,你手改的 README.md 也没了。只想退掉 Codex 那一轮,先用 Last turn 找到它改了哪,再按文件或代码块撤;更稳妥的做法是先把自己的改动提交掉。第 4 课细讲。

面板里的小操作

  • 点文件名:通常会在你选的编辑器里打开这个文件(默认编辑器在设置里选)。
  • 点文件名那一行的空白处:展开或收起它的 diff。
  • 按住 Cmd 点某一行:在编辑器里直接打开那一行。
  • 悬停某一行,点出现的 +:留一条行内评论(第 6 节演练)。

/review:让 Codex 来审

在输入框里打 /review,选 Review against a base branch(和基础分支比)或 Review uncommitted changes(审还没提交的改动)。它按优先级列出问题,以行内评论的形式出现在审阅面板里,不会改你的文件。你让它照着修时,正常的权限规则照样生效(第 3 课)。默认在当前对话里审,设置里可以改成 Detached,单独开一个审查对话。

审阅面板要求项目在一个 Git 仓库里。不是的话,App 会提示你创建一个。

06实战

演练:点名文件、留评论、让它照改

接着"导出订单 CSV"那个对话:用 @ 点名文件提一个修改,在审阅面板里对一行留评论,让 Codex 照评论改,最后暂存。中途它会停下来问你,允许或拒绝都能走完。

1
打开审阅面板
2
把鼠标移到要评论的那一行
3
点出现的 + 按钮
4
写下意见,提交
5
评论都留完了,再在对话里发一句话官方建议把意图说清楚,比如"按行内评论改,范围尽量小"。评论本身不会让它开工。

画面为教学示意:文件内容、测试数量和 Codex 说的话都是虚构的;审阅面板的范围名、评论步骤、权限规则与官方文档一致。手机宽度下,点窗口底部的"审阅"条可以展开审阅面板。

07实战

顺手的三样:终端、看用量、侧聊

集成终端让你自己跑命令、Codex 也看得到输出;/status 看上下文和额度;/side 问一个旁支问题,不打乱主线。

集成终端

每个对话都带一个终端,工作目录就是这个对话的项目(或 worktree)。点 New tab,再选 Terminal,或者按 Ctrl+`(macOS 上也是 Control 键)打开。跑测试、跑 lint、看 git status,不用切到别的程序。

关键是:Codex 能读到终端里当前的输出。你跑出一个报错,直接说"看一下终端里的报错"就行,不用复制粘贴。试试:打开终端,跑一下 npm run lint,再让 Codex 看。

页面停在这一节时,按 Ctrl+` 也能开关终端。

清屏按 Ctrl+L。Cmd+K(Windows 上是 Ctrl+K)在终端里是清屏还是打开命令菜单,两页官方文档说法不一,以你的 App 为准。经常要跑的命令,可以在本地环境里定义成 action,变成 App 里的快捷按钮,在这个终端里运行(第 12 课)。

/status:看上下文和额度

打 /status,会显示这个对话的 ID、上下文用了多少、额度(rate limits)还剩多少。想知道"还能用多少",就看这里;各套餐的额度是多少,看专题 A。上下文快满了怎么办,第 6 课讲 /compact。

/side:旁支问题开侧聊

打 /side(或 ⌘⌥S / Ctrl+Alt+S)开一个临时的侧聊,不打断主对话,问完回到主对话接着做。App 文档只说了这么多。命令行文档还写了三点:它是从当前对话临时分出去的一支(带着上下文);侧聊的记录和主对话分开;可以在 /side 后面直接写问题,比如 /side 文件名里的日期用的是哪个时区?。App 里是不是一样,以你的 App 为准。

我想…用
问一个和手上这件事有关的旁支问题,不想打断主对话/side
问一句和项目无关的话Quick chat
开始一件新的正事New chat
改变它正在做的这件事的方向插话(Steer,第 4 节)
08实战

练一练:该用哪一样

两组题。第一组选工具,第二组选审阅面板的范围。选完会看到解析。

这种情况用什么

该切到哪个范围

09深入

用得更顺手:快捷键、多文件夹、分享

给想用得更熟的人:一张快捷键表、一个项目挂几个文件夹时的规矩、把对话分享成只读快照,还有一些常见疑问。

常用快捷键

全部快捷键:Settings > Keyboard Shortcuts
做什么快捷键

有的快捷键只在对应功能可用时出现。Linux 和 Windows 基本一样,个别键不同;在 Settings > Keyboard Shortcuts 里可以按命令名搜,也可以直接按下一组键,看它对应哪个命令,还能改绑定。

一个项目挂几个文件夹

前端和后端、代码和文档分在两个文件夹?可以放进同一个本地项目:打开项目菜单,选 Edit project > Add folder。几个文件夹里的文件 Codex 都能读、能改。其中一个是主文件夹(指着它选 Make primary 可以换):

主文件夹其他文件夹
搜文件、读、改✓✓
新对话从这里开始✓—
Git 操作的默认位置✓—
自动发现 AGENTS.md、技能、config.toml✓—
PR 和 worktree 操作✓—(worktree 里开对话时,其他文件夹照样挂着)

几个文件夹是不同 Git 仓库时,审阅面板顶部有一个仓库选择器。Last turn 显示所有仓库里的改动(选择器显示 All repos);Unstaged、Staged、Branch 这些范围只看你选中的那一个仓库。毫不相干的工作还是分成不同的项目,上下文更干净。远程项目目前只支持一个文件夹。

分享只读快照 (macOS App)

想给同事看"它是怎么一步步改出来的":打开对话,点 Share,或者在输入框里打 /share。打开对话框时就开始上传,点 Copy link 才真正发布。个人账号:拿到链接的人都能看;工作区账号:只有这个工作区里登录的成员能看,还可以只限你邀请的人或组。

快照里有
  • 你能看到的消息
  • 推理摘要
  • 附的图片、它看过或生成的图片
  • 文件改动,包括路径和 diff
快照里没有
  • 工具调用和它们的输入输出
  • 它跑过的 shell 命令
  • 之后的新消息(快照不会自动更新)
  • 你的项目和电脑的访问权

Codex 会在上传前抹掉常见格式的密钥,但消息、图片、diff 里仍可能有敏感内容(比如文件路径),发出去之前自己打开链接看一遍。别人不能从快照 fork 原对话,只能把快照当附件导入新对话。已分享的链接在 ChatGPT 的数据控制(Data controls > Shared links)里查看或撤销。

其他顺手的设置

  • 把对话弹出成小窗:放在浏览器、编辑器旁边;打开 Always on top 让它一直浮在最上面。
  • Prevent sleep while running(Settings > General):你走开时,本地对话能继续跑,电脑不睡眠。
  • IDE context:App 和 IDE 扩展开着同一个项目时,在输入框这里打开它(或用 /ide-context),Codex 就能用你编辑器里打开的文件。
旧教程对照

· "thread / task":现在界面上叫 chat(对话)。
· "独立的 Codex App":2026 年 7 月 9 日起并入 ChatGPT 桌面 App(第 1 课)。
· "一个项目就是一个文件夹":现在一个本地项目可以挂多个文件夹,选一个当主文件夹。
· "Enter 插话、Tab 排队":那是命令行的按键;App 里在 Follow-up behavior 里选默认去向。
· "斜杠菜单里的 /prompts:名字":自定义提示词(custom prompts)已废弃,改用技能(第 8 课)。

审阅面板里为什么有我自己改的文件?
它显示的是 Git 仓库的状态,不只是 Codex 改的。你改的、Codex 改的、别的程序改的,只要没提交,都在 Unstaged 里。只看 Codex 最近一轮,切到 Last turn。
审阅面板是空的 / 打不开?
它要求项目在一个 Git 仓库里。普通文件夹,App 会提示你创建一个,或者在终端里跑 git init。
同一个文件为什么同时出现在 Staged 和 Unstaged?
你只暂存了它的一部分代码块,或者暂存之后它又改了一次。这是正常的 Git 行为,提交时只会带走 Staged 那部分。
留了行内评论,Codex 没反应?
评论只是留在面板里的意见。留完之后要在对话里再发一条消息,比如"按行内评论改,范围尽量小",它才会去处理。
我的斜杠菜单里没有某个命令?
可用的命令取决于环境和权限,比如没开云端就没有 /cloud 的用处,没开 Memories 就用不上 /memories。先更新 App,再以你的清单为准。
按 Cmd+K 没有清掉终端?
两页官方文档说法不一:终端页说 Cmd+K 打开的是 App 的命令菜单、不清屏,快捷键表却把它列成终端获得焦点时的清屏键之一。以你的 App 为准;两页都认可的清屏键是 Ctrl+L。
Start voice chat 找不到?
ChatGPT Voice 取决于套餐、开放进度和工作区设置。先更新 App;用不了的话,还可以用听写(Ctrl+Shift+D)把话转成文字。
10检验

小测验

8 道题,每题选完会立刻看到解析。