AI 相關紀錄 v6|Commands / Slash Commands:CLI 裡的 `/` 指令是什麼?
介紹 Claude Code 與 Codex CLI 的 Slash Commands,整理常用內建指令、自訂指令與 Skills 的差異。
W
前面已經整理過:
CLAUDE.md/AGENTS.md.claude//.codex/- settings / config
- Rules
接下來是在實際使用 Claude Code、Codex CLI 時很常碰到的:
/xxx
例如:
/init
/help
/model
/compact
這類通常稱為 Slash Commands。
可以先簡單理解成:
在互動式 CLI Session 裡,快速控制目前工作階段或執行特定功能的指令。
Slash Commands 可以做什麼?
不同工具提供的 Slash Commands 不完全一樣。
常見用途包括:
初始化專案設定
切換 Model
查看 Session 狀態
整理 Context
管理權限
執行 Code Review
管理 MCP
執行 Skill
例如:
/model
通常用來切換目前 Session 使用的 Model。
而:
/compact
則可以在對話變長時,壓縮目前 Context,保留重要資訊並釋放 Context Window。
所以 Slash Commands 比較像:
目前正在使用 CLI
↓
想快速執行某個功能
↓
輸入 /xxx
Claude Code
Claude Code 本身提供很多內建 Slash Commands。
例如:
/init
/help
/model
/compact
/permissions
/mcp
/agents
/skills
/review
輸入:
/
就可以查看目前環境中可使用的 Commands。
實際能看到哪些指令,也可能依 Claude Code 版本、平台或方案有所不同。
/init
前面已經介紹過:
/init
第一次進入專案時,可以讓 Claude Code 幫忙建立:
CLAUDE.md
作為專案工作指示的起點。
/model
例如:
/model
可以切換目前 Session 使用的 Model。
不用離開 Claude Code 再重新啟動。
/compact
當 Session 越來越長,Context 也會跟著增加。
這時可以使用:
/compact
讓 Claude 將目前對話整理成較精簡的摘要,再繼續工作。
可以簡單理解:
很長的 Session
↓
/compact
↓
整理重要資訊
↓
釋放部分 Context
↓
繼續目前工作
Claude Code 可以建立自己的 /xxx
除了內建 Command,Claude Code 也可以建立自己的工作指令。
例如以前很常使用:
.claude/
└─ commands/
└─ review.md
假設 review.md 裡寫著:
請檢查目前修改內容:
1. 是否有明顯 Bug
2. 是否影響既有功能
3. 是否缺少錯誤處理
4. 是否有不必要的修改
就可以在 Claude Code 中使用:
/review
執行這份 Prompt。
這適合把:
經常重複輸入的 Prompt
變成可以反覆使用的 Command。
.claude/commands/ 現在還能用嗎?
可以。
例如:
.claude/commands/review.md
仍然可以建立:
/review
不過 Claude Code 現在已經把 Custom Commands 的能力整合進 Skills。
所以如果現在才開始建立新的工作流程,官方比較建議使用:
.claude/
└─ skills/
└─ review/
└─ SKILL.md
Claude Skill 也可以直接變成 Slash Command
假設建立:
.claude/
└─ skills/
└─ review-code/
└─ SKILL.md
那這個 Skill 可以直接使用:
/review-code
呼叫。
所以可以先這樣理解:
舊方式
.claude/commands/review.md
↓
/review
現在建議
.claude/skills/review/SKILL.md
↓
/review
兩種方式目前都能使用。
但 Skills 可以加入更多功能,例如:
- Supporting files
- Script
- Reference
- Frontmatter 設定
- 控制是否允許 AI 自動呼叫
- 指定 Agent
- 指定工具
所以新的重複工作流程,比較適合直接從 Skill 開始。
內建 Slash Command 和 Skill 有什麼差別?
雖然使用起來可能都是:
/xxx
但背後其實不一定是同一種東西。
例如:
/help
/model
/compact
這類主要是 Claude Code 本身提供的功能。
而自己建立:
/review-code
/deploy
/check-api
則可能是 Skill。
可以先簡單理解:
內建 Slash Command
↓
控制 Claude Code 本身
Skill
↓
定義可以重複使用的 AI 工作流程
使用方式看起來相似,但目的不太一樣。
Codex CLI
Codex CLI 同樣提供 Slash Commands。
例如:
/init
/model
/status
/compact
/review
/skills
/mcp
/permissions
一樣可以直接輸入:
/
打開目前可用的 Slash Command 清單。
/init
Codex 的:
/init
用途和 Claude Code 類似,但產生的文件不同。
Claude Code:
/init
↓
CLAUDE.md
Codex:
/init
↓
AGENTS.md
所以同樣叫 /init,實際產生的是各自工具使用的專案指示文件。
/model
例如:
/model
可以切換目前 Codex Session 使用的 Model。
/status
/status
可以查看目前 Session 的一些狀態,例如:
- Model
- Approval
- Writable roots
- Context 使用狀況
在想確認:
現在 Codex 到底是用什麼設定執行?
時很方便。
/review
Codex 還有:
/review
可以讓 Codex Review 目前 Working Tree 的修改。
例如完成一個功能後,可以先:
/review
再搭配:
/diff
查看實際修改內容。
/mcp
/mcp
可以查看目前 Codex Session 可以使用的 MCP Server 與 Tool。
如果之後開始加入外部工具,這個 Command 會很常看到。
Codex 的 Skill 呼叫方式和 Claude 不太一樣
這裡是我覺得最容易搞混的地方。
Claude Code 的 Skill:
.claude/skills/review/SKILL.md
可以直接使用:
/review
但是 Codex 的 Skill 不是直接變成 /skill-name。
Codex 可以使用:
/skills
開啟 Skill 選擇器。
例如:
/skills
↓
選擇需要的 Skill
↓
將 Skill 加入目前工作
另外,也可以直接使用:
$skill-name
指定某個 Skill。
例如:
$skill-creator
或:
$my-review-skill
所以兩邊的差異可以簡單記成:
Claude Code
Skill
↓
/skill-name
而 Codex:
Codex
Skill
↓
/skills
或
$skill-name
這也是為什麼不能直接把 Claude Code 的 Slash Command 用法完全套到 Codex 上。
Codex 需要自己建立 Slash Command 嗎?
如果目的是:
建立一套可以重複使用的 AI 工作流程
目前比較適合使用:
Skill
例如:
.agents/
└─ skills/
└─ code-review/
└─ SKILL.md
然後透過:
/skills
或:
$code-review
來使用。
所以一般不需要另外設計一套:
/custom-command
格式來保存重複 Prompt。
可以先把兩個概念分開:
Slash Commands
↓
控制目前 CLI / Session
Skills
↓
保存可以重複使用的 AI 工作流程
Claude Code / Codex 簡單比較
| 功能 | Claude Code | Codex |
|---|---|---|
| 查看可用 Command | / | / |
| 初始化專案規則 | /init → CLAUDE.md | /init → AGENTS.md |
| 切換 Model | /model | /model |
| 壓縮 Context | /compact | /compact |
| Code Review | /review | /review |
| 查看 Skill | /skills | /skills |
| 自訂重複工作流程 | Skill | Skill |
| 直接指定 Skill | /skill-name | $skill-name 或 /skills |
| 舊式 Custom Command | .claude/commands/*.md | 不使用相同結構 |
Slash Command 和 Skill 怎麼分?
我自己會先用一個很簡單的方式判斷。
如果是:
我現在想控制 CLI 本身。
例如:
切換 Model
查看狀態
壓縮 Context
調整 Permission
初始化專案
通常使用 Slash Command。
例如:
/model
/status
/compact
/permissions
/init
如果是:
我有一套工作流程,之後想重複使用。
例如:
Code Review 流程
建立 Commit 流程
部署流程
檢查 API 流程
產生文件流程
比較適合做成:
Skill
最後簡單整理
Slash Commands 可以先理解成:
/xxx
↓
快速控制目前 CLI Session
或執行某個功能
例如:
/init
/model
/compact
/review
/status
如果只是偶爾需要某個功能,直接使用內建 Command 就好。
如果某段 Prompt 或工作流程開始一直重複:
每次都重新貼 Prompt
↓
開始覺得麻煩
↓
整理成 Skill
Claude Code:
.claude/skills/
↓
可以使用 /skill-name
Codex:
.agents/skills/
↓
使用 /skills 選擇
或
$skill-name
至於 Claude Code 舊有的:
.claude/commands/
目前仍然能使用,不需要急著把舊專案全部改掉。
但如果現在才開始建立新的重複工作流程,優先從 Skills 開始。