功能

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 來管理命令,您可以:

  1. 在專案的 .bob/commands/ 目錄或主目錄的 ~/.bob/commands/ 中手動建立命令檔案
  2. 使用任何文字編輯器編輯現有的命令檔案

使用 slash commands

在 Bob Shell 中輸入 / 即可看到包含以下類型命令的統一選單:

  1. 統一選單:自訂命令和模式切換命令一起顯示
  2. 自動完成:開始輸入以篩選命令(例如 /sam 顯示 sample-command-name
  3. 模糊搜尋:即使只有部分符合也能找到命令
  4. 說明預覽:在選單中查看命令說明
  5. 視覺指示器:模式命令以特殊圖示與自訂命令區分
/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> 表示您應提供模式名稱,例如 codedebug
  • /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>)需要替換為實際值。保留提示文字很可能導致命令失敗或行為異常。

最佳實踐

命令命名

  • 使用描述性、動作導向的名稱
  • 保持名稱簡潔但清晰
  • 多字命令使用連字號
  • 避免使用通用名稱,例如 helptest
  • 注意:名稱會自動轉換為 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-1new-command-2

關於模式命令

Slash 選單包含模式切換命令(例如 /mode code/mode ask),這些命令從根本上改變 AI 的操作模式——它們不只是插入文字,而是切換整個 AI 上下文。您建立的自訂模式也會顯示為 slash commands(例如,slug 為 reviewer 的模式變為 /reviewer)。這些模式命令無法被自訂工作流程命令覆寫。

跨平台相容性

Slash commands 在 Bob Shell 和 Bob IDE 中的運作方式完全相同。這意味著:

  • 在一個環境中建立的命令可以在另一個環境中使用
  • 相同的命令語法和行為在兩個環境中均適用
  • 無論團隊成員使用哪個介面,共享的團隊命令都能一致運作
這個主題如何?