---
title: "使用 Commands"
description: "說明 Claude Code slash commands、Skill commands、legacy commands、MCP prompts 和常用命令分組。"
canonical: "https://xiangyugongzuoliu.com/tag/claude-code"
verifiedAt: "2026-05-05"
---

Command 不是另一套擴充套件系統，而是 Claude Code 會話裡的入口層。它可以開啟 CLI 內建功能，也可以呼叫 Skill，還可以觸發 MCP server 暴露的 prompt。先分清背後是哪一類能力，才知道該去哪裡配置。——Aaron

> [!NOTE]
> **這一章用 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 等工作流。

基礎規則：

- 輸入 `/` 可以看到當前可用命令。
- 輸入 `/` 後繼續打字可以過濾。
- 命令只在訊息開頭識別。
- 命令後的文本會作為引數傳入。
- 可用命令取決於平臺、計劃、登入狀態、版本、配置和環境變數。

> [!IMPORTANT]
> **第一性原理**：`/command` 是入口，不一定是同一種實現。排障時先判斷它背後是 built-in、bundled skill、自定義 Skill，還是 MCP prompt。

```mermaid
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，就會得到：

```text
/<name>
```

第四類：MCP prompts。

MCP server 可以暴露 prompts，Claude Code 會把它們顯示成：

```text
/mcp__<server>__<prompt>
```

> [!TIP]
> **判斷背後機制**：管理狀態多半是 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 啟動除錯工作流，讀取日誌、分析問題、給出處理建議。

> [!IMPORTANT]
> **不要把 bundled skill 當固定按鈕**：它仍然經過 Claude 的理解和執行。高風險動作仍要看 permissions、Hooks 和人工確認。

## 4. 命令引數怎麼傳

官方約定：

- `<arg>` 表示必填引數。
- `[arg]` 表示可選引數。
- 命令後的文本會作為引數傳給命令。

例子：

```text
/compact focus on the migration plan and unresolved test failures
```

```text
/plan fix the authentication redirect bug
```

```text
/batch migrate src/ from Solid to React
```

```text
/debug the MCP server disconnects after OAuth
```

對 Skill command 來說，這些引數會進入 `$ARGUMENTS`。如果 Skill 宣告瞭命名引數，也可以用 `$0` 或 `$name` 讀取。

> [!TIP]
> **引數要像任務 brief**：不要只寫 `/debug`，能補一句現象、範圍、錯誤文本，就補一句。

## 5. 命令可用性不是固定的

不是所有命令每個人都能看到。

官方說明可用性取決於：

- Claude Code 版本。
- 平臺：macOS、Windows、Linux、WSL、Web、Desktop。
- 登入方式和訂閱計劃。
- 是否啟用 Claude Code on the web。
- 是否安裝 `gh` CLI。
- 是否在 git repo 中。
- 是否設定 Bedrock / Vertex 環境變數。
- 是否啟用 Remote Control、Plugins、Agent teams、sandbox 等功能。

例子：

- `/desktop` 只在 macOS 和 Windows 場景出現。
- `/setup-bedrock` 依賴 Bedrock 環境。
- `/setup-vertex` 依賴 Vertex 環境。
- `/autofix-pr` 依賴 `gh` CLI 和 Claude Code on the web 許可權。
- `/sandbox` 取決於平臺和 sandbox 支援。

> [!WARNING]
> **不要寫死“所有人都有這個命令”**：教程裡可以講命令型別和用途，實際可用列表以你當前 `/` 選單和官方 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`。

> [!TIP]
> **`/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 看到什麼。

> [!IMPORTANT]
> **排障順序**：許可權問題看 `/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`：`/usage` alias。
- `/stats`：`/usage` alias，開啟 Stats tab。
- `/status`：檢視版本、模型、賬號、連線狀態。
- `/doctor`：診斷安裝和設定。
- `/release-notes`：檢視 changelog。

什麼時候用：

- 回答變慢或成本異常：`/usage`、`/context`。
- 模型不對：`/model`。
- 推理深度不合適：`/effort`。
- 安裝或登入異常：`/doctor`。

> [!TIP]
> **模型切換會重新讀取歷史**：有歷史輸出的會話裡切模型，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`。

> [!WARNING]
> **批次和 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`。

> [!CAUTION]
> **長期自動化要更窄**：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`：用本地 `gh` CLI credentials 連線 Claude Code on the web。
- `/teleport` 或 `/tp`：把 web session 拉回 terminal。

這些命令可用性高度依賴平臺、登入狀態和賬號許可權。

> [!TIP]
> **平臺命令先看當前入口**：你在純終端、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]`：匯出當前會話。

> [!IMPORTANT]
> **`/init` 只是起點**：生成的 `CLAUDE.md` 要人工審查，刪噪音、補隱性團隊規則，再提交。

## 13. 自定義命令：優先寫 Skill

官方已經把 custom commands 合併進 Skills。

推薦路徑：

```text
.claude/skills/<name>/SKILL.md
```

示例：

```text
.claude/skills/review-diff/SKILL.md
```

呼叫：

```text
/review-diff
```

最小 Skill：

```markdown
---
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
```

舊格式仍可用：

```text
.claude/commands/<name>.md
```

但新寫內容優先 Skill，因為 Skill 支援：

- 目錄結構。
- 附屬檔案。
- frontmatter。
- 自動載入。
- `disable-model-invocation`。
- `allowed-tools`。
- `context: fork`。

> [!TIP]
> **不要再新建 legacy commands**：除非你在維護舊儲存庫。新命令統一做 Skill。

## 14. MCP prompts：外部系統暴露命令

MCP server 可以暴露 prompts。Claude Code 會把它們顯示成 command：

```text
/mcp__<server>__<prompt>
```

例如：

```text
/mcp__github__list_prs
```

```text
/mcp__linear__triage_issue ENG-123
```

適合：

- 外部系統裡的固定 workflow。
- 從 issue tracker 拉任務。
- 從內部 docs 做查詢。
- 基於資料庫 schema 生成分析任務。
- 呼叫內部平臺暴露的 prompt。

邊界：

- MCP prompt 來自 server，不來自本地 `.claude/skills/`。
- server 斷開或未認證時，對應 command 可能不可用。
- prompt 結果會進入當前對話。
- 外部系統 prompt 同樣要考慮許可權和 prompt injection。

> [!IMPORTANT]
> **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_command`
- `mcp_prompt`

適合：

- 記錄哪些命令被展開。
- 審計 high-risk command 使用。
- 對某些命令展開內容做額外檢查。

不適合：

- 替代 command 本身。
- 自動批准高風險外部操作。
- 記錄完整 prompt 或敏感引數到外部系統。

> [!CAUTION]
> **命令展開可能包含使用者輸入和外部內容**：審計時只記錄必要元資訊，不要預設儲存完整正文。

## 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`：管理後臺任務。

> [!TIP]
> **記不住命令時輸入 `/`**：即時選單比靜態教程更可靠，因為它反映你當前版本和環境。

## 17. 什麼時候不要做 command

不要把這些做成 command：

- 每次會話都要知道的規則：寫 `CLAUDE.md` 或 `.claude/rules/`。
- 必須自動執行的動作：寫 Hook。
- 外部工具連線：接 MCP。
- 只用一次的提示詞：直接對話。
- 需要使用者多輪決策的複雜流程：先在普通對話裡跑順，再沉澱成 Skill。
- 生產釋出這類高風險動作：可以有 command，但必須配 permissions、確認和回復流程。

> [!WARNING]
> **Command 不是規則容器**：它是入口。長期規則、自動化、許可權和外部連線要放到各自正確層。

## 18. 常見故障：命令看不到

按這個順序查：

1. 輸入 `/` 看當前選單。
2. 確認 Claude Code 版本是否支援該命令。
3. 確認平臺和賬號計劃。
4. 確認是否需要特定環境變數。
5. 如果是 Skill command，執行 `/skills` 看是否被載入。
6. 如果是 MCP prompt，執行 `/mcp` 看 server 是否 connected / authenticated。
7. 如果是 plugin command，執行 `/plugin` 或 `/reload-plugins`。
8. 如果是 legacy command，確認 `.claude/commands/<name>.md` 路徑存在。

> [!TIP]
> **先分型別再排障**：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 行為。

> [!IMPORTANT]
> **命令只是開始**：命令之後仍然會進入工具呼叫、許可權、Hooks、上下文這些系統。問題不一定在命令本身。

## 20. 一個專案的推薦命令沉澱方式

先不要為了“有工具感”建立一堆 slash commands。推薦順序：

1. 先在普通對話裡跑通流程。
2. 第二次重複時，整理成 checklist。
3. 第三次重複時，寫成 `.claude/skills/<name>/SKILL.md`。
4. 如果流程有副作用，加 `disable-model-invocation: true`。
5. 如果需要工具，寫 `allowed-tools`，但安全拒絕仍放 permissions。
6. 如果流程需要外部系統，接 MCP。
7. 如果必須每次發生，寫 Hook。
8. 如果多個儲存庫複用，再打包 Plugin。

> [!TIP]
> **命令是沉澱出來的，不是預設出來的**：真實重複出現的流程，才值得變成 `/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 事件。

## 23. 官方資料

- [Commands](https://code.claude.com/docs/en/commands)
- [Extend Claude with skills](https://code.claude.com/docs/en/skills)
- [Slash Commands in the SDK](https://code.claude.com/docs/en/agent-sdk/slash-commands)
- [Connect Claude Code to tools via MCP](https://code.claude.com/docs/en/mcp)
- [Hooks reference](https://code.claude.com/docs/en/hooks)

<Cards>
  <Card href="/zh-Hant/docs/claude-code/official/02-extensions-automation/agent-sdk" title="Agent SDK" description="Commands 是互動會話入口；如果要把 Claude Code 變成程式化能力，下一章進入 Agent SDK。" />
  <Card href="/zh-Hant/docs/claude-code/official/02-extensions-automation/hooks" title="Hooks（上一篇）" description="命令需要使用者觸發；必須每次發生的自動化應該用 Hooks。" />
  <Card href="/zh-Hant/docs/claude-code/official/02-extensions-automation/skills" title="Skills" description="自定義命令現在優先用 Skills 實現。回看 Skills 章節可以補齊 frontmatter、引數和許可權邊界。" />
</Cards>
