支持的工具
OpenSpec 支持哪些 AI 编码工具,以及各自的命令语法。
矩阵中的每个工具都运行相同的 OpenSpec 工作流。技能与其对应的命令是同一套工作流指令,唯一的区别只是你输入的内容。init 安装哪种形式属于交付设置,详见设置你的项目。
支持矩阵
表中展示的调用方式以 apply 工作流为例,每个工作流都遵循相同的结构。将对应的 id 传入 openspec init --tools <id> 即可跳过选择器(CLI)。
| 工具 | --tools id | 技能 | 技能调用 | 命令 | 命令调用 |
|---|---|---|---|---|---|
| Amazon Q Developer | amazon-q | .amazonq/skills/ | /openspec-apply-change | .amazonq/prompts/ | @opsx-apply |
| Amp | amp | .agents/skills/ | /openspec-apply-change | 无 | 无 |
| Antigravity | antigravity | .agents/skills/ | /openspec-apply-change | .agents/workflows/ | /opsx-apply |
| AtomCode | atomcode | .atomcode/skills/ | /openspec-apply-change | .atomcode/commands/ | /opsx-apply |
| Auggie(Augment CLI) | auggie | .augment/skills/ | /openspec-apply-change | .augment/commands/ | /opsx-apply |
| IBM Bob | bob | .bob/skills/ | /openspec-apply-change | .bob/commands/ | /opsx-apply |
| Claude Code | claude | .claude/skills/ | /openspec-apply-change | .claude/commands/opsx/ | /opsx:apply |
| Cline | cline | .cline/skills/ | /openspec-apply-change | .clinerules/workflows/ | /opsx-apply |
| CodeArts | codeartsagent | .codeartsdoer/skills/ | /openspec-apply-change | 无 | 无 |
| CodeBuddy Code(CLI) | codebuddy | .codebuddy/skills/ | /openspec-apply-change | .codebuddy/commands/opsx/ | /opsx:apply |
| Code Studio | codestudio | .codestudio/skills/ | /openspec-apply-change | .codestudio/prompts/ | /opsx-apply |
| Codex | codex | .agents/skills/ | $openspec-apply-change | 无 | 无 |
| Continue | continue | .continue/skills/ | /openspec-apply-change | .continue/prompts/ | /opsx-apply |
| CoStrict | costrict | .cospec/skills/ | /openspec-apply-change | .cospec/openspec/commands/ | /opsx-apply |
| Crush | crush | .crush/skills/ | /openspec-apply-change | .crush/commands/opsx/ | /opsx:apply |
| Cursor | cursor | .cursor/skills/ | /openspec-apply-change | .cursor/commands/ | /opsx-apply |
| DeepSeek Harness | dsh | .dsh/skills/ | /openspec-apply-change | 无 | 无 |
| Devin Desktop(原 Windsurf) | devin | .devin/skills/ | /openspec-apply-change | .devin/workflows/ | /opsx-apply |
| EasyCode | easycode | .easycode/skills/ | /openspec-apply-change | .easycode/commands/opsx/ | /opsx:apply |
| Factory Droid | factory | .factory/skills/ | /openspec-apply-change | .factory/commands/ | /opsx-apply |
| ForgeCode | forgecode | .forge/skills/ | /openspec-apply-change | 无 | 无 |
| Gemini CLI | gemini | .gemini/skills/ | /openspec-apply-change | .gemini/commands/opsx/ | /opsx:apply |
| GigaCode | gigacode | .gigacode/skills/ | /openspec-apply-change | .gigacode/commands/ | /opsx-apply |
| GitHub Copilot | github-copilot | .github/skills/ | /openspec-apply-change | .github/prompts/ | /opsx-apply |
| Grok Build | grok | .grok/skills/ | /openspec-apply-change | 无 | 无 |
| GSD | gsd | .agents/skills/ | 请求 openspec-apply-change | 无 | 无 |
| Hermes Agent | hermes | .hermes/skills/ | /openspec-apply-change | 无 | 无 |
| iFlow | iflow | .iflow/skills/ | /openspec-apply-change | .iflow/commands/ | /opsx-apply |
| Junie | junie | .junie/skills/ | /openspec-apply-change | .junie/commands/ | /opsx-apply |
| Kilo Code | kilocode | .kilocode/skills/ | /openspec-apply-change | .kilo/command/ | /opsx-apply |
| Kimi Code | kimi | .kimi-code/skills/ | /skill:openspec-apply-change | 无 | 无 |
| Kiro | kiro | .kiro/skills/ | /openspec-apply-change | .kiro/prompts/ | /opsx-apply |
| Lingma | lingma | .lingma/skills/ | /openspec-apply-change | .lingma/commands/opsx/ | /opsx:apply |
| MiniMax Code | minimax-code | ~/.minimax/skills/(全局) | /openspec-apply-change | 无 | 无 |
| Mistral Vibe | vibe | .vibe/skills/ | /openspec-apply-change | 无 | 无 |
| Oh My Pi | oh-my-pi | .omp/skills/ | /openspec-apply-change | .omp/commands/ | /opsx-apply |
| OpenCode | opencode | .opencode/skills/ | /openspec-apply-change | .opencode/commands/ | /opsx-apply |
| Pi | pi | .pi/skills/ | /openspec-apply-change | .pi/prompts/ | /opsx-apply |
| Qoder | qoder | .qoder/skills/ | /openspec-apply-change | .qoder/commands/opsx/ | /opsx:apply |
| Qwen Code | qwen | .qwen/skills/ | /openspec-apply-change | .qwen/commands/ | /opsx-apply |
| Trae | trae | .trae/skills/ | /openspec-apply-change | .trae/commands/ | /opsx-apply |
| Veai | veai | .veai/skills/ | /openspec-apply-change | 无 | 无 |
| Warp | warp | .warp/skills/ | /openspec-apply-change | 无 | 无 |
| ZCode | zcode | .zcode/skills/ | /openspec-apply-change | .zcode/commands/opsx/ | /opsx:apply |
| Zoo Code | roocode | .roo/skills/ | /openspec-apply-change | .roo/commands/ | /opsx-apply |
| 其他 / 通用 | agents | .agents/skills/ | /openspec-apply-change | 无 | 无 |
- 技能调用:工具是否将技能注册为可直接输入的条目,取决于工具自身的行为。该列显示的是 OpenSpec 在生成文件以及 init 打印的提示中所使用的写法。如果输入后没有任何效果,请查阅你的工具的文档。
- 命令文件格式:大多数工具使用
.md命令文件。EasyCode 和 Gemini CLI 使用.toml,Continue 使用.prompt,而 Code Studio、Kiro 和 GitHub Copilot 使用.prompt.md。无论哪种格式,你输入的写法都是一样的。
各工具说明
未在此处列出的工具,其行为与其在表格中对应行的描述完全一致。
Amp
- 项目技能:Amp 从
.agents/skills/读取 OpenSpec 技能。 - 无命令文件:Amp 直接运行技能,因此 init 会跳过命令生成。
- 共享文件夹:Amp 与 Antigravity、Codex、Zed Agent 以及
agents目标共用.agents/skills/。OpenSpec 只写入一次该技能目录树。
Antigravity
- 当前文件夹:Antigravity v1.20.5 及更高版本从
.agents/读取工作区技能和工作流。 - 旧版文件夹:OpenSpec 写入替代文件后,会从
.agent/移除等价的生成文件。自定义文件以及被修改过的生成文件会保留在.agent/中供你审阅。 - 共享技能:Antigravity 与 Amp、Codex、Zed Agent 以及
agents目标共用.agents/skills/。OpenSpec 只写入一次该技能目录树,同时仍会将 Antigravity 的命令写入.agents/workflows/。
Cline
Cline 从 .clinerules/workflows/ 读取命令,而不是从其 .cline/ 文件夹读取。技能则保留在 .cline/skills/ 中。
Codex
- CLI 和 IDE 扩展:在描述你的想法时提及
$openspec-propose,或运行/skills来选择该技能。Codex 无法识别/openspec-propose(上游 issue)。 - 桌面应用:打开侧边栏中的 Skills 并选择
openspec-propose。OpenAI 的技能文档对这两种界面均有说明。 - 无命令文件:Codex 直接运行技能,因此即使交付方式中包含命令,init 也会跳过命令,并打印
Commands skipped for: codex (uses skills)。 - 共享文件夹:Codex 的技能位于
.agents/skills/,与 Amp、Antigravity、Zed Agent 以及agents目标使用的是同一棵目录树。选择多个目标时仍会保持一棵兼容的目录树;当该目录树由 Codex 拥有时,其交接文档会同时写明$openspec-*和/openspec-*两种写法。 - 旧版路径:由旧版本安装在
.codex/skills/下的技能会在下次执行openspec update时迁移。
DeepSeek Harness
- 项目根目录:DSH 使用最近的
.git祖先目录;在 Git 之外则使用当前目录。请在该目录运行openspec init --tools dsh。对于嵌套的 OpenSpec 项目,请将其.dsh/skills/目录的绝对路径添加到 DSH 的customSkillDirs中。如果名称重叠,Git 根目录下的技能仍然优先生效(上游发现规则)。 - 优先级:
.dsh/skills/优先于.agents/skills/中的同名技能。 - 交付:请使用
skills或both。若选择commands,则不会安装任何 DSH 工作流。可通过openspec config profile更改交付方式,然后重新运行openspec init --tools dsh。
Devin Desktop(原 Windsurf)
- 两种代理:
.devin/workflows/中的命令文件仅在 Devin Desktop 中有效。Devin Local 只运行技能,因此生成的技能引用/openspec-<skill>,这种写法在两者中均可使用。 - 重命名:
--tools windsurf仍会解析为devin。对于仍在旧版.windsurf/文件夹中存放 OpenSpec 文件的项目,下次执行openspec update时会提示迁移。
GitHub Copilot
- IDE 扩展(命令交付):VS Code、JetBrains 和 Visual Studio 会将
.github/prompts/opsx-<id>.prompt.md加载为/opsx-<id>。如果命令在其文件仍然存在的情况下消失,请重启 IDE。 - Copilot CLI(技能交付):CLI 会忽略
.github/prompts/,而是加载.github/skills/openspec-*/SKILL.md。以/openspec-<skill>的形式调用技能。如果技能在其文件仍然存在的情况下消失,请运行/skills reload,再运行/skills info openspec-propose以确认技能已被发现。
GSD
- 项目技能:GSD 从
.agents/skills/读取 OpenSpec 工作流。 - 调用:请 GSD 使用
openspec-<workflow>技能。GSD 也可以通过其技能发现设置来选择匹配的技能。 - 无子代理文件:
.gsd/agents/存放的是 GSD 的子代理定义。OpenSpec 不会将工作流技能写入该目录。
Hermes Agent
Hermes 默认只从 ~/.hermes/skills/ 加载技能。请将项目的 .hermes/skills/ 文件夹添加到 ~/.hermes/config.yaml 的 skills.external_dirs 中;init 会在安装完成后打印此提醒。
MiniMax Code
- 仅全局:技能会写入
~/.minimax/skills/。仓库内不会写入任何内容。 - 跨项目安全:仅命令的交付方式会使全局技能保持原位,因此一个项目的设置不会移除另一个项目正在使用的技能。
Warp
- 始终安装技能:即使交付方式为
commands,技能也会写入.warp/skills/,因为 Warp 没有命令文件,而是直接调用技能。 - OpenSpec 的管理范围:仅限
.warp/skills/。不会创建或编辑 Warp 的设置和WARP.md。
其他 / 通用(共享 .agents 技能)
- 适用场景:任何读取共享
.agents/skills/文件夹的工具,包括矩阵中没有对应行的工具。当你的助手未在列表中时,就选择此条目。在 init 选择器的搜索框中输入universal、other、generic、custom、proprietary、unlisted、unsupported、vendor-neutral或agents.md均可找到它。 - 与其他目标并存:Amp、Antigravity、Codex、Zed Agent 与此目标共享同一棵物理技能目录树。OpenSpec 会在
.openspec-target中记录一个写入者,并在每次运行时只写入一次目录树。各工具单独的命令文件仍会正常生成。 - OpenSpec 的管理范围:仅限
openspec-*文件夹和.openspec-target标记。.agents/下的其他内容均保持原样。 AGENTS.md:不会创建或编辑。该目标针对的是.agents/文件夹,而不是这个文件。