Slash commands
建立自訂 slash commands 以自動化工作流程並標準化團隊實踐。
若要開始使用,請在 Bob Shell 中輸入 / 查看所有可用命令,或透過將 markdown 檔案加入 .bob/commands/ 或 ~/.bob/commands/ 來建立您自己的命令。
內建命令
Bob Shell 包含以下內建 slash commands:
| 命令 | 別名 | 說明 |
|---|---|---|
/help | 顯示所有可用的 slash commands | |
/clear | 清除畫面並重設對話歷史 | |
/condense | 智慧壓縮上下文視窗以釋放空間 | |
/copy | 將對話歷史中的項目複製至剪貼簿 | |
/mode | 切換目前模式(開啟選擇器) | |
/resume | 瀏覽並恢復先前的對話 | |
/settings | 檢視並編輯 Bob Shell 設定 | |
/mcp | 管理已設定的 MCP 伺服器 | |
/manage-secrets | 管理 MCP 伺服器設定中使用的密鑰 | |
/skills | 將技能參照插入提示中 | |
/init | 在目前工作區初始化 Bob | |
/status | /info | 檢視工作階段狀態、使用情況和版本資訊 |
/team | 選擇團隊 | |
/logs | 使用系統檢視器開啟最新的日誌檔案 | |
/docs | 在瀏覽器中開啟 Bob Shell 文件 | |
/bug | 提交錯誤回報 | |
/exit | /quit、/close | 結束 CLI |
/manage-secrets 子命令
密鑰讓您可以儲存敏感值(例如 API key),並在 MCP 伺服器設定中參照它們,無需硬式編碼。
| 子命令 | 用法 | 說明 |
|---|---|---|
set | /manage-secrets set KEY VALUE | 儲存密鑰值 |
list | /manage-secrets list | 列出所有已儲存的密鑰名稱 |
rm | /manage-secrets rm KEY | 移除已儲存的密鑰 |
密鑰以加密方式儲存在 ~/.bob/settings/,並可在 MCP 伺服器設定中使用 ${KEY} 語法參照。
為何使用 slash commands?
Slash commands 提供幾項主要優點:
- 工作流程自動化:將複雜的多步驟流程轉化為單一命令
- 團隊標準化:在團隊中共享命令以確保一致的實踐
- 保留上下文:在每個命令中包含專案專屬的上下文
- 快速存取:模糊搜尋和自動完成功能可即時找到命令
Slash commands 的運作方式
當您在 Bob Shell 中輸入 / 時,會出現一個選單,顯示所有可用命令。這些命令來自兩個來源:
| 命令類型 | 來源 | 用途 |
|---|---|---|
| 自訂工作流程命令 | .bob/commands/ 或 ~/.bob/commands/ | 使用者自行建立的特定任務自動化 |
| 模式命令 | 內建和自訂模式 | 切換 Bob 的操作上下文 |
建立自訂命令
自訂命令透過將 markdown 檔案加入特定目錄來擴展 Bob 的功能:
| 位置 | 範圍 | 路徑 |
|---|---|---|
| 專案專屬 | 僅在目前專案中可用 | 工作區根目錄下的 .bob/commands/ |
| 全域 | 在所有專案中可用 | 主目錄下的 ~/.bob/commands/ |
檔案名稱即為命令名稱。例如:
.bob/commands/
├── review.md → /review
├── test-api.md → /test-api
└── deploy-check.md → /deploy-check命令名稱處理
透過 UI 建立命令時,Bob Shell 會自動處理命令名稱:
- 轉換為小寫
- 以破折號取代空格
- 移除特殊字元
- 移除首尾的破折號
範例:"My Cool Command!" 變為 my-cool-command
基本命令格式
加入 markdown 檔案以建立簡單命令:
Help me review this code for security issues and suggest improvements.帶有 frontmatter 的進階命令
使用 frontmatter 加入中繼資料以增強功能:
---
description: Create a new API endpoint
argument-hint: <endpoint-name> <http-method>
---
Create a new API endpoint called $1 that handles $2 requests.
Include proper error handling and documentation.Frontmatter 欄位
| 欄位 | 用途 | 範例 |
|---|---|---|
description | 顯示在命令選單中 | "Create a new API endpoint" |
argument-hint | 顯示預期的引數 | "<endpoint-name> <http-method>" |
工具批准對話框
當 Bob Shell 請求使用工具時,會出現批准對話框。對話框提供以下選項:
| 選項 | 說明 |
|---|---|
| Approve Once | 允許此特定工具呼叫繼續進行。未來的呼叫仍會再次提示您。 |
Approve <group> tools for task | 允許同一工具群組中的所有工具在任務剩餘時間內繼續使用。MCP 工具不會顯示此選項。 |
| Always Allow Command for task | 允許特定的 shell 命令在任務剩餘時間內繼續使用。 |
| Reject | 拒絕工具呼叫。Bob Shell 不會繼續執行該操作。 |
您也可以在批准或拒絕工具呼叫時加入選擇性備註。備註將包含在對話上下文中,讓 Bob Shell 能相應調整其行為。
若要在 Bob Shell 完成前中斷串流回應,請按 Esc。
在 Bob Shell 中管理命令
Bob Shell 支援與 Bob IDE 相同的 slash commands。雖然 Bob Shell 沒有提供專門的 UI 來管理命令,您可以:
- 在專案的
.bob/commands/目錄或主目錄的~/.bob/commands/中手動建立命令檔案 - 使用任何文字編輯器編輯現有的命令檔案
使用 slash commands
在 Bob Shell 中輸入 / 即可看到包含以下類型命令的統一選單:
- 統一選單:自訂命令和模式切換命令一起顯示
- 自動完成:開始輸入以篩選命令(例如
/sam顯示sample-command-name) - 模糊搜尋:即使只有部分符合也能找到命令
- 說明預覽:在選單中查看命令說明
- 視覺指示器:模式命令以特殊圖示與自訂命令區分
/mode code Switch to Code mode
/mode ask Switch to Ask mode
/review Review code for security issues
/api-endpoint <endpoint-name> <http-method>引數提示
引數提示為 slash commands 提供即時說明,當命令需要額外輸入時,顯示您應提供的資訊類型。
當您輸入 / 開啟命令選單時,需要引數的命令旁邊會顯示淺灰色提示,告訴您命令預期的引數類型。
例如:
/mode <mode_slug>- 提示<mode_slug>表示您應提供模式名稱,例如code或debug/api-endpoint <endpoint-name> <http-method>- 顯示您需要提供端點名稱和 HTTP 方法
選擇命令後,命令後方會接著一個空格插入聊天輸入框。提示文字不會插入,它只是視覺引導,幫助您知道接下來要輸入什麼。您必須手動在命令後輸入引數。
為自訂命令加入引數提示
您可以使用 frontmatter 中的 argument-hint 欄位為自訂命令加入引數提示:
---
description: Create a new API endpoint
argument-hint: <endpoint-name> <http-method>
---
Create a new API endpoint called $1 that handles $2 requests.
Include proper error handling and documentation.這將在命令選單中顯示為 /api-endpoint <endpoint-name> <http-method>。
引數提示的最佳實踐
- 具體描述:使用描述性的佔位符,例如
<file-path>而非通用的<arg> - 顯示多個引數:如果命令需要多個輸入,全部顯示:
<source> <destination> - 使用一致格式:始終用角括號包裹佔位符:
<placeholder> - 保持簡潔:提示應簡短明確
關於引數的常見問題
| 問題 | 解答 |
|---|---|
| 如果我沒有提供引數會怎樣? | 命令可能無法正常運作,或可能提示您提供更多資訊。提示是為了幫助您第一次就正確使用。 |
| 所有命令都有提示嗎? | 不是,只有設計為需要引數的命令才會有提示。不需要額外輸入的命令不會顯示提示。 |
| 我可以不替換提示文字就使用命令嗎? | 提示文字(例如 <mode_slug>)需要替換為實際值。保留提示文字很可能導致命令失敗或行為異常。 |
最佳實踐
命令命名
- 使用描述性、動作導向的名稱
- 保持名稱簡潔但清晰
- 多字命令使用連字號
- 避免使用通用名稱,例如
help或test - 注意:名稱會自動轉換為 slug 格式(小寫、移除特殊字元)
.md副檔名會根據需要自動加入或移除
命令內容
- 以清晰的指示開頭
- 使用結構化格式(清單、章節)
- 包含具體需求
- 參照專案慣例
- 讓命令專注於單一任務
組織管理
- 將相關命令分組放入子目錄
- 使用一致的命名模式
- 為複雜命令撰寫文件
- 將命令納入版本控制
- 在專案 repository 中共享團隊命令
疑難排解
命令未顯示
如果您的命令未出現在選單中:
- 檢查檔案位置:確保自訂命令檔案位於
.bob/commands/或~/.bob/commands/ - 確認副檔名:自訂命令必須是
.md檔案
找不到命令
當找不到 slash command 時,LLM 將看到:
The slash command '/unknown-command' was not found. Please check the command name and try again.命令衝突
- 自訂專案命令會覆寫同名的全域自訂命令
- 使用唯一名稱以避免衝突
- 透過 UI 建立重複名稱時,會附加數字(例如
new-command-1、new-command-2)
關於模式命令
Slash 選單包含模式切換命令(例如 /mode code、/mode ask),這些命令從根本上改變 AI 的操作模式——它們不只是插入文字,而是切換整個 AI 上下文。您建立的自訂模式也會顯示為 slash commands(例如,slug 為 reviewer 的模式變為 /reviewer)。這些模式命令無法被自訂工作流程命令覆寫。
跨平台相容性
Slash commands 在 Bob Shell 和 Bob IDE 中的運作方式完全相同。這意味著:
- 在一個環境中建立的命令可以在另一個環境中使用
- 相同的命令語法和行為在兩個環境中均適用
- 無論團隊成員使用哪個介面,共享的團隊命令都能一致運作