capabilities 是 agent 或腳本在做其他任何事之前先執行的那次交握。一次呼叫就能告訴呼叫端:它正在跟哪一個 CLI 對話、這個 CLI 會寫出哪些契約 schema,以及哪些指令接受 --output json。它不需要專案、不需要工作階段,也不需要瀏覽器。
何時使用 capabilities
- agent 要開啟一個工作階段,必須先知道該用哪些 schema 版本來解析。
- 腳本想用功能偵測判斷是否支援
--output json,而不是靠版本號猜測。 - 你想確認某次
npx呼叫實際解析到的是哪一個 CLI 建置。
用法
引數與旗標
這是唯一一個預設輸出
json 的指令。交握本來就是給機器用的,所以機器格式才是預設值,--output pretty 反而是要你主動指定的那一個。
它會回傳什麼
JSON 輸出是一個 schema-1 信封(參見 結果信封),它的value 帶有五個欄位:
outputJsonCommands 是從即時的指令註冊資訊讀取而來,絕不是手工維護的清單,因此它不可能與 CLI 實際接受的指令產生落差。請把上面的範例當成示意,並解析真正回傳的內容。
pretty 輸出會把同樣的資訊印成四行帶標籤的文字。兩種格式的結束碼都是 0。
典型的 agent 流程
- 執行
extension capabilities,確認envelopeSchema與readySchemaVersion都是你支援的版本。 - 開啟工作階段:
extension dev --allow-control --output json。 - 用動作類指令來驅動它:
inspect、eval、storage、reload。

