Ferramentas Suportadas
O OpenSpec funciona com muitos assistentes de codificação por IA. Ao executar openspec init, o OpenSpec configura as ferramentas selecionadas usando sua seleção de perfil/fluxo de trabalho ativo e o modo de entrega.
Como Funciona
Para cada ferramenta selecionada, o OpenSpec pode instalar:
- Skills (se a entrega incluir skills):
.../skills/openspec-*/SKILL.md - Commands (se a entrega incluir commands): arquivos de comando
opsx-*específicos da ferramenta
O Codex é somente skills: o OpenSpec instala .agents/skills/openspec-*/SKILL.md para o Codex mesmo quando a entrega está definida como commands, e não gera arquivos de prompt personalizado do Codex. As skills gerenciadas pelo OpenSpec existentes no caminho legado .codex/skills são reconciliadas após a escrita de seus substitutos; arquivos personalizados e divergentes são preservados.
Por padrão, o OpenSpec usa o perfil core, que inclui:
proposeexploreapplyupdatesyncarchive
Você pode habilitar fluxos de trabalho expandidos (new, continue, ff, verify, bulk-archive, onboard) por meio de openspec config profile, e então executar openspec update.
Como Invocar
Estes documentos usam /opsx:propose como nome canônico, mas cada ferramenta o escreve da forma como carrega o arquivo que o OpenSpec escreveu. Encontre o caminho de comando da sua ferramenta na Referência de Diretório de Ferramentas abaixo e corresponda ao formato aqui.
| Arquivo de comando que o OpenSpec escreve | Você digita | Ferramentas |
|---|---|---|
.../commands/opsx/<id>.* — uma pasta opsx/ cria o namespace | /opsx:<id> | Claude Code, CodeBuddy, Crush, Gemini CLI, Lingma, Qoder, ZCode |
.../opsx-<id>.* — o nome do arquivo é o comando | /opsx-<id> | Todas as outras ferramentas com arquivos de comando gerados, exceto Amazon Q e Devin |
.devin/workflows/opsx-<id>.md — lido por apenas um dos dois agentes do Devin | /opsx-<id> no Devin Desktop, /openspec-<skill> no Devin Local | Devin Desktop**** |
.amazonq/prompts/opsx-<id>.md — um prompt, não um comando | @opsx-<id> | Amazon Q Developer |
| nenhum — apenas skills | /openspec-<skill> | CodeArts, ForgeCode, Hermes, MiniMax Code, Mistral Vibe, Zed Agent, .agents compartilhado |
| nenhum — Kimi Code | /skill:openspec-<skill> | Kimi Code |
| nenhum — Codex CLI | $openspec-<skill> | Codex (/openspec-<skill> não é reconhecido) |
Então /opsx:propose é /opsx-propose no Cursor, @opsx-propose no Amazon Q e $openspec-propose no Codex.
Duas coisas variam independentemente, o que explica por que as linhas não se consolidam:
- O nome. As linhas 1–2 diferem apenas na forma como o arquivo nomeia o comando, e o prefixo
opsx-<id>/opsx:<id>é o mesmo para todas as ferramentas com arquivos de comando gerados. - O wrapper. O Amazon Q carrega seus arquivos em uma biblioteca de prompts invocada com
@. Ferramentas apenas com skills não geram arquivos de comando, então suas três últimas linhas usam nomes de skill — listados em Nomes de Skills Gerados — que não correspondem um a um aos ids de comando (/opsx:applyé a skillopenspec-apply-change).
Os padrões de caminho de comando acima são intencionalmente neutros quanto à extensão (.*): a extensão é da ferramenta (.toml para Gemini CLI, .prompt para Continue, .prompt.md para Kiro e GitHub Copilot), e algumas ferramentas mostram o nome com sua extensão no seletor. Corresponda à estrutura do diretório, não à extensão.
Os arquivos que o OpenSpec gera e a dica "Getting started" impressa após a configuração já usam a forma correta para as ferramentas que você selecionou — então a resposta mais rápida é ler a dica.
Referência de Diretório de Ferramentas
| Ferramenta (ID) | Padrão de caminho de skills | Padrão de caminho de comandos |
|---|---|---|
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 | Não gerado (sem adaptador de comandos; use invocações baseadas em skill /openspec-*) |
CodeBuddy (codebuddy) | .codebuddy/skills/openspec-*/SKILL.md | .codebuddy/commands/opsx/<id>.md |
Codex (codex) | .agents/skills/openspec-*/SKILL.md | Não gerado (apenas skills; use $openspec-*) |
Devin Desktop, anteriormente Windsurf (devin) | .devin/skills/openspec-*/SKILL.md | .devin/workflows/opsx-<id>.md**** |
ForgeCode (forgecode) | .forge/skills/openspec-*/SKILL.md | Não gerado (sem adaptador de comandos; use invocações baseadas em skill /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*** | Não gerado (sem adaptador de comandos; use invocações baseadas em skill /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 | Não gerado (sem adaptador de comandos; use invocações baseadas em skill /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 | Não gerado (sem adaptador de comandos; use skills do MiniMax Code) |
Mistral Vibe (vibe) | .vibe/skills/openspec-*/SKILL.md | Não gerado (sem adaptador de comandos; use invocações baseadas em skill /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 | Não gerado. O Rovo não possui superfície de comandos com barra — ele corresponde skills automaticamente ou por prompt (ex.: "use a skill openspec-propose"); /skills apenas as gerencia. O conteúdo gerado referencia skills pelo nome, nunca como comandos /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 | Não gerado (apenas skills; use /openspec-* ou @openspec-*) |
ZCode (zcode) | .zcode/skills/openspec-*/SKILL.md | .zcode/commands/opsx/<id>.md |
Skills .agents compartilhadas (agents) | .agents/skills/openspec-*/SKILL.md | Não gerado (sem adaptador de comandos; use invocações baseadas em skill /openspec-*) |
** Os arquivos de prompt do GitHub Copilot são reconhecidos como comandos com barra personalizados nas extensões de IDE (VS Code, JetBrains, Visual Studio). O Copilot CLI não consome .github/prompts/*.prompt.md diretamente no momento. Selecionar github-copilot também pode configurar o agente de codificação em nuvem hospedado no GitHub — veja GitHub Copilot cloud coding agent abaixo.
*** O Hermes carrega skills de ~/.hermes/skills/ por padrão. Para usar skills locais do projeto do OpenSpec, adicione o diretório .hermes/skills/ do projeto a skills.external_dirs em ~/.hermes/config.yaml; o Hermes então expõe skills com invocações com barra voltadas ao usuário, como /openspec-propose.
**** O Windsurf foi renomeado para Devin Desktop em 2 de junho de 2026, e seu diretório de configuração mudou: .devin/ é o local preferido de leitura e escrita, .windsurf/ um fallback legado somente leitura. O OpenSpec acompanha a renomeação — o id da ferramenta é devin, e --tools windsurf ainda resolve para ele, para que scripts de configuração existentes continuem funcionando. Um projeto que ainda possui arquivos do OpenSpec em .windsurf/ é oferecido a movê-los na próxima openspec update; recusar os deixa no lugar, e arquivos que você escreveu você mesmo nunca são tocados. Workflows são invocados pelo nome do arquivo, então .devin/workflows/opsx-apply.md é /opsx-apply. O agente Devin Local não suporta workflows — apenas skills, e ele não lê .windsurf/ de forma alguma — então sempre que o OpenSpec escreve skills do Devin, ele mantém seus corpos e a dica de início em invocações de skill /openspec-*, que funcionam nos dois agentes. Na entrega apenas com comandos, nenhuma skill é escrita e ambos recorrem a /opsx-*.
O suporte ao SourceCraft Code Assistant visa sua extensão para VS Code. Seus comandos personalizados e skills estão disponíveis apenas no VS Code. Esta integração não configura o SourceCraft web ou JetBrains.
Com a entrega apenas com skills, peça ao Code Assistant para usar a skill openspec-propose com sua ideia. Skills são ativadas por correspondência de solicitação; o OpenSpec não gera comandos /openspec-* para esta ferramenta.
O MiniMax Code é uma integração global apenas com skills. O OpenSpec escreve apenas seus diretórios openspec-* sob ~/.minimax/skills/; ele não cria diretórios locais do repositório .minimax ou .mavis. A entrega apenas com comandos deixa as skills globais existentes do MiniMax Code intactas, para que a configuração de entrega de um projeto não remova skills usadas por outro projeto.
GitHub Copilot cloud coding agent
O Copilot coding agent do GitHub roda no GitHub em um ambiente GitHub Actions — separado do Copilot no seu editor. O OpenSpec pode configurá-lo para usar o OpenSpec CLI gerando dois arquivos:
.github/workflows/copilot-setup-steps.yml— instala@fission-ai/openspecno ambiente do agente.github/agents/openspec.agent.md— informa ao agente como operar o OpenSpec
Como isso escreve um workflow do GitHub Actions no seu repositório, ele é opt-in:
| Como | Comportamento |
|---|---|
openspec init (interativo) | Pergunta se deseja configurar os arquivos em nuvem. O padrão é Não. |
openspec init --copilot-cloud | Configura sem perguntar (para scripts/CI). |
openspec init --no-copilot-cloud | Pula sem perguntar e remove quaisquer anteriormente gerados. |
openspec update | Nunca pergunta. Atualiza os arquivos apenas se você optou por participar (ou o projeto já os possui). Se você optou por não participar, remove os arquivos em nuvem gerenciados pelo OpenSpec. |
Sua escolha é salva em openspec/config.yaml como githubCopilot.cloudAgent: true|false, para que atualizações não interativas a respeitem. O OpenSpec apenas escreve ou remove arquivos cujo conteúdo ele gerou — se você personalizar copilot-setup-steps.yml ou openspec.agent.md, ou já tiver os seus próprios, eles são deixados intactos (e init/update informam você).
Quando escolher o alvo .agents compartilhado
agents é a opção neutra quanto ao fornecedor: ele escreve skills em .agents/skills/, a raiz compartilhada que muitas ferramentas de agentes leem, em vez de um diretório específico da ferramenta.
| Situação | Escolha |
|---|---|
| Sua ferramenta tem sua própria linha acima | Seu próprio ID — você obtém a integração daquela ferramenta, incluindo comandos com barra onde ela os suporta |
Vários agentes em um repositório, todos lendo .agents/skills | agents — uma árvore de skills em vez de uma por ferramenta |
Sua ferramenta ainda não está listada, mas lê .agents/skills | agents |
Selecioná-lo junto com um ID específico de ferramenta é aceitável; cada um normalmente escreve em sua própria raiz. Codex e Zed Agent são as exceções, pois usam a mesma raiz canônica .agents. Se Codex for selecionado junto com Zed ou agents, o OpenSpec mantém uma árvore liderada pelo Codex. Suas transferências nomeiam tanto $openspec-* para Codex quanto /openspec-* para outros agentes, para que --tools all e configurações multi-agente existentes continuem funcionando sem dois escritores sobrescrevendo os mesmos arquivos. O OpenSpec também o oferece automaticamente assim que um projeto possui um diretório .agents/skills/ — um .agents/ vazio não é suficiente, pois as ferramentas usam essa raiz também para regras e definições de subagentes. Observe que .agents não é .agent: o diretório singular pertence ao Antigravity.
Duas coisas a saber:
- Apenas skills. Não existe adaptador de comandos, então nenhum arquivo de comando
opsx-*é escrito; com um modo de entrega que inclui comandos,openspec initlistaagentsentre as ferramentas relatadas sobCommands skipped for: … (no adapter). Invoque os workflows pelo nome da skill — a maioria dos assistentes que leem.agents/skillsescreve isso como/openspec-propose, a forma que a dica de configuração do OpenSpec imprime. O alvo é neutro quanto ao fornecedor, então verifique os próprios documentos do seu assistente se ele usar outra forma. - Nenhum
AGENTS.mdé criado ou editado. O alvo é o diretório.agents/. Se seuAGENTS.mdraiz ainda contém blocos de marcador do OpenSpec de uma versão anterior,openspec updateos remove — veja o Guia de Migração.
O suporte ao Zed aqui é para o Zed Agent embutido. Zed External Agents e Terminal Threads usam suas próprias integrações. Agent Skills requerem o Zed v1.4.2 ou mais recente. Skills locais do projeto estão indisponíveis em um worktree não confiável até você conceder confiança.
Como .agents/skills/ é compartilhado por Codex, Zed Agent e o alvo neutro quanto ao fornecedor, vale saber o que o OpenSpec reivindica ali: ele escreve, atualiza e remove apenas os diretórios de skill openspec-* para seus workflows selecionados, além de um marcador .openspec-target que registra se Codex, Zed Agent ou o alvo neutro quanto ao fornecedor renderizou aquela árvore compartilhada. Qualquer outra coisa naquele diretório é deixada intacta. Trate os nomes openspec-* e o marcador como do OpenSpec — edições dentro deles são substituídas na próxima openspec update, assim como para todas as outras ferramentas.
Para projetos anteriores ao marcador, o OpenSpec infere a propriedade a partir de referências de skills gerenciadas: $openspec-* significa Codex e /openspec-* significa o alvo neutro quanto ao fornecedor. Uma árvore canônica genérica ao lado de .codex/skills legado é tratada como uma instalação dual-target anterior e consolidada na árvore compartilhada compatível.
openspec update também respeita essa propriedade. Se um projeto possui .agents como alvo neutro quanto ao fornecedor e uma instalação residual do Codex é detectada apenas por arquivos de prompt soltos, a atualização deixa a árvore agents estabelecida no lugar em vez de reescrevê-la com sintaxe do Codex, e preserva aqueles arquivos de prompt legados em vez de removê-los. Para transferir a árvore compartilhada ao Codex, execute openspec init --tools codex explicitamente.
Configuração Não Interativa
Para configuração CI/CD ou por script, use --tools (e opcionalmente --profile):
# Configura ferramentas específicas
openspec init --tools claude,cursor
# Configura todas as ferramentas suportadas
openspec init --tools all
# Pula a configuração de ferramentas
openspec init --tools none
# Substitui o perfil para esta execução de init
openspec init --profile coreIDs de ferramentas disponíveis (--tools) — windsurf também é aceito, como um alias para 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
Instalação Dependente do Fluxo de Trabalho
O OpenSpec instala artefatos de fluxo de trabalho com base nos fluxos de trabalho selecionados:
- Perfil principal (padrão):
propose,explore,apply,update,sync,archive - Seleção personalizada: qualquer subconjunto de todos os IDs de fluxo de trabalho:
propose,explore,new,continue,apply,update,ff,sync,archive,bulk-archive,verify,onboard
Em outras palavras, as contagens de habilidades/comandos são dependentes do perfil e da entrega, não fixas.
Nomes de Habilidades Geradas
Quando selecionadas pela configuração de perfil/fluxo de trabalho, o OpenSpec gera estas habilidades:
openspec-proposeopenspec-exploreopenspec-new-changeopenspec-continue-changeopenspec-apply-changeopenspec-update-changeopenspec-ff-changeopenspec-sync-specsopenspec-archive-changeopenspec-bulk-archive-changeopenspec-verify-changeopenspec-onboard
Consulte Comandos para o comportamento dos comandos e CLI para as opções de init/update.
Relacionados
- Referência da CLI — Comandos de terminal
- Comandos — Comandos de barra e habilidades
- Primeiros Passos — Configuração inicial