Herramientas compatibles
OpenSpec funciona con muchos asistentes de codificación de IA. Cuando ejecutas openspec init, OpenSpec configura las herramientas seleccionadas utilizando tu selección activa de perfil/flujo de trabajo y el modo de entrega.
Cómo funciona
Para cada herramienta seleccionada, OpenSpec puede instalar:
- Skills (si la entrega incluye skills):
.../skills/openspec-*/SKILL.md - Comandos (si la entrega incluye comandos): archivos de comando
opsx-*específicos de la herramienta
Codex solo admite skills: OpenSpec instala .agents/skills/openspec-*/SKILL.md para Codex incluso cuando el modo de entrega está configurado como commands, y no genera archivos de prompt personalizados para Codex. Los skills existentes administrados por OpenSpec en la ruta heredada .codex/skills se reconcilian después de que se escriben sus reemplazos; los archivos personalizados y divergentes se conservan.
Por defecto, OpenSpec usa el perfil core, que incluye:
proposeexploreapplyupdatesyncarchive
Puedes habilitar flujos de trabajo ampliados (new, continue, ff, verify, bulk-archive, onboard) mediante openspec config profile, y luego ejecutar openspec update.
Cómo invocar
Estos documentos usan /opsx:propose como nombre canónico, pero cada herramienta lo escribe de la forma en que carga el archivo que OpenSpec generó. Busca la ruta de comando de tu herramienta en la Referencia de directorios de herramientas a continuación y compara su forma con la de aquí.
| Archivo de comando que escribe OpenSpec | Escribes | Herramientas |
|---|---|---|
.../commands/opsx/<id>.* — una carpeta opsx/ lo pone en un espacio de nombres | /opsx:<id> | Claude Code, CodeBuddy, Crush, Gemini CLI, Lingma, Qoder, ZCode |
.../opsx-<id>.* — el nombre del archivo es el comando | /opsx-<id> | Todas las demás herramientas con archivos de comando generados, excepto Amazon Q y Devin |
.devin/workflows/opsx-<id>.md — leído por solo uno de los dos agentes de Devin | /opsx-<id> en Devin Desktop, /openspec-<skill> en Devin Local | Devin Desktop**** |
.amazonq/prompts/opsx-<id>.md — un prompt, no un comando | @opsx-<id> | Amazon Q Developer |
| ninguno — solo skills | /openspec-<skill> | CodeArts, ForgeCode, Hermes, MiniMax Code, Mistral Vibe, Zed Agent, .agents compartido |
| ninguno — Kimi Code | /skill:openspec-<skill> | Kimi Code |
| ninguno — Codex CLI | $openspec-<skill> | Codex (/openspec-<skill> no se reconoce) |
Así que /opsx:propose es /opsx-propose en Cursor, @opsx-propose en Amazon Q y $openspec-propose en Codex.
Dos aspectos varían de forma independiente, que es por qué las filas no se reducen:
- El nombre. Las filas 1–2 difieren solo en cómo el archivo nombra el comando, y el prefijo
opsx-<id>/opsx:<id>es el mismo para todas las herramientas con archivos de comando generados. - El envoltorio. Amazon Q carga sus archivos en una biblioteca de prompts invocada con
@. Las herramientas solo con skills no generan archivos de comando en absoluto, por lo que sus tres últimas filas usan nombres de skill — listados bajo Nombres de skills generados — que no se mapean uno a uno con los ids de comando (/opsx:applyes la skillopenspec-apply-change).
Los patrones de ruta de comando anteriores son neutrales respecto a la extensión (.*) a propósito: la extensión es de la herramienta (.toml para Gemini CLI, .prompt para Continue, .prompt.md para Kiro y GitHub Copilot), y algunas herramientas muestran el nombre con su extensión en el selector. Coincide con la forma del directorio, no con la extensión.
Los archivos que OpenSpec genera, y la pista de "Primeros pasos" impresa tras la configuración, ya usan la forma correcta para las herramientas que seleccionaste — así que la respuesta más rápida es leer la pista.
Referencia de directorios de herramientas
| Herramienta (ID) | Patrón de ruta de skills | Patrón de ruta 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 | No generado (sin adaptador de comandos; usa invocaciones basadas en skills /openspec-*) |
CodeBuddy (codebuddy) | .codebuddy/skills/openspec-*/SKILL.md | .codebuddy/commands/opsx/<id>.md |
Codex (codex) | .agents/skills/openspec-*/SKILL.md | No generado (solo skills; usa $openspec-*) |
Devin Desktop, anteriormente Windsurf (devin) | .devin/skills/openspec-*/SKILL.md | .devin/workflows/opsx-<id>.md**** |
ForgeCode (forgecode) | .forge/skills/openspec-*/SKILL.md | No generado (sin adaptador de comandos; usa invocaciones basadas en skills /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*** | No generado (sin adaptador de comandos; usa invocaciones basadas en skills /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 | No generado (sin adaptador de comandos; usa invocaciones basadas en skills /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 | No generado (sin adaptador de comandos; usa skills de MiniMax Code) |
Mistral Vibe (vibe) | .vibe/skills/openspec-*/SKILL.md | No generado (sin adaptador de comandos; usa invocaciones basadas en skills /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 para 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 | No generado. Rovo no tiene superficie de comandos con barra — coincide skills automáticamente o por prompt (p. ej. "use the openspec-propose skill"); /skills solo las gestiona. El contenido generado referencia skills por nombre, 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 | No generado (solo skills; usa /openspec-* o @openspec-*) |
ZCode (zcode) | .zcode/skills/openspec-*/SKILL.md | .zcode/commands/opsx/<id>.md |
Skills .agents compartidos (agents) | .agents/skills/openspec-*/SKILL.md | No generado (sin adaptador de comandos; usa invocaciones basadas en skills /openspec-*) |
** Los archivos de prompt de GitHub Copilot se reconocen como comandos con barra personalizados en extensiones de IDE (VS Code, JetBrains, Visual Studio). Copilot CLI actualmente no consume .github/prompts/*.prompt.md directamente. Seleccionar github-copilot también puede configurar el agente de codificación en la nube alojado en GitHub — consulta Agente de codificación en la nube de GitHub Copilot a continuación.
*** Hermes carga skills desde ~/.hermes/skills/ por defecto. Para usar skills de OpenSpec locales al proyecto, añade el directorio .hermes/skills/ del proyecto a skills.external_dirs en ~/.hermes/config.yaml; Hermes luego expone skills con invocaciones con barra visibles para el usuario como /openspec-propose.
**** Windsurf fue renombrado a Devin Desktop el 2 de junio de 2026, y su directorio de configuración se movió: .devin/ es la ubicación preferida de lectura y escritura, .windsurf/ es un respaldo de solo lectura heredado. OpenSpec sigue el cambio de nombre — el id de la herramienta es devin, y --tools windsurf aún se resuelve a ella para que los scripts de configuración existentes sigan funcionando. Un proyecto que aún tiene archivos de OpenSpec en .windsurf/ se le ofrece moverlos en la próxima openspec update; si se rechaza, se quedan en su lugar, y los archivos que escribiste tú mismo nunca se tocan. Los workflows se invocan por nombre de archivo, así que .devin/workflows/opsx-apply.md es /opsx-apply. El agente Devin Local no soporta workflows — solo skills, y no lee .windsurf/ en absoluto — por lo que siempre que OpenSpec escribe skills de Devin, mantiene sus cuerpos y la pista de primeros pasos en invocaciones de skill /openspec-*, que funcionan en ambos agentes. Con entrega solo de comandos no se escriben skills y ambos recurren a /opsx-*.
El soporte de SourceCraft Code Assistant apunta a su extensión de VS Code. Sus comandos personalizados y skills solo están disponibles en VS Code. Esta integración no configura SourceCraft web ni JetBrains.
Con entrega solo de skills, pide a Code Assistant que use la skill openspec-propose con tu idea. Las skills se activan mediante coincidencia de solicitudes; OpenSpec no genera comandos /openspec-* para esta herramienta.
MiniMax Code es una integración global solo con skills. OpenSpec solo escribe sus directorios openspec-* bajo ~/.minimax/skills/; no crea directorios .minimax ni .mavis locales al repositorio. La entrega solo de comandos deja intactas las skills globales existentes de MiniMax Code para que la configuración de entrega de un proyecto no pueda eliminar skills usadas por otro proyecto.
Agente de codificación en la nube de GitHub Copilot
El agente de codificación de Copilot de GitHub se ejecuta en GitHub en un entorno de GitHub Actions — separado de Copilot en tu editor. OpenSpec puede configurarlo para usar la CLI de OpenSpec generando dos archivos:
.github/workflows/copilot-setup-steps.yml— instala@fission-ai/openspecen el entorno del agente.github/agents/openspec.agent.md— le dice al agente cómo manejar OpenSpec
Como esto escribe un workflow de GitHub Actions en tu repositorio, es opcional:
| Cómo | Comportamiento |
|---|---|
openspec init (interactivo) | Pregunta si configurar archivos en la nube. El valor predeterminado es No. |
openspec init --copilot-cloud | Los configura sin preguntar (para scripts/CI). |
openspec init --no-copilot-cloud | Los omite sin preguntar y elimina los generados previamente. |
openspec update | Nunca pregunta. Actualiza los archivos solo si optaste por ellos (o el proyecto ya los tiene). Si optaste por no tenerlos, elimina los archivos en la nube gestionados por OpenSpec. |
Tu elección se guarda en openspec/config.yaml como githubCopilot.cloudAgent: true|false, para que las actualizaciones no interactivas la respeten. OpenSpec solo escribe o elimina archivos cuyo contenido generó — si personalizas copilot-setup-steps.yml o openspec.agent.md, o ya tienes los tuyos propios, se dejan intactos (y init/update te lo indican).
Cuándo elegir el destino .agents compartido
agents es la opción neutral respecto al proveedor: escribe skills en .agents/skills/, la raíz compartida que muchas herramientas de agentes leen, en lugar de un directorio específico de herramienta.
| Situación | Elige |
|---|---|
| Tu herramienta tiene su propia fila arriba | Su propio ID — obtienes la integración de esa herramienta, incluyendo comandos con barra donde los soporte |
Varios agentes en un repositorio, todos leyendo .agents/skills | agents — un árbol de skills en lugar de uno por herramienta |
Tu herramienta aún no está listada pero lee .agents/skills | agents |
Seleccionarlo junto con un ID específico de herramienta está bien; cada uno normalmente escribe en su propia raíz. Codex y Zed Agent son las excepciones porque usan la misma raíz canónica .agents. Si Codex se selecciona junto con Zed o agents, OpenSpec mantiene un árbol liderado por Codex. Sus transferencias nombran tanto $openspec-* para Codex como /openspec-* para otros agentes, para que --tools all y las configuraciones multi-agente existentes sigan funcionando sin dos escritores sobrescribiendo los mismos archivos. OpenSpec también lo ofrece automáticamente una vez que un proyecto tiene un directorio .agents/skills/ — un .agents/ vacío no es suficiente, ya que las herramientas usan esa raíz también para reglas y definiciones de subagentes. Ten en cuenta que .agents no es .agent: el directorio singular pertenece a Antigravity.
Dos cosas que debes saber:
- Solo skills. No existe adaptador de comandos, por lo que no se escriben archivos de comando
opsx-*; con un modo de entrega que incluya comandos,openspec initlistaagentsentre las herramientas que reporta bajoCommands skipped for: … (no adapter). Invoca los workflows por nombre de skill — la mayoría de asistentes que leen.agents/skillslo escriben como/openspec-propose, la forma que imprime la pista de configuración de OpenSpec. El destino es neutral respecto al proveedor, así que consulta los propios documentos de tu asistente si usa otra forma. - No se crea ni edita
AGENTS.md. El destino es el directorio.agents/. Si tuAGENTS.mdraíz aún tiene bloques de marcadores de OpenSpec de una versión anterior,openspec updatelos elimina — consulta la Guía de migración.
El soporte de Zed aquí es para el Zed Agent integrado. Zed External Agents y Terminal Threads usan sus propias integraciones. Agent Skills requieren Zed v1.4.2 o posterior. Las skills locales al proyecto no están disponibles en un worktree no confiable hasta que concedas confianza.
Como .agents/skills/ es compartido por Codex, Zed Agent y el destino neutral respecto al proveedor, vale la pena saber qué reclama OpenSpec allí: escribe, actualiza y elimina solo los directorios de skill openspec-* para tus workflows seleccionados, más un marcador .openspec-target que registra si Codex, Zed Agent o el destino neutral respecto al proveedor renderizó ese árbol compartido. Cualquier otra cosa en ese directorio se deja sola. Trata los nombres openspec-* y el marcador como de OpenSpec — las ediciones dentro de ellos se reemplazan en la próxima openspec update, igual que para cualquier otra herramienta.
Para proyectos anteriores al marcador, OpenSpec infiere la propiedad desde referencias de skills gestionadas: $openspec-* significa Codex y /openspec-* significa el destino neutral respecto al proveedor. Un árbol canónico genérico junto con .codex/skills heredado se trata como una instalación dual-target anterior y se consolida en el árbol compartido compatible.
openspec update también respeta esta propiedad. Si un proyecto posee .agents como destino neutral respecto al proveedor y se detecta una instalación residual de Codex solo desde archivos de prompt sueltos, la actualización deja el árbol establecido de agents en su lugar en lugar de reescribirlo con sintaxis de Codex, y preserva esos archivos de prompt heredados en lugar de eliminarlos. Para entregar el árbol compartido a Codex, ejecuta openspec init --tools codex explícitamente.
Configuración no interactiva
Para CI/CD o configuración por script, usa --tools (y opcionalmente --profile):
# Configura herramientas específicas
openspec init --tools claude,cursor
# Configura todas las herramientas compatibles
openspec init --tools all
# Omite la configuración de herramientas
openspec init --tools none
# Anula el perfil para esta ejecución de init
openspec init --profile coreIDs de herramientas disponibles (--tools) — windsurf también se acepta, como alias de 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
Instalación dependiente del flujo de trabajo
OpenSpec instala artefactos de flujo de trabajo según los flujos de trabajo seleccionados:
- Perfil principal (predeterminado):
propose,explore,apply,update,sync,archive - Selección personalizada: cualquier subconjunto de todos los IDs de flujo de trabajo:
propose,explore,new,continue,apply,update,ff,sync,archive,bulk-archive,verify,onboard
En otras palabras, los conteos de habilidades/comandos dependen del perfil y de la entrega, no son fijos.
Nombres de habilidades generadas
Cuando se seleccionan por configuración de perfil/flujo de trabajo, OpenSpec genera 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
Consulta Comandos para el comportamiento de los comandos y CLI para las opciones de init/update.
Relacionado
- Referencia CLI — Comandos de terminal
- Comandos — Comandos de barra y habilidades
- Primeros pasos — Configuración inicial