使用 Commands
說明 Claude Code slash commands、Skill commands、legacy commands、MCP prompts 和常用命令分組。
Command 不是另一套擴充套件系統,而是 Claude Code 會話裡的入口層。它可以開啟 CLI 內建功能,也可以呼叫 Skill,還可以觸發 MCP server 暴露的 prompt。先分清背後是哪一類能力,才知道該去哪裡配置。——翔宇
這一章用 12 分鐘換什麼:前面已經講完 Skills、Subagents、Hooks。現在把 / 命令體系收口。讀完你應該能判斷一個命令是 CLI 內建邏輯、官方 bundled skill、自定義 Skill,還是 MCP prompt,並知道常用命令該怎麼歸類、怎麼傳參、怎麼排障。
1. Command 解決什麼問題
Claude Code 的 slash command 是會話內控制入口。
它負責:
- 切模型、調 effort、看用量。
- 管理許可權、MCP、記憶、Hooks、Plugins。
- 清理、壓縮、恢復上下文。
- 開啟 diff、狀態、配置、診斷面板。
- 執行官方 bundled skills。
- 執行你寫的 Skills。
- 執行 MCP server 暴露的 prompts。
- 啟動 web / remote / schedule / review 等工作流。
基礎規則:
- 輸入
/可以看到當前可用命令。 - 輸入
/後繼續打字可以過濾。 - 命令只在訊息開頭識別。
- 命令後的文本會作為引數傳入。
- 可用命令取決於平臺、計劃、登入狀態、版本、配置和環境變數。
第一性原理:/command 是入口,不一定是同一種實現。排障時先判斷它背後是 built-in、bundled skill、自定義 Skill,還是 MCP prompt。
flowchart TD
Slash["使用者輸入 /command"]
BuiltIn["Built-in command"]
Bundled["Bundled skill"]
Custom["Custom Skill command"]
Legacy["Legacy custom command"]
MCP["MCP prompt"]
CLI["Claude Code CLI 固定邏輯"]
Skill["Skill 機制"]
CommandFile[".claude/commands/*.md"]
MCPServer["MCP server 暴露 prompt"]
Slash --> BuiltIn
Slash --> Bundled
Slash --> Custom
Slash --> Legacy
Slash --> MCP
BuiltIn --> CLI
Bundled --> Skill
Custom --> Skill
Legacy --> CommandFile
MCP --> MCPServer
style BuiltIn fill:#e0f2fe,stroke:#0284c7,stroke-width:2px
style Bundled fill:#dcfce7,stroke:#22c55e,stroke-width:2px
style MCP fill:#fef3c7,stroke:#f59e0b,stroke-width:2px
2. 四類命令入口
第一類:Built-in commands。
這些命令列為由 Claude Code CLI 實現。例如:
/help/clear/compact/config/model/permissions/mcp/memory/hooks/plugin/status
它們通常開啟介面、修改會話狀態、管理配置或呼叫固定功能。
第二類:Bundled skills。
官方文件把帶 Skill 標記的命令稱為 bundled skills。它們和你自己寫的 Skill 用同一套機制:本質是一個 prompt handed to Claude。典型例子包括:
/debug/simplify/batch/loop/claude-api/fewer-permission-prompts
第三類:Custom Skill commands。
你在 .claude/skills/<name>/SKILL.md 裡寫 Skill,就會得到:
/<name>第四類:MCP prompts。
MCP server 可以暴露 prompts,Claude Code 會把它們顯示成:
/mcp__<server>__<prompt>判斷背後機制:管理狀態多半是 built-in;執行流程多半是 Skill;連線外部系統的 prompt 多半來自 MCP。
3. Built-in command 和 bundled skill 的區別
Built-in command:
- 行為寫在 Claude Code CLI 裡。
- 通常直接改變會話、配置、許可權、模型或 UI。
- 不依賴 Claude 自己理解一段 prompt 後執行。
- 典型例子:
/model、/compact、/permissions、/mcp。
Bundled skill:
- 是官方內建 Skill。
- 給 Claude 一段詳細流程,讓 Claude 按任務執行。
- 可以像普通 Skill 一樣被 Claude 在相關場景自動呼叫。
- 典型例子:
/debug、/simplify、/batch、/loop。
這解釋了一個常見差異:
/compact會直接觸發上下文壓縮。/debug會讓 Claude 啟動除錯工作流,讀取日誌、分析問題、給出處理建議。
不要把 bundled skill 當固定按鈕:它仍然經過 Claude 的理解和執行。高風險動作仍要看 permissions、Hooks 和人工確認。
4. 命令引數怎麼傳
官方約定:
<arg>表示必填引數。[arg]表示可選引數。- 命令後的文本會作為引數傳給命令。
例子:
/compact focus on the migration plan and unresolved test failures/plan fix the authentication redirect bug/batch migrate src/ from Solid to React/debug the MCP server disconnects after OAuth對 Skill command 來說,這些引數會進入 $ARGUMENTS。如果 Skill 宣告瞭命名引數,也可以用 $0 或 $name 讀取。
引數要像任務 brief:不要只寫 /debug,能補一句現象、範圍、錯誤文本,就補一句。
5. 命令可用性不是固定的
不是所有命令每個人都能看到。
官方說明可用性取決於:
- Claude Code 版本。
- 平臺:macOS、Windows、Linux、WSL、Web、Desktop。
- 登入方式和訂閱計劃。
- 是否啟用 Claude Code on the web。
- 是否安裝
ghCLI。 - 是否在 git repo 中。
- 是否設定 Bedrock / Vertex 環境變數。
- 是否啟用 Remote Control、Plugins、Agent teams、sandbox 等功能。
例子:
/desktop只在 macOS 和 Windows 場景出現。/setup-bedrock依賴 Bedrock 環境。/setup-vertex依賴 Vertex 環境。/autofix-pr依賴ghCLI 和 Claude Code on the web 許可權。/sandbox取決於平臺和 sandbox 支援。
不要寫死“所有人都有這個命令”:教程裡可以講命令型別和用途,實際可用列表以你當前 / 選單和官方 Commands 頁面為準。
6. 上下文管理類命令
這類命令控制當前會話的上下文。
/clear:開始一個空上下文的新對話。舊會話仍可在/resume找回。/compact [instructions]:壓縮當前對話,保留摘要繼續工作。/context:視覺化當前上下文使用情況,並提示最佳化方向。/resume [session]:恢復歷史會話。/branch [name]:從當前點建立會話分支。/fork預設是 alias,但在 forked subagent 環境變數開啟時含義不同。/rewind:回到之前的對話或程式碼 checkpoint。/btw <question>:問一個 side question,不加入主會話歷史。
什麼時候用:
- 上下文太重:先
/context,再/compact。 - 想幹淨開始:用
/clear。 - 想回到舊會話:用
/resume。 - 想旁路問小問題:用
/btw。
/clear 和 /compact 不同:前者開新上下文,後者壓縮當前上下文繼續幹同一件事。
7. 配置和許可權類命令
這類命令管 Claude Code 的行為邊界。
/config或/settings:開啟設定介面,管理主題、模型、輸出風格等。/permissions或/allowed-tools:管理 allow、ask、deny 許可權規則。/mcp:管理 MCP 連線和 OAuth 認證。/memory:檢視和編輯CLAUDE.md、CLAUDE.local.md、rules、auto memory。/hooks:檢視 Hook 配置。/plugin:管理 Plugins。/skills:列出可用 Skills,並可按 token count 排序。/agents:管理 Subagents。/sandbox:切換 sandbox mode,取決於平臺支援。
這些命令是“看當前真實狀態”的入口。排障時不要只看檔案,先用命令確認當前 session 看到什麼。
排障順序:許可權問題看 /permissions,MCP 問題看 /mcp,記憶問題看 /memory,Hook 問題看 /hooks,Skill 問題看 /skills。
8. 模型、用量和狀態類命令
這類命令影響執行成本、速度和可觀察性。
/model [model]:選擇或切換模型。/effort [level|auto]:設定 reasoning effort。/fast [on|off]:切換 fast mode。/usage:檢視 cost、plan usage limits 和 activity stats。/cost:/usagealias。/stats:/usagealias,開啟 Stats tab。/status:檢視版本、模型、賬號、連線狀態。/doctor:診斷安裝和設定。/release-notes:檢視 changelog。
什麼時候用:
- 回答變慢或成本異常:
/usage、/context。 - 模型不對:
/model。 - 推理深度不合適:
/effort。 - 安裝或登入異常:
/doctor。
模型切換會重新讀取歷史:有歷史輸出的會話裡切模型,Claude Code 會提示確認,因為下一輪需要重新讀完整歷史。
9. 程式碼工作流類命令
這類命令圍繞 git、diff、review、修復和分支。
/diff:開啟互動式 diff viewer,看未提交變更和每輪 diff。/review [PR]:在本地當前會話 review PR。/security-review:分析當前分支 pending changes 的安全風險。/autofix-pr [prompt]:啟動 Claude Code on the web session,跟蹤 PR 裡的 CI 和 review comment 修復。/ultrareview [PR]:在 cloud sandbox 做更深的 multi-agent review。/ultraplan <prompt>:在 cloud session 草擬 plan,再執行或帶回本地。/batch <instruction>:官方 bundled skill,大規模並行改程式碼。/simplify [focus]:官方 bundled skill,審查近期改動並修復可複用性、質量和效率問題。
邊界:
- 本地小 review:
/review或/security-review。 - 大範圍批次遷移:
/batch。 - 需要 cloud/web session:
/autofix-pr、/ultraplan、/ultrareview。
批次和 cloud 命令要先看工作區狀態:執行前先確認 git clean / 當前分支 / PR 目標,避免把未準備好的變更交給遠端 workflow。
10. 自動化和長期任務類命令
這類命令讓 Claude Code 持續或定時工作。
/loop [interval] [prompt]:官方 bundled skill。讓 prompt 按間隔重複執行;不寫 interval 時 Claude 自行節奏。/schedule [description]:建立、更新、列出或執行 routines。/tasks:列出和管理後臺任務,也可用/bashes。/remote-control:讓當前 session 可從 claude.ai remote control。/remote-env:配置 web sessions 的預設 remote environment。
使用建議:
- 需要週期檢查:
/loop。 - 需要真正定時 routine:
/schedule。 - 已經有後臺任務:
/tasks。 - 需要手機或網頁接管本地會話:
/remote-control。
長期自動化要更窄:prompt、許可權、工作目錄、分支、輸出和通知都要收緊,不要把模糊任務放進迴圈。
11. 平臺和整合類命令
這類命令連線外部入口。
/desktop或/app:把當前 session 繼續到 Claude Code Desktop。/ide:管理 IDE integration。/chrome:配置 Claude in Chrome。/mobile、/ios、/android:顯示移動端二維碼。/install-github-app:設定 Claude GitHub Actions app。/install-slack-app:安裝 Claude Slack app。/web-setup:用本地ghCLI credentials 連線 Claude Code on the web。/teleport或/tp:把 web session 拉回 terminal。
這些命令可用性高度依賴平臺、登入狀態和賬號許可權。
平臺命令先看當前入口:你在純終端、Desktop、Web、Remote Control、IDE 裡的可用命令不完全一樣。
12. 建立專案和團隊交接類命令
這類命令幫助你啟動或總結工作。
/init:初始化專案CLAUDE.md。設定CLAUDE_CODE_NEW_INIT=1後,會進入更互動的初始化流程,覆蓋CLAUDE.md、Skills、Hooks、personal memory 等 artifact。/team-onboarding:根據過去一段 Claude Code 使用歷史生成團隊 onboarding guide。/insights:生成 session 使用報告,分析專案區域、互動模式和摩擦點。/recap:生成當前 session 的一行 summary。/export [filename]:匯出當前會話。
/init 只是起點:生成的 CLAUDE.md 要人工審查,刪噪音、補隱性團隊規則,再提交。
13. 自定義命令:優先寫 Skill
官方已經把 custom commands 合併進 Skills。
推薦路徑:
.claude/skills/<name>/SKILL.md示例:
.claude/skills/review-diff/SKILL.md呼叫:
/review-diff最小 Skill:
---
description: Reviews the current git diff for correctness, security risks, missing tests, and unclear error handling.
---
Review the current diff.
!`git diff HEAD`
Return:
- Findings ordered by severity
- Test gaps
- Suggested next commands舊格式仍可用:
.claude/commands/<name>.md但新寫內容優先 Skill,因為 Skill 支援:
- 目錄結構。
- 附屬檔案。
- frontmatter。
- 自動載入。
disable-model-invocation。allowed-tools。context: fork。
不要再新建 legacy commands:除非你在維護舊儲存庫。新命令統一做 Skill。
14. MCP prompts:外部系統暴露命令
MCP server 可以暴露 prompts。Claude Code 會把它們顯示成 command:
/mcp__<server>__<prompt>例如:
/mcp__github__list_prs/mcp__linear__triage_issue ENG-123適合:
- 外部系統裡的固定 workflow。
- 從 issue tracker 拉任務。
- 從內部 docs 做查詢。
- 基於資料庫 schema 生成分析任務。
- 呼叫內部平臺暴露的 prompt。
邊界:
- MCP prompt 來自 server,不來自本地
.claude/skills/。 - server 斷開或未認證時,對應 command 可能不可用。
- prompt 結果會進入當前對話。
- 外部系統 prompt 同樣要考慮許可權和 prompt injection。
MCP prompt 是入口,MCP tool 是能力:prompt 可以組織任務,但真正能讀寫什麼仍取決於 MCP server tools、OAuth scope 和 Claude Code permissions。
15. UserPromptExpansion Hook 和命令展開
官方 Hooks reference 裡有 UserPromptExpansion。它會在 slash command、custom command、Skill command 或 MCP prompt 展開後觸發。
它可以看到 expansion 型別,例如:
slash_commandmcp_prompt
適合:
- 記錄哪些命令被展開。
- 審計 high-risk command 使用。
- 對某些命令展開內容做額外檢查。
不適合:
- 替代 command 本身。
- 自動批准高風險外部操作。
- 記錄完整 prompt 或敏感引數到外部系統。
命令展開可能包含使用者輸入和外部內容:審計時只記錄必要元資訊,不要預設儲存完整正文。
16. 常用命令速查
上下文:
/context:看上下文佔用。/compact:壓縮當前會話。/clear:開新上下文。/resume:恢復歷史會話。/btw:不汙染主歷史的小問題。
配置:
/config:開啟設定。/permissions:管理工具許可權。/mcp:管理 MCP。/memory:管理記憶。/hooks:檢視 hooks。/plugin:管理 plugins。/skills:檢視 skills。/agents:管理 subagents。
程式碼:
/diff:看 diff。/review:本地 PR review。/security-review:安全審查。/simplify:官方 Skill,簡化和修復近期改動。/batch:官方 Skill,大範圍並行修改。
執行狀態:
/model:切模型。/effort:調 reasoning effort。/usage:看用量。/status:看版本、賬號、連線狀態。/doctor:診斷環境。
自動化:
/loop:重複執行 prompt。/schedule:管理 routines。/tasks:管理後臺任務。
記不住命令時輸入 /:即時選單比靜態教程更可靠,因為它反映你當前版本和環境。
17. 什麼時候不要做 command
不要把這些做成 command:
- 每次會話都要知道的規則:寫
CLAUDE.md或.claude/rules/。 - 必須自動執行的動作:寫 Hook。
- 外部工具連線:接 MCP。
- 只用一次的提示詞:直接對話。
- 需要使用者多輪決策的複雜流程:先在普通對話裡跑順,再沉澱成 Skill。
- 生產釋出這類高風險動作:可以有 command,但必須配 permissions、確認和回復流程。
Command 不是規則容器:它是入口。長期規則、自動化、許可權和外部連線要放到各自正確層。
18. 常見故障:命令看不到
按這個順序查:
- 輸入
/看當前選單。 - 確認 Claude Code 版本是否支援該命令。
- 確認平臺和賬號計劃。
- 確認是否需要特定環境變數。
- 如果是 Skill command,執行
/skills看是否被載入。 - 如果是 MCP prompt,執行
/mcp看 server 是否 connected / authenticated。 - 如果是 plugin command,執行
/plugin或/reload-plugins。 - 如果是 legacy command,確認
.claude/commands/<name>.md路徑存在。
先分型別再排障:built-in 查版本和環境;Skill 查 /skills;MCP prompt 查 /mcp;plugin 查 /plugin。
19. 常見故障:命令沒有按預期執行
常見原因:
- 命令不在訊息開頭。
- 引數太少,Claude 不知道範圍。
- Bundled skill 依賴模型判斷,不是固定指令碼。
- 自定義 Skill description 太泛或正文不具體。
- MCP server 認證過期。
- permissions 阻止了後續工具呼叫。
- Hook 阻斷了命令觸發的工具呼叫。
- 上下文太重,Skill 內容被壓縮後丟失關鍵部分。
處理:
- 把命令放在訊息第一行。
- 引數寫成具體任務 brief。
- 對自定義 Skill 明確輸入、步驟、輸出、驗證。
- 用
/permissions看是否被 ask / deny。 - 用
/hooks看是否有阻斷。 - 用
/debug排查 Claude Code session 行為。
命令只是開始:命令之後仍然會進入工具呼叫、許可權、Hooks、上下文這些系統。問題不一定在命令本身。
20. 一個專案的推薦命令沉澱方式
先不要為了“有工具感”建立一堆 slash commands。推薦順序:
- 先在普通對話裡跑通流程。
- 第二次重複時,整理成 checklist。
- 第三次重複時,寫成
.claude/skills/<name>/SKILL.md。 - 如果流程有副作用,加
disable-model-invocation: true。 - 如果需要工具,寫
allowed-tools,但安全拒絕仍放 permissions。 - 如果流程需要外部系統,接 MCP。
- 如果必須每次發生,寫 Hook。
- 如果多個儲存庫複用,再打包 Plugin。
命令是沉澱出來的,不是預設出來的:真實重複出現的流程,才值得變成 /name。
21. 自檢清單
學完這一章,你應該能做到:
- 我能解釋 built-in command 和 bundled skill 的區別。
- 我知道 custom commands 推薦用 Skills 實現。
- 我知道 legacy
.claude/commands/仍可用,但新內容優先.claude/skills/。 - 我知道 MCP prompts 會顯示為
/mcp__server__prompt。 - 我知道命令只在訊息開頭識別。
- 我知道命令可用性受平臺、計劃、版本、環境影響。
- 我知道
/clear和/compact的區別。 - 我知道許可權、MCP、記憶、Hooks、Skills、Subagents 分別用哪個命令排查。
- 我知道高風險流程不能只靠 command,要配 permissions 和確認。
- 我知道命令不是長期規則、自動化或外部連線的替代品。
22. 術語速查
Slash command:會話中以/開頭的命令入口。Built-in command:Claude Code CLI 實現的固定命令。Bundled skill:官方隨 Claude Code 提供的 Skill command。Custom Skill command:由.claude/skills/<name>/SKILL.md生成的/name。Legacy custom command:由.claude/commands/<name>.md生成的舊式 command。MCP prompt:MCP server 暴露成 slash command 的 prompt。/compact:壓縮當前上下文。/clear:清空上下文並開始新對話。/permissions:管理 allow / ask / deny 許可權規則。/mcp:檢視 MCP server 和 OAuth 狀態。/memory:檢視和編輯記憶檔案與 auto memory。/hooks:檢視 Hook 配置。/skills:列出可用 Skills。/agents:管理 Subagents。UserPromptExpansion:slash command 或 MCP prompt 展開後的 Hook 事件。