支援的工具
OpenSpec 可與多款 AI 程式碼助手搭配使用。當您執行 openspec init 時,OpenSpec 會根據您目前啟用的 profile/workflow 選擇與交付模式,為選定的工具進行設定。
運作方式
對於每個選定的工具,OpenSpec 可安裝:
- Skills(若交付內容包含 skills):
.../skills/openspec-*/SKILL.md - Commands(若交付內容包含 commands):工具專屬的
opsx-*命令檔案
Codex 僅支援 skills:即使交付模式設定為 commands,OpenSpec 仍會為 Codex 安裝 .agents/skills/openspec-*/SKILL.md,且不會產生 Codex 自訂提示詞檔案。位於舊版 .codex/skills 路徑下、由 OpenSpec 管理的現有 skills,會在其替代版本寫入後進行對帳;自訂及已分岔的檔案將予以保留。
預設情況下,OpenSpec 使用 core profile,其中包含:
proposeexploreapplyupdatesyncarchive
您可以透過 openspec config profile 啟用擴展工作流(new、continue、ff、verify、bulk-archive、onboard),然後執行 openspec update。
如何調用
這些文件以 /opsx:propose 作為標準名稱,但每個工具在載入 OpenSpec 所寫入的文件時,會以自己的方式拼寫命令。請在下方工具目錄參考中找到您工具的命令路徑,然後在此處比對其格式。
| OpenSpec 寫入的命令文件 | 您輸入的內容 | 工具 |
|---|---|---|
.../commands/opsx/<id>.* — 使用 opsx/ 資料夾作為命名空間 | /opsx:<id> | Claude Code、CodeBuddy、Crush、Gemini CLI、Lingma、Qoder、ZCode |
.../opsx-<id>.* — 文件名即為命令 | /opsx-<id> | 所有其他具有生成命令文件的工具,Amazon Q 和 Devin 除外 |
.devin/workflows/opsx-<id>.md — 僅由 Devin 的兩個代理之一讀取 | Devin Desktop 上為 /opsx-<id>,Devin Local 上為 /openspec-<skill> | Devin Desktop**** |
.amazonq/prompts/opsx-<id>.md — 提示詞,非命令 | @opsx-<id> | Amazon Q Developer |
| 無 — 僅限技能 | /openspec-<skill> | CodeArts、ForgeCode、Hermes、MiniMax Code、Mistral Vibe、Zed Agent、共用 .agents |
| 無 — Kimi Code | /skill:openspec-<skill> | Kimi Code |
| 無 — Codex CLI | $openspec-<skill> | Codex(/openspec-<skill> 無法識別) |
因此 /opsx:propose 在 Cursor 中為 /opsx-propose,在 Amazon Q 中為 @opsx-propose,在 Codex 中為 $openspec-propose。
有兩個因素各自獨立變化,這就是為什麼各行無法合併:
- 名稱。 第 1–2 行僅在文件如何命名命令上有所不同,而
opsx-<id>/opsx:<id>詞幹對所有具有生成命令文件的工具而言都是相同的。 - 包裝器。 Amazon Q 將其文件載入到以
@調用的提示詞庫中。僅限技能的工具完全不生成命令文件,因此其最後三行使用技能名稱 — 列於生成的技能名稱下 — 這些名稱與命令 ID 並非一一對應(/opsx:apply對應的是openspec-apply-change技能)。
上述命令路徑模式刻意使用與副檔名無關的寫法(.*):副檔名取決於工具(Gemini CLI 使用 .toml,Continue 使用 .prompt,Kiro 和 GitHub Copilot 使用 .prompt.md),且部分工具在選擇器中會顯示帶副檔名的名稱。請比對目錄結構,而非副檔名。
OpenSpec 生成的文件,以及設定完成後列印的「快速入門」提示,已經為您選擇的工具使用了正確的格式 — 因此最快的解答方式是閱讀該提示。
工具目錄參考
| 工具(ID) | 技能路徑模式 | 命令路徑模式 |
|---|---|---|
Amazon Q Developer (amazon-q) | .amazonq/skills/openspec-*/SKILL.md | .amazonq/prompts/opsx-<id>.md |
Antigravity (antigravity) | .agent/skills/openspec-*/SKILL.md | .agent/workflows/opsx-<id>.md |
Auggie (auggie) | .augment/skills/openspec-*/SKILL.md | .augment/commands/opsx-<id>.md |
IBM Bob Shell (bob) | .bob/skills/openspec-*/SKILL.md | .bob/commands/opsx-<id>.md |
Claude Code (claude) | .claude/skills/openspec-*/SKILL.md | .claude/commands/opsx/<id>.md |
Cline (cline) | .cline/skills/openspec-*/SKILL.md | .clinerules/workflows/opsx-<id>.md |
Command Code (command-code) | .commandcode/skills/openspec-*/SKILL.md | .commandcode/commands/opsx-<id>.md |
CodeArts (codeartsagent) | .codeartsdoer/skills/openspec-*/SKILL.md | 未生成(無命令適配器;使用基於技能的 /openspec-* 調用) |
CodeBuddy (codebuddy) | .codebuddy/skills/openspec-*/SKILL.md | .codebuddy/commands/opsx/<id>.md |
Codex (codex) | .agents/skills/openspec-*/SKILL.md | 未生成(僅限技能;使用 $openspec-*) |
Devin Desktop,原稱 Windsurf (devin) | .devin/skills/openspec-*/SKILL.md | .devin/workflows/opsx-<id>.md**** |
ForgeCode (forgecode) | .forge/skills/openspec-*/SKILL.md | 未生成(無命令適配器;使用基於技能的 /openspec-* 調用) |
Continue (continue) | .continue/skills/openspec-*/SKILL.md | .continue/prompts/opsx-<id>.prompt |
CoStrict (costrict) | .cospec/skills/openspec-*/SKILL.md | .cospec/openspec/commands/opsx-<id>.md |
Crush (crush) | .crush/skills/openspec-*/SKILL.md | .crush/commands/opsx/<id>.md |
Cursor (cursor) | .cursor/skills/openspec-*/SKILL.md | .cursor/commands/opsx-<id>.md |
Factory Droid (factory) | .factory/skills/openspec-*/SKILL.md | .factory/commands/opsx-<id>.md |
Gemini CLI (gemini) | .gemini/skills/openspec-*/SKILL.md | .gemini/commands/opsx/<id>.toml |
GitHub Copilot (github-copilot) | .github/skills/openspec-*/SKILL.md | .github/prompts/opsx-<id>.prompt.md** |
Hermes Agent (hermes) | .hermes/skills/openspec-*/SKILL.md*** | 未生成(無命令適配器;使用基於技能的 /openspec-* 調用) |
iFlow (iflow) | .iflow/skills/openspec-*/SKILL.md | .iflow/commands/opsx-<id>.md |
Junie (junie) | .junie/skills/openspec-*/SKILL.md | .junie/commands/opsx-<id>.md |
Kilo Code (kilocode) | .kilocode/skills/openspec-*/SKILL.md | .kilocode/workflows/opsx-<id>.md |
Kimi Code (kimi) | .kimi-code/skills/openspec-*/SKILL.md | 未生成(無命令適配器;使用基於技能的 /skill:openspec-* 調用) |
Kiro (kiro) | .kiro/skills/openspec-*/SKILL.md | .kiro/prompts/opsx-<id>.prompt.md |
Lingma (lingma) | .lingma/skills/openspec-*/SKILL.md | .lingma/commands/opsx/<id>.md |
MiniMax Code (minimax-code) | ~/.minimax/skills/openspec-*/SKILL.md | 未生成(無命令適配器;使用 MiniMax Code 技能) |
Mistral Vibe (vibe) | .vibe/skills/openspec-*/SKILL.md | 未生成(無命令適配器;使用基於技能的 /openspec-* 調用) |
Oh My Pi (oh-my-pi) | .omp/skills/openspec-*/SKILL.md | .omp/commands/opsx-<id>.md |
OpenCode (opencode) | .opencode/skills/openspec-*/SKILL.md | .opencode/commands/opsx-<id>.md |
Pi (pi) | .pi/skills/openspec-*/SKILL.md | .pi/prompts/opsx-<id>.md |
SourceCraft Code Assistant for VS Code (codeassistant) | .codeassistant/skills/openspec-*/SKILL.md | .codeassistant/commands/opsx-<id>.md |
Qoder (qoder) | .qoder/skills/openspec-*/SKILL.md | .qoder/commands/opsx/<id>.md |
Qwen Code (qwen) | .qwen/skills/openspec-*/SKILL.md | .qwen/commands/opsx-<id>.md |
Rovo Dev CLI (rovodev) | .rovodev/skills/openspec-*/SKILL.md | 未生成。Rovo 沒有斜線命令介面 — 它會自動匹配技能或透過提示詞匹配(例如「使用 openspec-propose 技能」);/skills 僅用於管理技能。生成的內容以名稱引用技能,絕不以 /openspec-* 命令形式出現。 |
Zoo Code (roocode) | .roo/skills/openspec-*/SKILL.md | .roo/commands/opsx-<id>.md |
Trae (trae) | .trae/skills/openspec-*/SKILL.md | .trae/commands/opsx-<id>.md |
Zed Agent (zed) | .agents/skills/openspec-*/SKILL.md | 未生成(僅限技能;使用 /openspec-* 或 @openspec-*) |
ZCode (zcode) | .zcode/skills/openspec-*/SKILL.md | .zcode/commands/opsx/<id>.md |
共用 .agents 技能 (agents) | .agents/skills/openspec-*/SKILL.md | 未生成(無命令適配器;使用基於技能的 /openspec-* 調用) |
** GitHub Copilot 提示詞文件在 IDE 擴充功能(VS Code、JetBrains、Visual Studio)中被識別為自訂斜線命令。Copilot CLI 目前不會直接讀取 .github/prompts/*.prompt.md。選擇 github-copilot 還可以設定 GitHub 託管的雲端編碼代理 — 請參閱下方GitHub Copilot 雲端編碼代理。
*** Hermes 預設從 ~/.hermes/skills/ 載入技能。若要使用專案本地的 OpenSpec 技能,請將專案的 .hermes/skills/ 目錄新增到 ~/.hermes/config.yaml 中的 skills.external_dirs;Hermes 隨後會以使用者可見的斜線調用形式(如 /openspec-propose)暴露這些技能。
**** Windsurf 於 2026 年 6 月 2 日重新品牌為 Devin Desktop,其設定目錄也隨之遷移:.devin/ 為首選的讀寫位置,.windsurf/ 為僅限讀取的後向相容備援。OpenSpec 跟隨此次更名 — 工具 ID 為 devin,且 --tools windsurf 仍可解析到該工具,以確保現有設定腳本繼續運作。若專案仍將 OpenSpec 文件保留在 .windsurf/ 中,下次執行 openspec update 時會提示遷移;若拒絕遷移,文件將保留原處,且您自行撰寫的文件絕不會被修改。工作流程以文件名調用,因此 .devin/workflows/opsx-apply.md 對應 /opsx-apply。Devin Local 代理不支援工作流程 — 僅支援技能,且完全不讀取 .windsurf/ — 因此當 OpenSpec 寫入 Devin 技能時,會保留其內容,並將快速入門提示指向 /openspec-* 技能調用,此形式在兩個代理上均可運作。在僅限命令的交付模式下不會寫入任何技能,兩者均回退到 /opsx-*。
SourceCraft Code Assistant 的支援目標為其 VS Code 擴充功能。其自訂命令和技能僅在 VS Code 中可用。此整合不會設定 SourceCraft Web 或 JetBrains。
在僅限技能的交付模式下,請要求 Code Assistant 使用 openspec-propose 技能並附上您的構想。技能透過請求匹配啟動;OpenSpec 不會為該工具生成 /openspec-* 命令。
MiniMax Code 是一個全域性的僅限技能整合。OpenSpec 僅在 ~/.minimax/skills/ 下寫入其 openspec-* 目錄;不會建立專案本地的 .minimax 或 .mavis 目錄。在僅限命令的交付模式下,現有的全域 MiniMax Code 技能將保持不變,以確保一個專案的交付設定不會移除另一個專案所使用的技能。
GitHub Copilot 雲端編碼代理
GitHub 的Copilot 編碼代理在 GitHub Actions 環境中運行 — 與您編輯器中的 Copilot 相互獨立。OpenSpec 可以透過生成兩個文件來設定其使用 OpenSpec CLI:
.github/workflows/copilot-setup-steps.yml— 在代理環境中安裝@fission-ai/openspec.github/agents/openspec.agent.md— 告知代理如何驅動 OpenSpec
由於這會在您的儲存庫中寫入 GitHub Actions 工作流程,因此為選擇性加入:
| 方式 | 行為 |
|---|---|
openspec init(互動式) | 詢問是否設定雲端文件。預設為否。 |
openspec init --copilot-cloud | 不提示直接設定(適用於腳本/CI)。 |
openspec init --no-copilot-cloud | 不提示直接跳過,並移除任何先前生成的文件。 |
openspec update | 絕不提示。僅在您選擇加入時(或專案已有這些文件)才刷新文件。若您選擇退出,則移除 OpenSpec 管理的雲端文件。 |
您的選擇會儲存在 openspec/config.yaml 中,格式為 githubCopilot.cloudAgent: true|false,因此非互動式更新會遵循此設定。OpenSpec 僅會寫入或移除其自身生成的內容的文件 — 若您自訂了 copilot-setup-steps.yml 或 openspec.agent.md,或已有自己的版本,則保持不變(init/update 會告知您此情況)。
何時選擇共用 .agents 目標
agents 是供應商中立的選項:它將技能寫入 .agents/skills/,這是許多代理工具共用的根目錄,而非工具專屬的目錄。
| 情境 | 選擇 |
|---|---|
| 您的工具在上方有專屬行 | 其專屬 ID — 您將獲得該工具的整合,包括其支援的斜線命令 |
同一儲存庫有多個代理,均讀取 .agents/skills | agents — 一個技能樹而非每個工具各一個 |
您的工具尚未列出但讀取 .agents/skills | agents |
與工具專屬 ID 同時選擇它是沒問題的;每個通常寫入各自的根目錄。Codex 和 Zed Agent 是例外,因為它們使用相同的標準 .agents 根目錄。若 Codex 與 Zed 或 agents 同時選取,OpenSpec 會保留一棵由 Codex 主導的樹。其交接內容同時標註 $openspec-*(供 Codex 使用)和 /openspec-*(供其他代理使用),因此 --tools all 和現有的多代理設定可繼續運作,而不會有兩個寫入者覆寫相同文件。OpenSpec 也會在專案擁有 .agents/skills/ 目錄後自動提供此選項 — 僅有 .agents/ 是不夠的,因為工具也使用該根目錄存放規則和子代理定義。請注意 .agents 不等於 .agent:單數目錄屬於 Antigravity。
有兩點需要注意:
- 僅限技能。 不存在命令適配器,因此不會寫入任何
opsx-*命令文件;在包含命令的交付模式下,openspec init會在Commands skipped for: … (no adapter)下列出agents。請以技能名稱調用工作流程 — 大多數讀取.agents/skills的助理會將其拼寫為/openspec-propose,即 OpenSpec 設定提示所顯示的格式。該目標為供應商中立,因此若您的助理使用其他格式,請查閱其自身文件。 - 不會建立或編輯
AGENTS.md。 目標是.agents/目錄。若您的根目錄AGENTS.md仍保留舊版 OpenSpec 標記區塊,openspec update會將其移除 — 請參閱遷移指南。
此處的 Zed 支援針對內建的 Zed Agent。Zed External Agents 和 Terminal Threads 使用各自的整合。Agent Skills 需要 Zed v1.4.2 或更新版本。在未信任的工作樹中,專案本地技能不可用,直到您授予信任。
由於 .agents/skills/ 由 Codex、Zed Agent 和供應商中立目標共用,了解 OpenSpec 在該目錄中的權限範圍是值得的:它僅寫入、刷新和移除您選取工作流程的 openspec-* 技能目錄,以及一個 .openspec-target 標記,用於記錄該共用樹是由 Codex、Zed Agent 還是供應商中立目標渲染的。該目錄中的其他內容一律不動。請將 openspec-* 名稱和標記視為 OpenSpec 的 — 其內部的編輯會在下次 openspec update 時被取代,與其他所有工具相同。
對於無標記的舊專案,OpenSpec 從管理的技能引用中推斷所有權:$openspec-* 表示 Codex,/openspec-* 表示供應商中立目標。與遺留 .codex/skills 並存的通用標準樹會被視為較舊的雙目標安裝,並合併為相容的共用樹。
openspec update 也遵循此所有權。若專案以供應商中立目標擁有 .agents,且僅從殘留的提示詞文件偵測到遺留的 Codex 安裝,則更新會保留既有的 agents 樹而非以 Codex 語法重寫,並保留那些遺留提示詞文件而非刪除它們。若要將共用樹交給 Codex,請明確執行 openspec init --tools codex。
非互動式設定
對於 CI/CD 或腳本化設定,請使用 --tools(並可選擇性地加上 --profile):
# 設定特定工具
openspec init --tools claude,cursor
# 設定所有支援的工具
openspec init --tools all
# 略過工具設定
openspec init --tools none
# 覆寫此 init 執行階段的設定檔
openspec init --profile core可用的工具 ID(--tools) — 也接受 windsurf,作為 devin 的別名:amazon-q, antigravity, auggie, bob, claude, cline, command-code, codeartsagent, codex, devin, forgecode, codebuddy, continue, costrict, crush, cursor, factory, gemini, github-copilot, hermes, iflow, junie, kilocode, kimi, kiro, lingma, minimax-code, vibe, oh-my-pi, opencode, pi, qoder, qwen, roocode, codeassistant, trae, zed, zcode, agents
依工作流程而定的安裝
OpenSpec 會根據所選的工作流程安裝對應的工作流程工件:
- 核心設定檔(預設):
propose、explore、apply、update、sync、archive - 自訂選擇: 所有工作流程 ID 的任意子集:
propose,explore,new,continue,apply,update,ff,sync,archive,bulk-archive,verify,onboard
換句話說,技能/指令的數量會依設定檔和交付方式而異,並非固定不變。
產生的技能名稱
當由設定檔/工作流程設定選取時,OpenSpec 會產生下列技能:
openspec-proposeopenspec-exploreopenspec-new-changeopenspec-continue-changeopenspec-apply-changeopenspec-update-changeopenspec-ff-changeopenspec-sync-specsopenspec-archive-changeopenspec-bulk-archive-changeopenspec-verify-changeopenspec-onboard
請參閱指令了解指令行為,以及 CLI 了解 init/update 的選項。