OpenSpec works with many AI coding assistants. When you run openspec init, OpenSpec configures selected tools using your active profile/workflow selection and delivery mode.
For each selected tool, OpenSpec can install:
- Skills (if delivery includes skills):
.../skills/openspec-*/SKILL.md - Commands (if delivery includes commands): tool-specific
opsx-*command files
Codex is skills-only: OpenSpec installs .codex/skills/openspec-*/SKILL.md for Codex even when delivery is set to commands, and it does not generate Codex custom prompt files.
Docs use /opsx:propose as the canonical name, but each tool spells it the way
it loads the file OpenSpec wrote. Read your tool's command path in the table
below and match it to a row here — the generated files and the post-setup
"Getting started" hint already use the right form for the tools you selected.
| Command path pattern | You type | Tools |
|---|---|---|
.../commands/opsx/<id>.md (namespaced) |
/opsx:<id> |
Claude Code, CodeBuddy, Crush, Gemini CLI, Lingma, Qoder, ZCode |
.../opsx-<id>.md (filename is the command) |
/opsx-<id> |
Antigravity, Auggie, IBM Bob Shell, CoStrict, Continue, Cursor, Factory Droid, GitHub Copilot, iFlow, Junie, Kiro, Oh My Pi, OpenCode, Pi, Qwen Code, Trae, Windsurf, Zoo Code |
.../opsx-<id>.md, invoked with the extension |
/opsx-<id>.md |
Cline, Kilo Code |
.amazonq/prompts/opsx-<id>.md, expanded as a prompt |
@opsx-<id> |
Amazon Q Developer |
| No command files — skills only | /openspec-<skill> |
CodeArts, ForgeCode, Hermes, Mistral Vibe |
| No command files — Kimi Code | /skill:openspec-<skill> |
Kimi Code |
| No command files — Codex CLI | $openspec-<skill> |
Codex (the /openspec-<skill> form is not recognized) |
So /opsx:propose is /opsx-propose in Cursor and $openspec-propose in Codex.
Skill names are listed under Generated Skill Names.
The last four rows are the exceptions worth knowing: the opsx-<id> part is the
same everywhere, but the wrapper around it is the tool's own. If a slash does not
autocomplete, type your tool's prefix in front of opsx-propose.
By default, OpenSpec uses the core profile, which includes:
proposeexploreapplyupdatesyncarchive
You can enable expanded workflows (new, continue, ff, verify, bulk-archive, onboard) via openspec config profile, then run openspec update.
| Tool (ID) | Skills path pattern | Command path pattern |
|---|---|---|
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 |
CodeArts (codeartsagent) |
.codeartsdoer/skills/openspec-*/SKILL.md |
Not generated (no command adapter; use skill-based /openspec-* invocations) |
CodeBuddy (codebuddy) |
.codebuddy/skills/openspec-*/SKILL.md |
.codebuddy/commands/opsx/<id>.md |
Codex (codex) |
.codex/skills/openspec-*/SKILL.md |
Not generated (skills-only; use .codex/skills/openspec-*) |
ForgeCode (forgecode) |
.forge/skills/openspec-*/SKILL.md |
Not generated (no command adapter; use skill-based /openspec-* invocations) |
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*** |
Not generated (no command adapter; use skill-based /openspec-* invocations) |
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 |
Not generated (no command adapter; use skill-based /skill:openspec-* invocations) |
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 |
Mistral Vibe (vibe) |
.vibe/skills/openspec-*/SKILL.md |
Not generated (no command adapter; use skill-based /openspec-* invocations) |
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 |
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 |
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 |
Windsurf (windsurf) |
.windsurf/skills/openspec-*/SKILL.md |
.windsurf/workflows/opsx-<id>.md |
ZCode (zcode) |
.zcode/skills/openspec-*/SKILL.md |
.zcode/commands/opsx/<id>.md |
** GitHub Copilot prompt files are recognized as custom slash commands in IDE extensions (VS Code, JetBrains, Visual Studio). Copilot CLI does not currently consume .github/prompts/*.prompt.md directly.
*** Hermes loads skills from ~/.hermes/skills/ by default. To use project-local OpenSpec skills, add the project .hermes/skills/ directory to skills.external_dirs in ~/.hermes/config.yaml; Hermes then exposes skills with user-facing slash invocations such as /openspec-propose.
For CI/CD or scripted setup, use --tools (and optionally --profile):
# Configure specific tools
openspec init --tools claude,cursor
# Configure all supported tools
openspec init --tools all
# Skip tool configuration
openspec init --tools none
# Override profile for this init run
openspec init --profile coreAvailable tool IDs (--tools): amazon-q, antigravity, auggie, bob, claude, cline, codeartsagent, codex, forgecode, codebuddy, continue, costrict, crush, cursor, factory, gemini, github-copilot, hermes, iflow, junie, kilocode, kimi, kiro, lingma, vibe, oh-my-pi, opencode, pi, qoder, qwen, roocode, trae, windsurf, zcode
OpenSpec installs workflow artifacts based on selected workflows:
- Core profile (default):
propose,explore,apply,update,sync,archive - Custom selection: any subset of all workflow IDs:
propose,explore,new,continue,apply,update,ff,sync,archive,bulk-archive,verify,onboard
In other words, skill/command counts are profile-dependent and delivery-dependent, not fixed.
When selected by profile/workflow config, OpenSpec generates these skills:
openspec-proposeopenspec-exploreopenspec-new-changeopenspec-continue-changeopenspec-apply-changeopenspec-update-changeopenspec-ff-changeopenspec-sync-specsopenspec-archive-changeopenspec-bulk-archive-changeopenspec-verify-changeopenspec-onboard
See Commands for command behavior and CLI for init/update options.
- CLI Reference — Terminal commands
- Commands — Slash commands and skills
- Getting Started — First-time setup