Skip to content

Référence CLI

La CLI OpenSpec (openspec) fournit des commandes terminal pour la configuration, la validation, l'inspection de l'état et la gestion des projets. Ces commandes complètent les commandes slash de l'IA (comme /opsx:propose) documentées dans Commandes.

Résumé

CatégorieCommandesObjectif
Configurationinit, updateInitialiser et mettre à jour OpenSpec dans votre projet
Navigationlist, view, showExplorer les changements et les spécifications
ValidationvalidateVérifier les changements et les spécifications pour des problèmes
Cycle de viearchiveFinaliser les changements terminés
Flux de travailstatus, instructions, templates, schemasSupport du flux de travail piloté par les artefacts
Schémasschema init, schema fork, schema validate, schema whichCréer et gérer des flux de travail personnalisés
ConfigurationconfigAfficher et modifier les paramètres
Utilitairesfeedback, completionRetour d'information et intégration shell

Commandes pour Humains vs Agents

La plupart des commandes CLI sont conçues pour une utilisation par des humains dans un terminal. Certaines commandes supportent également une utilisation par des agents/scripts via une sortie JSON.

Commandes Exclusivement pour Humains

Ces commandes sont interactives et conçues pour une utilisation en terminal :

CommandeObjectif
openspec initInitialiser le projet (invites interactives)
openspec viewTableau de bord interactif
openspec config editOuvrir la configuration dans un éditeur
openspec feedbackSoumettre des commentaires via GitHub
openspec completion installInstaller les complétions de shell

Commandes Compatibles avec les Agents

Ces commandes supportent la sortie --json pour une utilisation programmatique par des agents IA et des scripts :

CommandeUtilisation HumaineUtilisation Agent
openspec listParcourir les changements/spécifications--json pour des données structurées
openspec show <item>Lire le contenu--json pour l'analyse
openspec validateVérifier les problèmes--all --json pour une validation en masse
openspec statusVoir la progression des artefacts--json pour un état structuré
openspec instructionsObtenir les prochaines étapes--json pour les instructions de l'agent
openspec templatesTrouver les chemins des modèles--json pour la résolution des chemins
openspec schemasLister les schémas disponibles--json pour la découverte des schémas

Options Globales

Ces options fonctionnent avec toutes les commandes :

OptionDescription
--version, -VAfficher le numéro de version
--no-colorDésactiver la sortie en couleur
--help, -hAfficher l'aide pour la commande

Commandes de Configuration

openspec init

Initialise OpenSpec dans votre projet. Crée la structure de dossiers et configure les intégrations des outils IA.

Le comportement par défaut utilise les paramètres globaux par défaut : profil core, livraison both, workflows propose, explore, apply, archive.

openspec init [path] [options]

Arguments :

ArgumentRequisDescription
pathNonRépertoire cible (par défaut : répertoire courant)

Options :

OptionDescription
--tools <list>Configurer les outils IA de manière non interactive. Utilisez all, none, ou une liste séparée par des virgules
--forceNettoyage automatique des fichiers obsolètes sans invite
--profile <profile>Remplacer le profil global pour cette exécution d'init (core ou custom)

--profile custom utilise les workflows actuellement sélectionnés dans la configuration globale (openspec config profile).

IDs d'outils supportés (--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

Exemples :

bash
# Initialisation interactive
openspec init

# Initialiser dans un répertoire spécifique
openspec init ./my-project

# Non interactif : configurer pour Claude et Cursor
openspec init --tools claude,cursor

# Configurer pour tous les outils supportés
openspec init --tools all

# Remplacer le profil pour cette exécution
openspec init --profile core

# Ignorer les invites et nettoyer automatiquement les fichiers obsolètes
openspec init --force

Ce qui est créé :

openspec/
├── specs/              # Vos spécifications (source de vérité)
├── changes/            # Changements proposés
└── config.yaml         # Configuration du projet

.claude/skills/         # Compétences Claude Code (si claude sélectionné)
.cursor/skills/         # Compétences Cursor (si cursor sélectionné)
.cursor/commands/       # Commandes OPSX Cursor (si la livraison inclut les commandes)
... (autres configurations d'outils)

openspec update

Met à jour les fichiers d'instructions d'OpenSpec après la mise à jour du CLI. Régénère les fichiers de configuration des outils IA en utilisant votre profil global actuel, les workflows sélectionnés et le mode de livraison.

openspec update [path] [options]

Arguments :

ArgumentRequisDescription
pathNonRépertoire cible (par défaut : répertoire courant)

Options :

OptionDescription
--forceForcer la mise à jour même si les fichiers sont à jour

Exemple :

bash
# Mettre à jour les fichiers d'instructions après une mise à jour npm
npm update @fission-ai/openspec
openspec update

Commandes de Navigation

openspec list

Liste les changements ou les spécifications dans votre projet.

openspec list [options]

Options :

OptionDescription
--specsLister les spécifications au lieu des changements
--changesLister les changements (par défaut)
--sort <order>Trier par recent (par défaut) ou name
--jsonSortie au format JSON

Exemples :

bash
# Lister tous les changements actifs
openspec list

# Lister toutes les spécifications
openspec list --specs

# Sortie JSON pour les scripts
openspec list --json

Sortie (texte) :

Changements actifs :
  add-dark-mode     Support du thème UI dark mode
  fix-login-bug     Gestion de l'expiration de session

openspec view

Affiche un tableau de bord interactif pour explorer les spécifications et les changements.

openspec view

Ouvre une interface basée sur le terminal pour naviguer dans les spécifications et les changements de votre projet.


openspec show

Affiche les détails d'un changement ou d'une spécification.

openspec show [item-name] [options]

Arguments :

ArgumentRequisDescription
item-nameNonNom du changement ou de la spécification (invite si omis)

Options :

OptionDescription
--type <type>Spécifier le type : change ou spec (détecté automatiquement si non ambigu)
--jsonSortie au format JSON
--no-interactiveDésactiver les invites

Options spécifiques aux changements :

OptionDescription
--deltas-onlyAfficher uniquement les spécifications delta (mode JSON)

Options spécifiques aux spécifications :

OptionDescription
--requirementsAfficher uniquement les exigences, exclure les scénarios (mode JSON)
--no-scenariosExclure le contenu des scénarios (mode JSON)
-r, --requirement <id>Afficher une exigence spécifique par son index basé sur 1 (mode JSON)

Exemples :

bash
# Sélection interactive
openspec show

# Afficher un changement spécifique
openspec show add-dark-mode

# Afficher une spécification spécifique
openspec show auth --type spec

# Sortie JSON pour l'analyse
openspec show add-dark-mode --json

Commandes de Validation

openspec validate

Valide les changements et les spécifications pour les problèmes structurels.

openspec validate [item-name] [options]

Arguments :

ArgumentRequisDescription
item-nameNonÉlément spécifique à valider (invite si omis)

Options :

OptionDescription
--allValider tous les changements et spécifications
--changesValider tous les changements
--specsValider toutes les spécifications
--type <type>Spécifier le type lorsque le nom est ambigu : change ou spec
--strictActiver le mode de validation stricte
--jsonSortie au format JSON
--concurrency <n>Nombre maximal de validations parallèles (par défaut : 6, ou variable d'environnement OPENSPEC_CONCURRENCY)
--no-interactiveDésactiver les invites

Exemples :

bash
# Validation interactive
openspec validate

# Valider un changement spécifique
openspec validate add-dark-mode

# Valider tous les changements
openspec validate --changes

# Valider tout avec sortie JSON (pour CI/scripts)
openspec validate --all --json

# Validation stricte avec parallélisme accru
openspec validate --all --strict --concurrency 12

Sortie (texte) :

Validation de add-dark-mode...
  ✓ proposal.md valide
  ✓ specs/ui/spec.md valide
  ⚠ design.md : section "Technical Approach" manquante

1 avertissement trouvé

Sortie (JSON) :

json
{
  "version": "1.0.0",
  "results": {
    "changes": [
      {
        "name": "add-dark-mode",
        "valid": true,
        "warnings": ["design.md: section 'Technical Approach' manquante"]
      }
    ]
  },
  "summary": {
    "total": 1,
    "valid": 1,
    "invalid": 0
  }
}

Commandes de Cycle de Vie

openspec archive

Archive un changement terminé et fusionne les spécifications delta dans les spécifications principales.

openspec archive [change-name] [options]

Arguments :

ArgumentRequisDescription
change-nameNonChangement à archiver (invite si omis)

Options :

OptionDescription
-y, --yesIgnorer les invites de confirmation
--skip-specsIgnorer les mises à jour des spécifications (pour les changements d'infrastructure/outillage/documentation uniquement)
--no-validateIgnorer la validation (nécessite une confirmation)

Exemples :

bash
# Archivage interactif
openspec archive

# Archiver un changement spécifique
openspec archive add-dark-mode

# Archiver sans invites (CI/scripts)
openspec archive add-dark-mode --yes

# Archiver un changement d'outillage qui n'affecte pas les spécifications
openspec archive update-ci-config --skip-specs

Ce qu'il fait :

  1. Valide le changement (sauf si --no-validate)
  2. Demande une confirmation (sauf si --yes)
  3. Fusionne les spécifications delta dans openspec/specs/
  4. Déplace le dossier du changement dans openspec/changes/archive/YYYY-MM-DD-<name>/

Commandes de Workflow

Ces commandes supportent le workflow OPSX piloté par les artefacts. Elles sont utiles tant pour les humains vérifiant la progression que pour les agents déterminant les prochaines étapes.

openspec status

Affiche l'état d'achèvement des artefacts pour un changement.

openspec status [options]

Options :

OptionDescription
--change <id>Nom du changement (invite si omis)
--schema <name>Remplacement du schéma (détecté automatiquement depuis la config du changement)
--jsonSortie au format JSON

Exemples :

bash
# Vérification interactive de l'état
openspec status

# État pour un changement spécifique
openspec status --change add-dark-mode

# JSON pour l'utilisation par un agent
openspec status --change add-dark-mode --json

Sortie (texte) :

Changement : add-dark-mode
Schéma : spec-driven
Progression : 2/4 artefacts terminés

[x] proposal
[ ] design
[x] specs
[-] tasks (bloqué par : design)

Sortie (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

Obtient des instructions enrichies pour créer un artefact ou appliquer des tâches. Utilisé par les agents IA pour comprendre quoi créer ensuite.

openspec instructions [artifact] [options]

Arguments :

ArgumentRequisDescription
artifactNonID de l'artefact : proposal, specs, design, tasks, ou apply

Options :

OptionDescription
--change <id>Nom du changement (requis en mode non interactif)
--schema <name>Remplacement du schéma
--jsonSortie au format JSON

Cas particulier : Utilisez apply comme artefact pour obtenir les instructions de mise en œuvre des tâches.

Exemples :

bash
# Obtenir les instructions pour l'artefact suivant
openspec instructions --change add-dark-mode

# Obtenir les instructions pour un artefact spécifique
openspec instructions design --change add-dark-mode

# Obtenir les instructions d'application/mise en œuvre
openspec instructions apply --change add-dark-mode

# JSON pour la consommation par un agent
openspec instructions design --change add-dark-mode --json

La sortie inclut :

  • Le contenu du modèle pour l'artefact
  • Le contexte du projet depuis la configuration
  • Le contenu des artefacts dépendants
  • Les règles par artefact depuis la configuration

openspec templates

Affiche les chemins résolus des modèles pour tous les artefacts dans un schéma.

openspec templates [options]

Options :

OptionDescription
--schema <name>Schéma à inspecter (par défaut : spec-driven)
--jsonSortie au format JSON

Exemples :

bash
# Afficher les chemins des modèles pour le schéma par défaut
openspec templates

# Afficher les modèles pour un schéma personnalisé
openspec templates --schema my-workflow

# JSON pour une utilisation programmatique
openspec templates --json

Sortie (texte) :

Schéma : spec-driven

Modèles :
  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

Liste les schémas de workflow disponibles avec leurs descriptions et flux d'artefacts.

openspec schemas [options]

Options :

OptionDescription
--jsonSortie au format JSON

Exemple :

bash
openspec schemas

Sortie :

Schémas disponibles :

  spec-driven (package)
    Le workflow de développement spec-driven par défaut
    Flux : proposal → specs → design → tasks

  my-custom (project)
    Workflow personnalisé pour ce projet
    Flux : research → proposal → tasks

Commandes de Schéma

Commandes pour créer et gérer des schémas de workflow personnalisés.

openspec schema init

Créer un nouveau schéma local au projet.

openspec schema init <name> [options]

Arguments :

ArgumentRequisDescription
nameOuiNom du schéma (kebab-case)

Options :

OptionDescription
--description <text>Description du schéma
--artifacts <list>Liste d'identifiants d'artefacts séparés par des virgules (par défaut : proposal,specs,design,tasks)
--defaultDéfinir comme schéma par défaut du projet
--no-defaultNe pas demander de le définir par défaut
--forceÉcraser un schéma existant
--jsonSortie au format JSON

Exemples :

bash
# Création interactive d'un schéma
openspec schema init research-first

# Création non interactive avec des artefacts spécifiques
openspec schema init rapid \
  --description "Workflow d'itération rapide" \
  --artifacts "proposal,tasks" \
  --default

Ce qui est créé :

openspec/schemas/<name>/
├── schema.yaml           # Définition du schéma
└── templates/
    ├── proposal.md       # Modèle pour chaque artefact
    ├── specs.md
    ├── design.md
    └── tasks.md

openspec schema fork

Copier un schéma existant dans votre projet pour le personnaliser.

openspec schema fork <source> [name] [options]

Arguments :

ArgumentRequisDescription
sourceOuiSchéma à copier
nameNonNouveau nom du schéma (par défaut : <source>-custom)

Options :

OptionDescription
--forceÉcraser la destination existante
--jsonSortie au format JSON

Exemple :

bash
# Dupliquer le schéma intégré spec-driven
openspec schema fork spec-driven my-workflow

openspec schema validate

Valider la structure et les modèles d'un schéma.

openspec schema validate [name] [options]

Arguments :

ArgumentRequisDescription
nameNonSchéma à valider (valide tous les schémas si omis)

Options :

OptionDescription
--verboseAfficher les étapes de validation détaillées
--jsonSortie au format JSON

Exemple :

bash
# Valider un schéma spécifique
openspec schema validate my-workflow

# Valider tous les schémas
openspec schema validate

openspec schema which

Afficher la source de résolution d'un schéma (utile pour déboguer la priorité).

openspec schema which [name] [options]

Arguments :

ArgumentRequisDescription
nameNonNom du schéma

Options :

OptionDescription
--allLister tous les schémas avec leurs sources
--jsonSortie au format JSON

Exemple :

bash
# Vérifier d'où provient un schéma
openspec schema which spec-driven

Sortie :

spec-driven resolves from: package
  Source: /usr/local/lib/node_modules/@fission-ai/openspec/schemas/spec-driven

Priorité des schémas :

  1. Projet : openspec/schemas/<name>/
  2. Utilisateur : ~/.local/share/openspec/schemas/<name>/
  3. Paquet : Schémas intégrés

Commandes de Configuration

openspec config

Afficher et modifier la configuration globale d'OpenSpec.

openspec config <subcommand> [options]

Sous-commandes :

Sous-commandeDescription
pathAfficher l'emplacement du fichier de configuration
listAfficher tous les paramètres actuels
get <key>Obtenir une valeur spécifique
set <key> <value>Définir une valeur
unset <key>Supprimer une clé
resetRéinitialiser aux valeurs par défaut
editOuvrir dans $EDITOR
profile [preset]Configurer le profil de workflow de manière interactive ou via un préréglage

Exemples :

bash
# Afficher le chemin du fichier de configuration
openspec config path

# Lister tous les paramètres
openspec config list

# Obtenir une valeur spécifique
openspec config get telemetry.enabled

# Définir une valeur
openspec config set telemetry.enabled false

# Définir explicitement une valeur de chaîne
openspec config set user.name "Mon Nom" --string

# Supprimer un paramètre personnalisé
openspec config unset user.name

# Réinitialiser toute la configuration
openspec config reset --all --yes

# Éditer la configuration dans votre éditeur
openspec config edit

# Configurer le profil avec un assistant basé sur les actions
openspec config profile

# Préréglage rapide : basculer les workflows vers core (conserve le mode de livraison)
openspec config profile core

openspec config profile commence par un résumé de l'état actuel, puis vous permet de choisir :

  • Changer la livraison + les workflows
  • Changer uniquement la livraison
  • Changer uniquement les workflows
  • Conserver les paramètres actuels (quitter)

Si vous conservez les paramètres actuels, aucune modification n'est écrite et aucune invitation de mise à jour n'est affichée. S'il n'y a pas de modification de configuration mais que les fichiers du projet actuel ne sont pas synchronisés avec votre profil/livraison globale, OpenSpec affichera un avertissement et suggérera d'exécuter openspec update. Appuyer sur Ctrl+C annule également proprement le flux (sans trace de pile) et quitte avec le code 130. Dans la liste de contrôle des workflows, [x] signifie que le workflow est sélectionné dans la configuration globale. Pour appliquer ces sélections aux fichiers du projet, exécutez openspec update (ou choisissez Appliquer les modifications à ce projet maintenant ? lorsque vous êtes invité à l'intérieur d'un projet).

Exemples interactifs :

bash
# Mise à jour de la livraison uniquement
openspec config profile
# choisir : Changer uniquement la livraison
# choisir la livraison : Compétences uniquement

# Mise à jour des workflows uniquement
openspec config profile
# choisir : Changer uniquement les workflows
# basculer les workflows dans la liste de contrôle, puis confirmer

Commandes Utilitaires

openspec feedback

Soumettre des commentaires sur OpenSpec. Crée un ticket GitHub.

openspec feedback <message> [options]

Arguments :

ArgumentRequisDescription
messageOuiMessage de feedback

Options :

OptionDescription
--body <text>Description détaillée

Prérequis : L'interface en ligne de commande GitHub (gh) doit être installée et authentifiée.

Exemple :

bash
openspec feedback "Ajouter la prise en charge des types d'artefacts personnalisés" \
  --body "J'aimerais définir mes propres types d'artefacts au-delà de ceux intégrés."

openspec completion

Gérer les complétions de shell pour l'interface en ligne de commande OpenSpec.

openspec completion <subcommand> [shell]

Sous-commandes :

Sous-commandeDescription
generate [shell]Générer le script de complétion vers la sortie standard
install [shell]Installer la complétion pour votre shell
uninstall [shell]Supprimer les complétions installées

Shells supportés : bash, zsh, fish, powershell

Exemples :

bash
# Installer les complétions (détection automatique du shell)
openspec completion install

# Installer pour un shell spécifique
openspec completion install zsh

# Générer le script pour une installation manuelle
openspec completion generate bash > ~/.bash_completion.d/openspec

# Désinstaller
openspec completion uninstall

Codes de Sortie

CodeSignification
0Succès
1Erreur (échec de validation, fichiers manquants, etc.)

Variables d'Environnement

VariableDescription
OPENSPEC_TELEMETRYDéfinir sur 0 pour désactiver la télémétrie
DO_NOT_TRACKDéfinir sur 1 pour désactiver la télémétrie (signal DNT standard)
OPENSPEC_CONCURRENCYConcurrence par défaut pour la validation en masse (par défaut : 6)
EDITOR ou VISUALÉditeur pour openspec config edit
NO_COLORDésactiver la sortie colorée lorsque défini

Documentation Associée