2262 字
11 分钟
Codex CLI 使用指南

Codex CLI 是 OpenAI 推出的终端编码代理:不用切浏览器,直接在本地仓库里和 AI 对话,它能读你的文件、执行命令、改代码,而且每一步执行都有审批机制兜底。如果你习惯待在终端里干活,又厌倦了在网页 Chat 和编辑器之间来回粘贴上下文,这个工具值得一试。

这篇文章把我整理的安装、常用命令、AGENTS.md、MCP 和 Skills 的用法都过一遍,基本覆盖日常使用场景。

为什么选 Codex CLI#

先用一张表对比它和传统网页 Chat 的差异,核心就是”上下文”和”可控性”这两点:

维度传统 AI Chat 对话Codex CLI
入口浏览器/网页为主终端统一入口,直接在本地仓库内工作(编辑器无关)
上下文主要靠手动粘贴/描述可读取仓库文件与变更,任务上下文持续
可信控制缺少命令级审批与执行控制内建审批模式与会话状态,可控制何时执行命令
复用能力以对话模板/复制粘贴为主支持内置 Slash 命令、可扩展 Prompt 与 Skill
扩展需要手动切换外部工具通过 MCP 接入第三方工具与上下文(如 Figma)

安装与启动#

全局装一个 npm 包就行:

Terminal window
npm i -g @openai/codex

然后进入你的项目目录,直接运行:

Terminal window
codex

首次运行会提示登录,用 ChatGPT 账号或 API key 都可以。

常用快捷键#

进入交互界面后,这几个快捷键用得最多,建议先记住 /@! 三个:

  • /:命令列表
  • !:Shell 命令
  • Ctrl+J:换行
  • @:补全文件路径
  • Ctrl+G:外部编辑器输入
  • Ctrl+T:查看对话记录
  • Ctrl+C:退出
  • Tab:排队发送消息
  • Ctrl+V:粘贴图片(Mac/Windows/Linux 通用)
  • Esc Esc:编辑上一条消息

Slash 命令速查#

在 CLI 里输入 / 会弹出命令列表,支持模糊过滤。内置命令不多,一张表就能列全:

命令用途
/approvals设置审批模式(例如只读/自动/需确认)
/compact对话压缩,保留要点
/diff查看 Git diff(含未跟踪文件)
/exit /quit退出 CLI
/feedback发送诊断与反馈
/init生成 AGENTS.md 模板
/logout退出登录
/mcp查看已配置 MCP 工具
/mention添加文件/路径到上下文
/model切换模型
/new开新对话(同目录)
/review代码/改动审查
/status查看会话配置与状态
/undo撤销最近一次变更

一套典型的工作流程#

上面的命令单看有点抽象,串成一个实际流程就清楚了:初始化、设权限、加上下文、看改动、审查。

初始化项目指令#

/init

生成 AGENTS.md 模板,作为项目级指令入口,后面会专门讲怎么写。

限制或放开权限#

/approvals

选择审批策略(例如只读/自动/需确认)。第一次用建议保守一点,熟了再放开。

把关键文件加入上下文#

这一步的核心是:把你正在处理的关键文件加入上下文,不必拘泥固定路径。两种常见场景:

  • 如果有现成文件(例如纯 HTML 待办演示):
    /mention index.html
  • 如果目录暂时还不存在(或准备新建):
    /mention README.md
    然后让 Codex 生成/创建你要的目标文件。

文件加入上下文后,后续指令会自动带上,联动修改很方便。

查看和审查改动#

改完之后先看 diff,再让它自己审一遍:

/diff
/review

实战:生成一个纯 HTML 待办页#

拿一个完整例子走一遍上面的流程。目标:生成一个可直接打开的静态待办页面(HTML + CSS + 原生 JS,支持本地保存)。

先准备一个空项目:

Terminal window
mkdir codex-demo-page
cd codex-demo-page
touch index.html
codex

然后在 Codex CLI 里直接描述需求:

请生成一个纯 HTML 待办事项页面:包含任务输入、列表、完成状态、筛选(全部/未完成/已完成),数据存 localStorage;要求响应式、排版清晰、配色干净。

生成后检查改动:

/diff
/review

想在浏览器里看效果,起个本地服务即可:

Terminal window
python -m http.server 8000

AGENTS.md:给仓库写持续指令#

AGENTS.md 的作用是为当前仓库提供持续生效的指令,Codex 会自动读取并遵守——相当于把你每次都要重复交代的规矩写死在仓库里。用 /init 就能生成模板。

下面是我推荐的模板结构,可以直接复制改:

AGENTS.md
## Repository Guidelines
### 项目结构与模块组织
- 说明主要目录与模块的职责边界
- 指出入口文件与页面组件位置
### 构建与开发命令
- 统一列出安装、开发、构建、预览命令
### 编码风格
- 缩进、命名规范、组件职责边界
### 数据存储与约束
- localStorage key 命名、后端接口、字段约束
### 代码审查重点
- 修改功能时需补充的测试点
- 高风险模块注意事项
### 输出要求(每次改动后需说明)
- 说明改动内容(做了什么)
- 说明影响范围(哪些文件/模块/功能受影响)
- 提供回滚或兜底方案(如何恢复到改动前)

MCP:接入外部工具#

MCP(Model Context Protocol)让 Codex 能接入第三方工具与上下文,比如设计稿、浏览器、文档。下面以 Figma 为例,两种配置方式任选。

方式一,直接用命令行添加:

Terminal window
# 使用 HTTP MCP Server(以 Figma 为例,URL 以实际服务商提供为准)
codex mcp add figma --url https://mcp.figma.com/mcp
# 查看已配置的 MCP 列表
codex mcp list

方式二,写配置文件(项目级或全局都行):

# ~/.codex/config.toml 或 <repo>/.codex/config.toml
[mcp_servers.figma]
url = "https://mcp.figma.com/mcp"

配置好之后,在 CLI 里输入 /mcp 就能查看已接入的工具。

Skills:把常用流程封装成可复用能力#

如果你有一套固定流程反复在用(比如每天生成日报),可以封装成 Skill。

一个 Skill 长什么样#

Skill 就是一个文件夹,核心是 SKILL.md(必需),外加可选的 scripts/references/assets/SKILL.md 用 YAML Front Matter 描述元信息(至少 namedescription),正文写具体流程说明。

怎么触发#

Codex 启动时会扫描可用 Skill,但只读取 namedescription 用于匹配;只有被触发时才加载完整内容,所以不用担心 Skill 多了拖慢上下文。触发方式两种:

  • 显式:输入 /skills 选择,或在提示中直接写 $skill-name
  • 隐式:当任务描述与 Skill 的 description 匹配时,Codex 自动启用

保存位置#

Codex 会按由近到远的顺序扫描这些目录:

  1. $CWD/.codex/skills
  2. $CWD/../.codex/skills
  3. $REPO_ROOT/.codex/skills
  4. $CODEX_HOME/skills(macOS/Linux 默认 ~/.codex/skills
  5. /etc/codex/skills
  6. 系统内置 Skills(随 Codex 发布)

注意同名 Skill 不会去重,选择器里可能同时出现多个。技能目录用软链接也是支持的。

创建与安装#

方式 1:使用内置 $skill-creator 在 Codex CLI 中描述你要的能力,Codex 会引导你创建 Skill。

方式 2:手动创建 在任意有效技能目录下创建文件夹与 SKILL.md,保存后重启 Codex 生效。

安装官方示例(experimental)

$skill-installer install the create-plan skill from the .experimental folder

安装完成后同样需要重启 Codex。

SKILL.md 完整示例#

拿一个”生成 git 日报”的 Skill 做例子,可以直接复制改:

---
name: Daily Git Log Report
description: 根据指定目录路径生成日报摘要
---
## 目标
在指定仓库与目录范围内,收集当天 git log 并生成日报摘要。
## 输入要求
在执行前向用户确认以下信息:
1) REPO_PATH:仓库路径(绝对路径)
2) FOCUS_PATH:仅统计的目录或文件路径(相对 REPO_PATH)
3) DATE:日报日期(YYYY-MM-DD;若未提供则使用当天)
## 执行步骤
1) 在 shell 中执行 git log,范围限定为 DATE 当天。
2) 排除 merge commit。
3) 输出清单 + 摘要两段。
## 命令模板
git -C "$REPO_PATH" log \
--since "$DATE 00:00" \
--until "$DATE 23:59" \
--no-merges \
--date=short \
--pretty=format:"%h %ad %s (%an)" \
-- "$FOCUS_PATH"
## 输出格式
### Commit 清单
- 逐条列出:hash + 日期 + 标题 + 作者
### 日报摘要
- 归纳为 3~6 条重点
- 按功能模块或主题归类

没有 Hooks?替代方案#

官方文档目前聚焦在 Slash 命令、Skills 和 MCP 上,没有描述与”自动触发 Hook”等价的机制。想要类似效果,可以这样绕:

  • Git hooks:在 pre-commit / pre-push 中调用 Codex 或固定脚本
  • Skills:把流程固化成可分享的能力(比脚本更可读)

总结#

Codex CLI 本质上是一个跑在终端里的本地编码代理,直接在你的仓库里执行、编辑与协作。它解决的是网页 Chat 的几个老问题:上下文零散、工具切换频繁、流程难复用、权限不可控。上手成本不高,装完先用 /init/approvals 把规矩立好,再把常用流程沉淀成 AGENTS.md 和 Skills,日常开发里能省下不少重复沟通。

参考#

Codex CLI 使用指南
https://blog.961121.xyz/posts/codex-cli/
作者
LOOK
发布于
2026-01-29
许可协议
CC BY-NC-SA 4.0