Strumenti Supportati
OpenSpec funziona con molti assistenti di codifica AI. Quando esegui openspec init, OpenSpec configura gli strumenti selezionati utilizzando il profilo attivo, la selezione del flusso di lavoro e la modalità di consegna.
Come Funziona
Per ogni strumento selezionato, OpenSpec può installare:
- Skills (se la consegna include skills):
.../skills/openspec-*/SKILL.md - Commands (se la consegna include commands): file di comando
opsx-*specifici dello strumento
Codex è solo skills: OpenSpec installa .agents/skills/openspec-*/SKILL.md per Codex anche quando la consegna è impostata su commands, e non genera file di prompt personalizzati per Codex. Le skills gestite da OpenSpec nel percorso legacy .codex/skills vengono riconciliate dopo che le loro sostituzioni sono state scritte; i file personalizzati e divergenti vengono preservati.
Per impostazione predefinita, OpenSpec utilizza il profilo core, che include:
proposeexploreapplyupdatesyncarchive
Puoi abilitare flussi di lavoro estesi (new, continue, ff, verify, bulk-archive, onboard) tramite openspec config profile, quindi esegui openspec update.
Come Invocare
Questi documenti usano /opsx:propose come nome canonico, ma ogni strumento lo scrive nel modo in cui carica il file che OpenSpec ha scritto. Trova il percorso dei comandi del tuo strumento nel Riferimento alla Directory degli Strumenti di seguito, poi abbina la sua forma qui.
| File di comando scritto da OpenSpec | Tu digiti | Strumenti |
|---|---|---|
.../commands/opsx/<id>.* — una cartella opsx/ lo colloca in un namespace | /opsx:<id> | Claude Code, CodeBuddy, Crush, Gemini CLI, Lingma, Qoder, ZCode |
.../opsx-<id>.* — il nome del file è il comando | /opsx-<id> | Ogni altro strumento con file di comando generati, eccetto Amazon Q e Devin |
.devin/workflows/opsx-<id>.md — letto solo da uno dei due agenti di Devin | /opsx-<id> su Devin Desktop, /openspec-<skill> su Devin Local | Devin Desktop**** |
.amazonq/prompts/opsx-<id>.md — un prompt, non un comando | @opsx-<id> | Amazon Q Developer |
| nessuno — solo skill | /openspec-<skill> | CodeArts, ForgeCode, Hermes, MiniMax Code, Mistral Vibe, Zed Agent, .agents condiviso |
| nessuno — Kimi Code | /skill:openspec-<skill> | Kimi Code |
| nessuno — Codex CLI | $openspec-<skill> | Codex (/openspec-<skill> non è riconosciuto) |
Quindi /opsx:propose è /opsx-propose in Cursor, @opsx-propose in Amazon Q, e $openspec-propose in Codex.
Due cose variano indipendentemente, motivo per cui le righe non si comprimono:
- Il nome. Le righe 1–2 differiscono solo nel modo in cui il file nomina il comando, e la radice
opsx-<id>/opsx:<id>è la stessa per ogni strumento con file di comando generati. - Il wrapper. Amazon Q carica i suoi file in una libreria di prompt invocati con
@. Gli strumenti solo-skill non generano alcun file di comando, quindi le loro ultime tre righe usano nomi skill — elencati in Nomi Skill Generati — che non mappano uno-a-uno sugli ID di comando (/opsx:applyè la skillopenspec-apply-change).
I pattern dei percorsi dei comandi sopra sono volutamente neutri rispetto all'estensione (.*): l'estensione è quella dello strumento (.toml per Gemini CLI, .prompt per Continue, .prompt.md per Kiro e GitHub Copilot), e alcuni strumenti mostrano il nome con la sua estensione nel selettore. Abbina la forma della directory, non l'estensione.
I file che OpenSpec genera, e il suggerimento "Per iniziare" stampato dopo la configurazione, usano già la forma corretta per gli strumenti selezionati — quindi la risposta più veloce è leggere il suggerimento.
Riferimento alla Directory degli Strumenti
| Strumento (ID) | Pattern percorso Skill | Pattern percorso Comando |
|---|---|---|
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 | Non generato (nessun adattatore di comando; usa invocazioni basate su skill /openspec-*) |
CodeBuddy (codebuddy) | .codebuddy/skills/openspec-*/SKILL.md | .codebuddy/commands/opsx/<id>.md |
Codex (codex) | .agents/skills/openspec-*/SKILL.md | Non generato (solo skill; usa $openspec-*) |
Devin Desktop, formerly Windsurf (devin) | .devin/skills/openspec-*/SKILL.md | .devin/workflows/opsx-<id>.md**** |
ForgeCode (forgecode) | .forge/skills/openspec-*/SKILL.md | Non generato (nessun adattatore di comando; usa invocazioni basate su 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*** | Non generato (nessun adattatore di comando; usa invocazioni basate su 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 | Non generato (nessun adattatore di comando; usa invocazioni basate su 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 | Non generato (nessun adattatore di comando; usa le skill MiniMax Code) |
Mistral Vibe (vibe) | .vibe/skills/openspec-*/SKILL.md | Non generato (nessun adattatore di comando; usa invocazioni basate su 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 | Non generato. Rovo non ha una superficie di comandi slash — abbina le skill automaticamente o tramite prompt (es. "usa la skill openspec-propose"); /skills le gestisce solo. Il contenuto generato fa riferimento alle skill per nome, mai come comandi /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 | Non generato (solo skill; usa /openspec-* o @openspec-*) |
ZCode (zcode) | .zcode/skills/openspec-*/SKILL.md | .zcode/commands/opsx/<id>.md |
.agents condiviso (agents) | .agents/skills/openspec-*/SKILL.md | Non generato (nessun adattatore di comando; usa invocazioni basate su skill /openspec-*) |
** I file prompt di GitHub Copilot sono riconosciuti come comandi slash personalizzati nelle estensioni IDE (VS Code, JetBrains, Visual Studio). La CLI di Copilot attualmente non consuma direttamente .github/prompts/*.prompt.md. Selezionando github-copilot puoi anche configurare l'agente di coding cloud ospitato su GitHub — vedi Agente di coding cloud di GitHub Copilot di seguito.
*** Hermes carica le skill da ~/.hermes/skills/ per impostazione predefinita. Per utilizzare le skill OpenSpec locali al progetto, aggiungi la directory .hermes/skills/ del progetto a skills.external_dirs in ~/.hermes/config.yaml; Hermes quindi espone le skill con invocazioni slash visibili all'utente come /openspec-propose.
**** Windsurf è stato rinominato in Devin Desktop il 2 giugno 2026, e la sua directory di configurazione si è spostata: .devin/ è la posizione preferita per lettura+scrittura, .windsurf/ un fallback legacy di sola lettura. OpenSpec segue la rinomina — l'ID dello strumento è devin, e --tools windsurf risolve ancora ad esso, così gli script di configurazione esistenti continuano a funzionare. Un progetto che ha ancora file OpenSpec in .windsurf/ riceve la proposta di spostamento al prossimo openspec update; rifiutare lascia tutto al suo posto, e i file scritti da te non vengono mai toccati. Le workflow sono invocate per nome file, quindi .devin/workflows/opsx-apply.md è /opsx-apply. L'agente Devin Local non supporta le workflow — solo le skill, e non legge affatto .windsurf/ — quindi quando OpenSpec scrive le skill di Devin mantiene i loro corpi, e il suggerimento iniziale, su invocazioni /openspec-*, che funzionano su entrambi gli agenti. Nella distribuzione solo-comandi non vengono scritte skill e entrambi cadono su /opsx-*.
Il supporto SourceCraft Code Assistant è destinato alla sua estensione VS Code. I suoi comandi personalizzati e skill sono disponibili solo in VS Code. Questa integrazione non configura SourceCraft web o JetBrains.
Con la distribuzione solo-skill, chiedi a Code Assistant di usare la skill openspec-propose con la tua idea. Le skill si attivano tramite corrispondenza delle richieste; OpenSpec non genera comandi /openspec-* per questo strumento.
MiniMax Code è un'integrazione globale solo-skill. OpenSpec scrive solo le sue directory openspec-* sotto ~/.minimax/skills/; non crea directory locali al repository .minimax o .mavis. La distribuzione solo-comandi lascia intatte le skill globali esistenti di MiniMax Code, così l'impostazione di distribuzione di un progetto non può rimuovere skill usate da un altro progetto.
Agente di coding cloud di GitHub Copilot
L'agente di coding Copilot di GitHub esegue su GitHub in un ambiente GitHub Actions — separato da Copilot nel tuo editor. OpenSpec può configurarlo per usare la CLI OpenSpec generando due file:
.github/workflows/copilot-setup-steps.yml— installa@fission-ai/openspecnell'ambiente dell'agente.github/agents/openspec.agent.md— dice all'agente come guidare OpenSpec
Poiché questo scrive una workflow GitHub Actions nel tuo repository, è opt-in (scelta esplicita):
| Come | Comportamento |
|---|---|
openspec init (interattivo) | Chiede se configurare i file cloud. L'impostazione predefinita è No. |
openspec init --copilot-cloud | Li configura senza chiedere (per script/CI). |
openspec init --no-copilot-cloud | Li salta senza chiedere, e rimuove quelli generati in precedenza. |
openspec update | Non chiede mai. Aggiorna i file solo se hai optato (o il progetto li ha già). Se hai optato per non configurarli, rimuove i file cloud gestiti da OpenSpec. |
La tua scelta viene salvata in openspec/config.yaml come githubCopilot.cloudAgent: true|false, così gli aggiornamenti non interattivi la rispettano. OpenSpec scrive o rimuove solo file il cui contenuto ha generato — se personalizzi copilot-setup-steps.yml o openspec.agent.md, o ne hai già uno tuo, non viene toccato (e init/update te lo dicono).
Quando scegliere la destinazione condivisa .agents
agents è l'opzione neutrale rispetto al fornitore: scrive skill in .agents/skills/, la radice condivisa che molti strumenti agente leggono, invece di una directory specifica dello strumento.
| Situazione | Scegli |
|---|---|
| Il tuo strumento ha una propria riga sopra | Il suo ID — ottieni l'integrazione di quello strumento, inclusi i comandi slash dove li supporta |
Più agenti su un repository, tutti che leggono .agents/skills | agents — un albero di skill invece di uno per strumento |
Il tuo strumento non è ancora elencato ma legge .agents/skills | agents |
Selezionarlo insieme a un ID specifico dello strumento è accettabile; di norma ciascuno scrive nella propria radice. Codex e Zed Agent sono le eccezioni perché usano la stessa radice canonica .agents. Se Codex è selezionato con Zed o agents, OpenSpec mantiene un albero guidato da Codex. I suoi passaggi nominano sia $openspec-* per Codex sia /openspec-* per altri agenti, quindi --tools all e le configurazioni multi-agente esistenti continuano a funzionare senza che due scrittori sovrascrivano gli stessi file. OpenSpec lo offre anche automaticamente una volta che un progetto ha una directory .agents/skills/ — un semplice .agents/ non basta, poiché gli strumenti usano quella radice anche per regole e definizioni di subagent. Nota che .agents non è .agent: la directory singolare appartiene ad Antigravity.
Due cose da sapere:
Solo skill. Non esiste alcun adattatore di comandi, quindi non vengono scritti file di comando
opsx-*; con una modalità di distribuzione inclusiva dei comandi,openspec initelencaagentstra gli strumenti che segnala sottoComandi saltati per: … (nessun adattatore). Invoca le workflow per nome di skill — la maggior parte degli assistenti che leggono.agents/skillslo scrivono come/openspec-propose, la forma che il suggerimento di configurazione di OpenSpec stampa. La destinazione è neutrale rispetto al fornitore, quindi controlla la documentazione del tuo assistente se usa un'altra forma.Nessun
AGENTS.mdviene creato o modificato. La destinazione è la directory.agents/. Se il tuoAGENTS.mdradice contiene ancora blocchi marcatore OpenSpec da una versione precedente,openspec updateli rimuove — vedi la Guida alla migrazione.
Il supporto Zed qui è per l'agente Zed integrato. Gli Agenti Esterni Zed e i Thread Terminali usano le proprie integrazioni. Le Skill dell'Agente richiedono Zed v1.4.2 o successivo. Le skill locali al progetto non sono disponibili in un albero di lavoro non attendibile finché non concedi la fiducia.
Poiché .agents/skills/ è condiviso da Codex, Zed Agent e la destinazione neutrale, vale la pena sapere cosa OpenSpec reclama lì: scrive, aggiorna e rimuove solo le directory skill openspec-* per le workflow selezionate, più un marcatore .openspec-target che registra se Codex, Zed Agent o la destinazione neutrale ha renderizzato quell'albero condiviso. Qualsiasi altra cosa in quella directory viene lasciata intatta. Tratta i nomi openspec-* e il marcatore come di OpenSpec — le modifiche al loro interno vengono sostituite al prossimo openspec update, come per ogni altro strumento.
Per progetti pre-marcatore, OpenSpec deduce la proprietà dai riferimenti alle skill gestite: $openspec-* significa Codex e /openspec-* significa la destinazione neutrale. Un albero canonico generico accanto a .codex/skills legacy viene trattato come un'installazione dual-target più vecchia e consolidato nell'albero condiviso compatibile.
openspec update rispetta anche questa proprietà. Se un progetto possiede .agents come destinazione neutrale e viene rilevata un'installazione Codex residua solo da file prompt sparsi, l'aggiornamento lascia l'albero agents esistente al suo posto invece di riscriverlo con sintassi Codex, e preserva quei file prompt legacy invece di cancellarli. Per passare l'albero condiviso a Codex, esegui esplicitamente openspec init --tools codex.
Configurazione non interattiva
Per ambienti CI/CD o configurazioni scriptate, utilizza --tools (e opzionalmente --profile):
# Configura strumenti specifici
openspec init --tools claude,cursor
# Configura tutti gli strumenti supportati
openspec init --tools all
# Salta la configurazione degli strumenti
openspec init --tools none
# Sovrascrivi il profilo per questa esecuzione di init
openspec init --profile coreID degli strumenti disponibili (--tools) — è accettato anche windsurf, come alias per 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
Installazione dipendente dal flusso di lavoro
OpenSpec installa gli artefatti del flusso di lavoro in base ai flussi di lavoro selezionati:
- Profilo core (predefinito):
propose,explore,apply,update,sync,archive - Selezione personalizzata: qualsiasi sottoinsieme di tutti gli ID dei flussi di lavoro:
propose,explore,new,continue,apply,update,ff,sync,archive,bulk-archive,verify,onboard
In altre parole, il numero di skill/comandi dipende dal profilo e dalla consegna, non è fisso.
Nomi delle skill generate
Quando selezionate tramite la configurazione del profilo/flusso di lavoro, OpenSpec genera queste skill:
openspec-proposeopenspec-exploreopenspec-new-changeopenspec-continue-changeopenspec-apply-changeopenspec-update-changeopenspec-ff-changeopenspec-sync-specsopenspec-archive-changeopenspec-bulk-archive-changeopenspec-verify-changeopenspec-onboard
Consulta Commands per il comportamento dei comandi e CLI per le opzioni di init/update.
Correlati
- CLI Reference — Comandi terminal
- Commands — Slash commands e skills
- Getting Started — Prima configurazione