Skip to content

Referencia de la CLI

La CLI de OpenSpec (openspec) proporciona comandos de terminal para la configuración del proyecto, validación, inspección de estado y gestión. Estos comandos complementan los comandos de inteligencia artificial con barra inclinada (como /opsx:propose) documentados en Comandos.

Resumen

CategoríaComandosPropósito
Configuracióninit, updateInicializar y actualizar OpenSpec en su proyecto
Exploraciónlist, view, showExplorar cambios y especificaciones
ValidaciónvalidateVerificar cambios y especificaciones en busca de problemas
Ciclo de vidaarchiveFinalizar cambios completados
Flujo de trabajostatus, instructions, templates, schemasSoporte para flujos de trabajo basados en artefactos
Esquemasschema init, schema fork, schema validate, schema whichCrear y gestionar flujos de trabajo personalizados
ConfiguraciónconfigVer y modificar ajustes
Utilidadfeedback, completionRetroalimentación e integración con la shell

Comandos Humanos vs de Agente

La mayoría de los comandos de CLI están diseñados para uso humano en una terminal. Algunos comandos también admiten uso por agente/script mediante salida JSON.

Comandos Solo para Humanos

Estos comandos son interactivos y están diseñados para uso en terminal:

ComandoPropósito
openspec initInicializar proyecto (indicaciones interactivas)
openspec viewPanel de control interactivo
openspec config editAbrir configuración en editor
openspec feedbackEnviar comentarios a través de GitHub
openspec completion installInstalar completado de shell

Comandos Compatibles con Agentes

Estos comandos admiten salida --json para uso programático por agentes de IA y scripts:

ComandoUso HumanoUso de Agente
openspec listExplorar cambios/ especificaciones--json para datos estructurados
openspec show <item>Leer contenido--json para análisis
openspec validateVerificar problemas--all --json para validación por lotes
openspec statusVer progreso de artefactos--json para estado estructurado
openspec instructionsObtener próximos pasos--json para instrucciones de agente
openspec templatesEncontrar rutas de plantillas--json para resolución de rutas
openspec schemasListar esquemas disponibles--json para descubrimiento de esquemas

Opciones Globales

Estas opciones funcionan con todos los comandos:

OpciónDescripción
--version, -VMostrar número de versión
--no-colorDesactivar salida con color
--help, -hMostrar ayuda para el comando

Comandos de Configuración

openspec init

Inicializar OpenSpec en su proyecto. Crea la estructura de carpetas y configura las integraciones de herramientas de IA.

El comportamiento predeterminado utiliza los valores por defecto de la configuración global: perfil core, entrega both, flujos de trabajo propose, explore, apply, archive.

openspec init [path] [options]

Argumentos:

ArgumentoRequeridoDescripción
pathNoDirectorio objetivo (predeterminado: directorio actual)

Opciones:

OpciónDescripción
--tools <list>Configurar herramientas de IA de forma no interactiva. Usar all, none, o lista separada por comas
--forceLimpieza automática de archivos heredados sin solicitar confirmación
--profile <profile>Anular el perfil global para esta ejecución de init (core o custom)

--profile custom utiliza los flujos de trabajo que estén seleccionados actualmente en la configuración global (openspec config profile).

IDs de herramientas compatibles (--tools): amazon-q, antigravity, auggie, claude, cline, codex, codebuddy, continue, costrict, crush, cursor, factory, gemini, github-copilot, iflow, kilocode, kiro, opencode, pi, qoder, qwen, roocode, trae, windsurf

Ejemplos:

bash
# Inicialización interactiva
openspec init

# Inicializar en un directorio específico
openspec init ./my-project

# No interactivo: configurar para Claude y Cursor
openspec init --tools claude,cursor

# Configurar para todas las herramientas compatibles
openspec init --tools all

# Anular el perfil para esta ejecución
openspec init --profile core

# Saltar indicaciones y limpiar automáticamente archivos heredados
openspec init --force

Lo que crea:

openspec/
├── specs/              # Sus especificaciones (fuente de verdad)
├── changes/            # Cambios propuestos
└── config.yaml         # Configuración del proyecto

.claude/skills/         # Habilidades de Claude Code (si se selecciona claude)
.cursor/skills/         # Habilidades de Cursor (si se selecciona cursor)
.cursor/commands/       # Comandos OPSX de Cursor (si la entrega incluye comandos)
... (otras configuraciones de herramientas)

openspec update

Actualizar los archivos de instrucciones de OpenSpec después de actualizar la CLI. Regenera los archivos de configuración de herramientas de IA utilizando su perfil global actual, los flujos de trabajo seleccionados y el modo de entrega.

openspec update [path] [options]

Argumentos:

ArgumentoRequeridoDescripción
pathNoDirectorio objetivo (predeterminado: directorio actual)

Opciones:

OpciónDescripción
--forceForzar actualización incluso cuando los archivos están actualizados

Ejemplo:

bash
# Actualizar archivos de instrucciones después de npm update
npm update @fission-ai/openspec
openspec update

Comandos de Exploración

openspec list

Listar cambios o especificaciones en su proyecto.

openspec list [options]

Opciones:

OpciónDescripción
--specsListar especificaciones en lugar de cambios
--changesListar cambios (predeterminado)
--sort <order>Ordenar por recent (predeterminado) o name
--jsonSalida como JSON

Ejemplos:

bash
# Listar todos los cambios activos
openspec list

# Listar todas las especificaciones
openspec list --specs

# Salida JSON para scripts
openspec list --json

Salida (texto):

Cambios activos:
  add-dark-mode     Soporte para cambio de tema de interfaz
  fix-login-bug     Manejo de tiempo de espera de sesión

openspec view

Mostrar un panel de control interactivo para explorar especificaciones y cambios.

openspec view

Abre una interfaz basada en terminal para navegar por las especificaciones y cambios de su proyecto.


openspec show

Mostrar detalles de un cambio o especificación.

openspec show [item-name] [options]

Argumentos:

ArgumentoRequeridoDescripción
item-nameNoNombre del cambio o especificación (solicita si se omite)

Opciones:

OpciónDescripción
--type <type>Especificar tipo: change o spec (se detecta automáticamente si no es ambiguo)
--jsonSalida como JSON
--no-interactiveDesactivar indicaciones

Opciones específicas de cambio:

OpciónDescripción
--deltas-onlyMostrar solo especificaciones delta (modo JSON)

Opciones específicas de especificación:

OpciónDescripción
--requirementsMostrar solo requisitos, excluir escenarios (modo JSON)
--no-scenariosExcluir contenido de escenarios (modo JSON)
-r, --requirement <id>Mostrar requisito específico por índice basado en 1 (modo JSON)

Ejemplos:

bash
# Selección interactiva
openspec show

# Mostrar un cambio específico
openspec show add-dark-mode

# Mostrar una especificación específica
openspec show auth --type spec

# Salida JSON para análisis
openspec show add-dark-mode --json

Comandos de Validación

openspec validate

Validar cambios y especificaciones en busca de problemas estructurales.

openspec validate [item-name] [options]

Argumentos:

ArgumentoRequeridoDescripción
item-nameNoElemento específico a validar (solicita si se omite)

Opciones:

OpciónDescripción
--allValidar todos los cambios y especificaciones
--changesValidar todos los cambios
--specsValidar todas las especificaciones
--type <type>Especificar tipo cuando el nombre es ambiguo: change o spec
--strictActivar modo de validación estricta
--jsonSalida como JSON
--concurrency <n>Validaciones paralelas máximas (predeterminado: 6, o variable de entorno OPENSPEC_CONCURRENCY)
--no-interactiveDesactivar indicaciones

Ejemplos:

bash
# Validación interactiva
openspec validate

# Validar un cambio específico
openspec validate add-dark-mode

# Validar todos los cambios
openspec validate --changes

# Validar todo con salida JSON (para CI/scripts)
openspec validate --all --json

# Validación estricta con mayor paralelismo
openspec validate --all --strict --concurrency 12

Salida (texto):

Validando add-dark-mode...
  ✓ proposal.md válido
  ✓ specs/ui/spec.md válido
  ⚠ design.md: falta la sección "Enfoque Técnico"

1 advertencia encontrada

Salida (JSON):

json
{
  "version": "1.0.0",
  "results": {
    "changes": [
      {
        "name": "add-dark-mode",
        "valid": true,
        "warnings": ["design.md: falta la sección 'Enfoque Técnico'"]
      }
    ]
  },
  "summary": {
    "total": 1,
    "valid": 1,
    "invalid": 0
  }
}

Comandos de Ciclo de Vida

openspec archive

Archivar un cambio completado y fusionar las especificaciones delta en las especificaciones principales.

openspec archive [change-name] [options]

Argumentos:

ArgumentoRequeridoDescripción
change-nameNoCambio a archivar (solicita si se omite)

Opciones:

OpciónDescripción
-y, --yesSaltar indicaciones de confirmación
--skip-specsSaltar actualizaciones de especificaciones (para cambios de infraestructura/herramientas/solo documentación)
--no-validateSaltar validación (requiere confirmación)

Ejemplos:

bash
# Archivado interactivo
openspec archive

# Archivar un cambio específico
openspec archive add-dark-mode

# Archivar sin indicaciones (CI/scripts)
openspec archive add-dark-mode --yes

# Archivar un cambio de herramientas que no afecta las especificaciones
openspec archive update-ci-config --skip-specs

Lo que hace:

  1. Valida el cambio (a menos que se use --no-validate)
  2. Solicita confirmación (a menos que se use --yes)
  3. Fusiona las especificaciones delta en openspec/specs/
  4. Mueve la carpeta del cambio a openspec/changes/archive/YYYY-MM-DD-<name>/

Comandos de Flujo de Trabajo

Estos comandos soportan el flujo de trabajo OPSX impulsado por artefactos. Son útiles tanto para humanos que verifican el progreso como para agentes que determinan los próximos pasos.

openspec status

Mostrar el estado de finalización de artefactos para un cambio.

openspec status [options]

Opciones:

OpciónDescripción
--change <id>Nombre del cambio (solicita si se omite)
--schema <name>Anulación de esquema (se detecta automáticamente de la configuración del cambio)
--jsonSalida como JSON

Ejemplos:

bash
# Verificación de estado interactiva
openspec status

# Estado para un cambio específico
openspec status --change add-dark-mode

# JSON para uso de agente
openspec status --change add-dark-mode --json

Salida (texto):

Cambio: add-dark-mode
Esquema: spec-driven
Progreso: 2/4 artefactos completos

[x] proposal
[ ] design
[x] specs
[-] tasks (bloqueado por: design)

Salida (JSON):

json
{
  "changeName": "add-dark-mode",
  "schemaName": "spec-driven",
  "isComplete": false,
  "applyRequires": ["tasks"],
  "artifacts": [
    {"id": "proposal", "outputPath": "proposal.md", "status": "done"},
    {"id": "design", "outputPath": "design.md", "status": "ready"},
    {"id": "specs", "outputPath": "specs/**/*.md", "status": "done"},
    {"id": "tasks", "outputPath": "tasks.md", "status": "blocked", "missingDeps": ["design"]}
  ]
}

openspec instructions

Obtener instrucciones enriquecidas para crear un artefacto o aplicar tareas. Lo utilizan los agentes de IA para entender qué crear a continuación.

openspec instructions [artifact] [options]

Argumentos:

ArgumentoRequeridoDescripción
artifactNoID del artefacto: proposal, specs, design, tasks, o apply

Opciones:

OpciónDescripción
--change <id>Nombre del cambio (requerido en modo no interactivo)
--schema <name>Anulación de esquema
--jsonSalida como JSON

Caso especial: Usar apply como artefacto para obtener instrucciones de implementación de tareas.

Ejemplos:

bash
# Obtener instrucciones para el siguiente artefacto
openspec instructions --change add-dark-mode

# Obtener instrucciones para un artefacto específico
openspec instructions design --change add-dark-mode

# Obtener instrucciones de aplicación/implementación
openspec instructions apply --change add-dark-mode

# JSON para consumo de agente
openspec instructions design --change add-dark-mode --json

La salida incluye:

  • Contenido de plantilla para el artefacto
  • Contexto del proyecto de la configuración
  • Contenido de artefactos dependientes
  • Reglas por artefacto de la configuración

openspec templates

Mostrar las rutas de plantillas resueltas para todos los artefactos en un esquema.

openspec templates [options]

Opciones:

OpciónDescripción
--schema <name>Esquema a inspeccionar (predeterminado: spec-driven)
--jsonSalida como JSON

Ejemplos:

bash
# Mostrar rutas de plantillas para el esquema predeterminado
openspec templates

# Mostrar plantillas para un esquema personalizado
openspec templates --schema my-workflow

# JSON para uso programático
openspec templates --json

Salida (texto):

Esquema: spec-driven

Plantillas:
  proposal  → ~/.openspec/schemas/spec-driven/templates/proposal.md
  specs     → ~/.openspec/schemas/spec-driven/templates/specs.md
  design    → ~/.openspec/schemas/spec-driven/templates/design.md
  tasks     → ~/.openspec/schemas/spec-driven/templates/tasks.md

openspec schemas

Listar esquemas de flujo de trabajo disponibles con sus descripciones y flujos de artefactos.

openspec schemas [options]

Opciones:

OpciónDescripción
--jsonSalida como JSON

Ejemplo:

bash
openspec schemas

Salida:

Esquemas disponibles:

  spec-driven (paquete)
    El flujo de trabajo de desarrollo impulsado por especificaciones predeterminado
    Flujo: proposal → specs → design → tasks

  my-custom (proyecto)
    Flujo de trabajo personalizado para este proyecto
    Flujo: research → proposal → tasks

Comandos de Esquema

Comandos para crear y gestionar esquemas de flujo de trabajo personalizados.

openspec schema init

Crea un nuevo esquema local del proyecto.

openspec schema init <nombre> [opciones]

Argumentos:

ArgumentoRequeridoDescripción
nombreNombre del esquema (kebab-case)

Opciones:

OpciónDescripción
--description <texto>Descripción del esquema
--artifacts <lista>IDs de artefactos separados por comas (por defecto: proposal,specs,design,tasks)
--defaultEstablecer como esquema predeterminado del proyecto
--no-defaultNo preguntar para establecer como predeterminado
--forceSobrescribir esquema existente
--jsonSalida en formato JSON

Ejemplos:

bash
# Creación interactiva de esquema
openspec schema init research-first

# No interactiva con artefactos específicos
openspec schema init rapid \
  --description "Flujo de trabajo de iteración rápida" \
  --artifacts "proposal,tasks" \
  --default

Lo que crea:

openspec/schemas/<nombre>/
├── schema.yaml           # Definición del esquema
└── templates/
    ├── proposal.md       # Plantilla para cada artefacto
    ├── specs.md
    ├── design.md
    └── tasks.md

openspec schema fork

Copia un esquema existente a tu proyecto para personalizarlo.

openspec schema fork <origen> [nombre] [opciones]

Argumentos:

ArgumentoRequeridoDescripción
origenEsquema a copiar
nombreNoNuevo nombre del esquema (por defecto: <origen>-custom)

Opciones:

OpciónDescripción
--forceSobrescribir destino existente
--jsonSalida en formato JSON

Ejemplo:

bash
# Bifurcar el esquema integrado spec-driven
openspec schema fork spec-driven my-workflow

openspec schema validate

Valida la estructura y plantillas de un esquema.

openspec schema validate [nombre] [opciones]

Argumentos:

ArgumentoRequeridoDescripción
nombreNoEsquema a validar (valida todos si se omite)

Opciones:

OpciónDescripción
--verboseMostrar pasos de validación detallados
--jsonSalida en formato JSON

Ejemplo:

bash
# Validar un esquema específico
openspec schema validate my-workflow

# Validar todos los esquemas
openspec schema validate

openspec schema which

Muestra de dónde se resuelve un esquema (útil para depurar la precedencia).

openspec schema which [nombre] [opciones]

Argumentos:

ArgumentoRequeridoDescripción
nombreNoNombre del esquema

Opciones:

OpciónDescripción
--allListar todos los esquemas con sus fuentes
--jsonSalida en formato JSON

Ejemplo:

bash
# Verificar de dónde viene un esquema
openspec schema which spec-driven

Salida:

spec-driven se resuelve desde: package
  Fuente: /usr/local/lib/node_modules/@fission-ai/openspec/schemas/spec-driven

Precedencia de esquemas:

  1. Proyecto: openspec/schemas/<nombre>/
  2. Usuario: ~/.local/share/openspec/schemas/<nombre>/
  3. Paquete: Esquemas integrados

Comandos de Configuración

openspec config

Visualiza y modifica la configuración global de OpenSpec.

openspec config <subcomando> [opciones]

Subcomandos:

SubcomandoDescripción
pathMostrar ubicación del archivo de configuración
listMostrar todas las configuraciones actuales
get <clave>Obtener un valor específico
set <clave> <valor>Establecer un valor
unset <clave>Eliminar una clave
resetRestablecer valores predeterminados
editAbrir en $EDITOR
profile [preset]Configurar el perfil de flujo de trabajo de forma interactiva o mediante un preset

Ejemplos:

bash
# Mostrar ruta del archivo de configuración
openspec config path

# Listar todas las configuraciones
openspec config list

# Obtener un valor específico
openspec config get telemetry.enabled

# Establecer un valor
openspec config set telemetry.enabled false

# Establecer un valor de cadena explícitamente
openspec config set user.name "Mi Nombre" --string

# Eliminar una configuración personalizada
openspec config unset user.name

# Restablecer toda la configuración
openspec config reset --all --yes

# Editar configuración en tu editor
openspec config edit

# Configurar perfil con asistente basado en acciones
openspec config profile

# Preset rápido: cambiar flujos de trabajo a core (mantiene el modo de entrega)
openspec config profile core

openspec config profile comienza con un resumen del estado actual, luego te permite elegir:

  • Cambiar entrega + flujos de trabajo
  • Cambiar solo la entrega
  • Cambiar solo los flujos de trabajo
  • Mantener la configuración actual (salir)

Si mantienes la configuración actual, no se escriben cambios y no se muestra un aviso de actualización. Si no hay cambios en la configuración, pero los archivos del proyecto actual están desincronizados con tu perfil/entrega global, OpenSpec mostrará una advertencia y sugerirá ejecutar openspec update. Presionar Ctrl+C también cancela el flujo limpiamente (sin traza de pila) y sale con el código 130. En la lista de verificación de flujos de trabajo, [x] significa que el flujo de trabajo está seleccionado en la configuración global. Para aplicar esas selecciones a los archivos del proyecto, ejecuta openspec update (o elige ¿Aplicar cambios a este proyecto ahora? cuando se te pregunte dentro de un proyecto).

Ejemplos interactivos:

bash
# Actualización solo de entrega
openspec config profile
# elegir: Cambiar solo la entrega
# elegir entrega: Solo habilidades

# Actualización solo de flujos de trabajo
openspec config profile
# elegir: Cambiar solo los flujos de trabajo
# alternar flujos de trabajo en la lista de verificación, luego confirmar

Comandos de Utilidad

openspec feedback

Envía comentarios sobre OpenSpec. Crea un issue de GitHub.

openspec feedback <mensaje> [opciones]

Argumentos:

ArgumentoRequeridoDescripción
mensajeMensaje de comentarios

Opciones:

OpciónDescripción
--body <texto>Descripción detallada

Requisitos: La CLI de GitHub (gh) debe estar instalada y autenticada.

Ejemplo:

bash
openspec feedback "Agregar soporte para tipos de artefactos personalizados" \
  --body "Me gustaría definir mis propios tipos de artefactos más allá de los integrados."

openspec completion

Gestiona las completions de shell para la CLI de OpenSpec.

openspec completion <subcomando> [shell]

Subcomandos:

SubcomandoDescripción
generate [shell]Generar script de completions en stdout
install [shell]Instalar completions para tu shell
uninstall [shell]Eliminar completions instaladas

Shells soportados: bash, zsh, fish, powershell

Ejemplos:

bash
# Instalar completions (detecta el shell automáticamente)
openspec completion install

# Instalar para un shell específico
openspec completion install zsh

# Generar script para instalación manual
openspec completion generate bash > ~/.bash_completion.d/openspec

# Desinstalar
openspec completion uninstall

Códigos de Salida

CódigoSignificado
0Éxito
1Error (fallo de validación, archivos faltantes, etc.)

Variables de Entorno

VariableDescripción
OPENSPEC_TELEMETRYEstablecer en 0 para desactivar la telemetría
DO_NOT_TRACKEstablecer en 1 para desactivar la telemetría (señal DNT estándar)
OPENSPEC_CONCURRENCYConcurrencia predeterminada para validación masiva (por defecto: 6)
EDITOR o VISUALEditor para openspec config edit
NO_COLORDesactiva la salida en color cuando está establecida

Documentación Relacionada