首页 › LLM大语言模型 › Codex专栏 › Codex中文教程 › 第三章:commands 与工作流入口

第三章:commands 与工作流入口

Commands 在 App 里解决什么问题​

Commands 不是“高级玩具”,而是 App 的快速入口:​

​

#FFyanwxDeeyQ text { white-space: pre; }#FFyanwxDeeyQ .fb0 { stroke: var(--N900-FG, 0.15); }#FFyanwxDeeyQ .fb0 {stroke: rgba(31,35,41, 0.15)}#FFyanwxDeeyQ .fx0 { stroke-miterlimit: 10; }#FFyanwxDeeyQ .fx0 {stroke-miterlimit: 10}#FFyanwxDeeyQ .fa1 { fill: rgb(187, 191, 196); }#FFyanwxDeeyQ .fa1 {fill: rgb(187, 191, 196)}#FFyanwxDeeyQ .fx1 { font: 400 12px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#FFyanwxDeeyQ .fx1 {font-style: normal}#FFyanwxDeeyQ .fx2 { text-anchor: middle; }#FFyanwxDeeyQ .fx2 {text-anchor: middle}#FFyanwxDeeyQ .fx3 { dominant-baseline: central; }#FFyanwxDeeyQ .fx3 {dominant-baseline: central}#FFyanwxDeeyQ .fx4 { stroke: none; }#FFyanwxDeeyQ .fx4 {stroke: none}#FFyanwxDeeyQ .fc0 { fill: var(--text-caption); }#FFyanwxDeeyQ .fc0 {fill: #646a73}#FFyanwxDeeyQ .fa2 { fill: var(--text-link-disabled); }#FFyanwxDeeyQ .fa2 {fill: rgb(187, 191, 196)}#FFyanwxDeeyQ .fa3 { fill: rgb(250, 241, 209); }#FFyanwxDeeyQ .fa3 {fill: rgb(250, 241, 209)}#FFyanwxDeeyQ .fx5 { font: 400 13px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#FFyanwxDeeyQ .fx5 {font-style: normal}#FFyanwxDeeyQ .fx6 { text-anchor: start; }#FFyanwxDeeyQ .fx6 {text-anchor: start}#FFyanwxDeeyQ .fx7 { dominant-baseline: alphabetic; }#FFyanwxDeeyQ .fx7 {dominant-baseline: alphabetic}#FFyanwxDeeyQ .fc1 { fill: rgb(0, 0, 0); }#FFyanwxDeeyQ .fc1 {fill: rgb(0, 0, 0)}#FFyanwxDeeyQ .fx8 { font: 400 13px LarkHackSafariFont, LarkEmojiFont, ui-monospace, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, "Noto Sans", Tahoma, "Nimbus Sans L", Arial, "Liberation Sans", "PingFang SC", "Hiragino Sans GB", "Noto Sans CJK SC", "Source Han Sans SC", "Source Han Sans CN", "Microsoft YaHei", "Wenquanyi Micro Hei", "WenQuanYi Zen Hei", STHeiti, SimHei, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji", system-ui; }#FFyanwxDeeyQ .fx8 {font-style: normal}#FFyanwxDeeyQ .fb1 { fill: var(--N900-FG, 0.15); }#FFyanwxDeeyQ .fb1 {fill: rgba(31,35,41, 0.15)}#FFyanwxDeeyQ .fb2 { fill: rgb(209, 217, 224); }#FFyanwxDeeyQ .fb2 {fill: rgb(209, 217, 224)}#FFyanwxDeeyQ .fa4 { fill: var(--bg-body); }#FFyanwxDeeyQ .fa4 {fill: #fff}ABC12345678你想做什么查看当前状态压缩上下文进入计划模式长目标持续推进审查改动管理外部工具管理插件直接说也可以“现在是什么模型和权限?”“帮我压缩上下文”“先给计划别执行”“一直做直到验证通过”“review 当前 diff”“看看 MCP”“打开插件列表”Command 更适合先输入 确认是否有 或同类实验入口/status/compact/plan-mode//goal/review/mcp/plugins

​

先学会在 App 里发现命令​

​

▫️

打开 Codex App 的任意项目线程。​

在输入框输入 /。​

看弹出的命令列表、命令说明和是否有实验标记。​

如果不确定某个命令能做什么,先输入 /help 或用自然语言问“解释当前可用 slash commands,不要执行任何改动”。​

​

​

#mXkRpSDapeiz text { white-space: pre; }#mXkRpSDapeiz .fb0 { stroke: var(--N900-FG, 0.15); }#mXkRpSDapeiz .fb0 {stroke: rgba(31,35,41, 0.15)}#mXkRpSDapeiz .fx0 { stroke-miterlimit: 10; }#mXkRpSDapeiz .fx0 {stroke-miterlimit: 10}#mXkRpSDapeiz .fa1 { fill: rgb(187, 191, 196); }#mXkRpSDapeiz .fa1 {fill: rgb(187, 191, 196)}#mXkRpSDapeiz .fx1 { font: 400 12px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#mXkRpSDapeiz .fx1 {font-style: normal}#mXkRpSDapeiz .fx2 { text-anchor: middle; }#mXkRpSDapeiz .fx2 {text-anchor: middle}#mXkRpSDapeiz .fx3 { dominant-baseline: central; }#mXkRpSDapeiz .fx3 {dominant-baseline: central}#mXkRpSDapeiz .fx4 { stroke: none; }#mXkRpSDapeiz .fx4 {stroke: none}#mXkRpSDapeiz .fc0 { fill: var(--text-caption); }#mXkRpSDapeiz .fc0 {fill: #646a73}#mXkRpSDapeiz .fa2 { fill: var(--text-link-disabled); }#mXkRpSDapeiz .fa2 {fill: rgb(187, 191, 196)}#mXkRpSDapeiz .fa3 { fill: rgb(254, 212, 164); }#mXkRpSDapeiz .fa3 {fill: rgb(254, 212, 164)}#mXkRpSDapeiz .fx5 { font: 400 13px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#mXkRpSDapeiz .fx5 {font-style: normal}#mXkRpSDapeiz .fx6 { text-anchor: start; }#mXkRpSDapeiz .fx6 {text-anchor: start}#mXkRpSDapeiz .fx7 { dominant-baseline: alphabetic; }#mXkRpSDapeiz .fx7 {dominant-baseline: alphabetic}#mXkRpSDapeiz .fc1 { fill: rgb(0, 0, 0); }#mXkRpSDapeiz .fc1 {fill: rgb(0, 0, 0)}#mXkRpSDapeiz .fb1 { fill: var(--N900-FG, 0.15); }#mXkRpSDapeiz .fb1 {fill: rgba(31,35,41, 0.15)}#mXkRpSDapeiz .fb2 { fill: rgb(209, 217, 224); }#mXkRpSDapeiz .fb2 {fill: rgb(209, 217, 224)}#mXkRpSDapeiz .fa4 { fill: var(--bg-body); }#mXkRpSDapeiz .fa4 {fill: #fff}AB12345来源官方 App Commands 明确列出当前 App 弹窗显示但官方页未列出只在 CLI 出现只听别人说过教程写法可以作为稳定入口写写成“当前版本可能出现,以你的 App 为准”放到 CX-12,不能写成 App 主线不写成确定命令

​

App 用户优先掌握的稳定命令​

​

#tOWKWcLTuHcT text { white-space: pre; }#tOWKWcLTuHcT .fb0 { stroke: var(--N900-FG, 0.15); }#tOWKWcLTuHcT .fb0 {stroke: rgba(31,35,41, 0.15)}#tOWKWcLTuHcT .fx0 { stroke-miterlimit: 10; }#tOWKWcLTuHcT .fx0 {stroke-miterlimit: 10}#tOWKWcLTuHcT .fa1 { fill: rgb(187, 191, 196); }#tOWKWcLTuHcT .fa1 {fill: rgb(187, 191, 196)}#tOWKWcLTuHcT .fx1 { font: 400 12px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#tOWKWcLTuHcT .fx1 {font-style: normal}#tOWKWcLTuHcT .fx2 { text-anchor: middle; }#tOWKWcLTuHcT .fx2 {text-anchor: middle}#tOWKWcLTuHcT .fx3 { dominant-baseline: central; }#tOWKWcLTuHcT .fx3 {dominant-baseline: central}#tOWKWcLTuHcT .fx4 { stroke: none; }#tOWKWcLTuHcT .fx4 {stroke: none}#tOWKWcLTuHcT .fc0 { fill: var(--text-caption); }#tOWKWcLTuHcT .fc0 {fill: #646a73}#tOWKWcLTuHcT .fa2 { fill: var(--text-link-disabled); }#tOWKWcLTuHcT .fa2 {fill: rgb(187, 191, 196)}#tOWKWcLTuHcT .fa3 { fill: rgb(225, 234, 255); }#tOWKWcLTuHcT .fa3 {fill: rgb(225, 234, 255)}#tOWKWcLTuHcT .fx5 { font: 400 13px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#tOWKWcLTuHcT .fx5 {font-style: normal}#tOWKWcLTuHcT .fx6 { text-anchor: start; }#tOWKWcLTuHcT .fx6 {text-anchor: start}#tOWKWcLTuHcT .fx7 { dominant-baseline: alphabetic; }#tOWKWcLTuHcT .fx7 {dominant-baseline: alphabetic}#tOWKWcLTuHcT .fc1 { fill: rgb(0, 0, 0); }#tOWKWcLTuHcT .fc1 {fill: rgb(0, 0, 0)}#tOWKWcLTuHcT .fx8 { font: 400 13px LarkHackSafariFont, LarkEmojiFont, ui-monospace, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, "Noto Sans", Tahoma, "Nimbus Sans L", Arial, "Liberation Sans", "PingFang SC", "Hiragino Sans GB", "Noto Sans CJK SC", "Source Han Sans SC", "Source Han Sans CN", "Microsoft YaHei", "Wenquanyi Micro Hei", "WenQuanYi Zen Hei", STHeiti, SimHei, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji", system-ui; }#tOWKWcLTuHcT .fx8 {font-style: normal}#tOWKWcLTuHcT .fb1 { fill: var(--N900-FG, 0.15); }#tOWKWcLTuHcT .fb1 {fill: rgba(31,35,41, 0.15)}#tOWKWcLTuHcT .fb2 { fill: rgb(209, 217, 224); }#tOWKWcLTuHcT .fb2 {fill: rgb(209, 217, 224)}#tOWKWcLTuHcT .fa4 { fill: var(--bg-body); }#tOWKWcLTuHcT .fa4 {fill: #fff}ABC1234567命令 或 列表App 主线用途发送产品反馈查看模型、工作区、审批、上下文状态切换计划模式审查当前改动查看 MCP 工具查看当前可用命令使用建议反馈 App 或命令问题任务前后都可用大任务先规划,不急着改合并前使用接外部工具后检查以当前 App 显示为准/feedback/status/plan-mode/review/mcp/help/

​

官方 App Commands 页面当前明确列出的命令很少,所以本篇不再把 CLI 的完整 slash command 表硬搬成 App 表。​

4. /plan-mode:先规划,不急着写​

示例:​

​

代码块​

Plain Text

​

如果你的 App 里显示的是 /plan 而不是 /plan-mode,按当前 App 弹窗为准;但教程中不要把两者写成永远等价。​

5. /goal、/loop:长目标或循环入口​

写法要保守:先确认你的 App 里真的有这个命令,再使用。不要在教程里保证所有用户都有。​

适合:​

•

长迁移。​

•

长重构。​

•

部署重试直到成功。​

•

原型持续打磨直到测试通过。​

不要这样写:​

​

代码块​

Plain Text

/goal 优化项目​

​

应该这样写:​

​

代码块​

Plain Text

/goal Complete the migration from legacy auth helpers to the new auth client without stopping until npm test -- auth passes and no files outside src/auth and tests/auth are changed.​

​

如果是 /loop,也要写清楚循环条件和停止条件:​

​

代码块​

Plain Text

/loop 每 10 分钟检查一次当前分支测试状态。只汇总失败原因,不修改文件;连续两次通过或发现需要人工决策时停止。​

​

长目标/循环类入口必须包含:​

•

任务范围。​

•

允许读写的文件。​

•

验证命令。​

•

失败时怎么停。​

•

最长运行边界。​

•

是否允许提交、推送或调用外部服务。​

如果当前环境看不到 /goal 或 /loop,不要硬找配置;先用普通自然语言让 Codex 分阶段执行,或查看当前 App 的实验功能入口。​

6. /review:把审查放进 App 工作流​

/review 用来审查当前工作区改动。App 用户可以把它放在每次合并前:​

​

代码块​

Plain Text

/review​

​

你也可以自然语言补充审查重点:​

​

代码块​

Plain Text

/review 重点看:是否改了范围外文件、是否缺测试、是否引入安全问题。​

​

注意:​

•

/review 不替代人工确认。​

•

高风险改动仍要读 diff。​

•

安全专项可以另用安全审查提示或专门 skill。​

权限命令与安全边界​

权限入口的名称可能随 App 版本变化。你应该通过 / 列表或 Settings 找到当前会话的权限设置,用来理解或调整 Codex 能自动做什么。​

学习阶段建议:​

•

不要开无限制自动执行。​

•

让 Codex 在写文件和运行危险命令前解释。​

•

对陌生项目使用更保守权限。​

当任务涉及删除、移动、大量写入、联网或外部服务时,先看权限。若当前 App 没有 /permissions,就去 Settings 或当前线程权限提示里看,不要假设命令一定存在。​

8. /mcp、Apps、Plugins​

这三个命令常被混淆:​

​

​

使用顺序:​

先确认要解决的问题。​

看 App 是否已有连接器或插件。​

用 /mcp、Apps 入口或 Plugins 入口确认工具是否可见。​

再让 Codex 使用它。​

CLI slash commands:只作为补充​

在终端里运行 codex 也有 slash commands。CLI 表只能帮助你理解概念,不能反推 App 一定支持同名命令。终端里输入 /help 查看当前 CLI 支持项。​

​

​

如果你需要完整 CLI 命令表,去 CX-12 或直接运行 codex 后输入 /help。本篇只保留 App 主线。​

Commands、Skills、Automations 的边界​

​

​

不要把所有东西都做成 command。长期流程优先沉淀为 Skill;周期任务用 Automation。​

常见问题​

Q1:App 和 CLI 的命令完全一样吗?​

不保证。以当前 App 的 / 列表、命令说明和官方 App Commands 文档为准。CLI 表只能辅助理解。​

Q2:/goal 或 /loop 会不会无限跑?​

有风险。所以必须写清楚停止条件、范围和验证方式。​

Q3:我应该背完整命令表吗?​

不用。掌握“输入 / 看当前命令”、/status、/plan-mode、/review、/mcp,再理解 Apps / Plugins / 权限入口,就足够开始。/goal、/loop 只在你的 App 确认可用时再学。​