Skip to main content
Esegui i comandi plugin come claude plugin dalla tua shell o da uno script, oppure come /plugin e /reload-plugins all’interno di una sessione Claude Code. Questo riferimento fornisce i flag, i valori predefiniti, l’output e i codici di uscita di ogni comando, insieme ai due flag che caricano un plugin per una sola sessione. Le tabelle seguenti elencano le opzioni di uso comune di ogni sottocomando, non tutte le opzioni. Esegui claude plugin --help nella tua shell per vedere quali sottocomandi ha la tua versione, e claude plugin <subcommand> --help per l’elenco completo delle opzioni di un sottocomando.
Questi casi sono trattati su altre pagine:

Comandi claude plugin

Esegui claude plugin <subcommand> dalla tua shell o da uno script, al di fuori di una sessione Claude Code. Questi sottocomandi installano e gestiscono i plugin senza aprire il pannello /plugin. claude plugins è un alias per claude plugin. Ogni sottocomando condivide questi codici di uscita, argomenti plugin e valori di ambito:
  • Codici di uscita: 0 in caso di successo e 1 in caso di errore. validate aggiunge l’uscita 2 per un errore inaspettato, e eval aggiunge i codici elencati nella sua sezione.
  • Argomenti plugin: un argomento <plugin> è un plugin name o name@marketplace. Quando due marketplace offrono lo stesso nome, usa la forma qualificata. configure accetta solo la forma qualificata.
  • Ambiti: --scope accetta user, project o local, e nomina il file di impostazioni in cui il comando scrive. update accetta anche managed.

plugin init

Crea lo scaffolding di un nuovo plugin in ~/.claude/skills/<name>/. Si carica nella tua prossima sessione come <name>@skills-dir senza alcun passaggio di installazione. new è un alias per init. Per il workflow di creazione, test e modifica che inizia con questo comando, vedi Crea un plugin.
<name> diventa il nome della directory sotto ~/.claude/skills/ e il name del plugin nel suo manifest. Il comando non ha un flag per un’altra posizione. Per creare lo scaffolding all’interno di un progetto, vedi Crea un plugin. Crea lo scaffolding di un plugin con file skill e hook starter:
Claude Code convalida ciò che ha scritto e stampa Created plugin "my-helper" at ~/.claude/skills/my-helper, seguito dall’id con cui si carica e dal comando claude plugin disable che lo disattiva. Claude Code esce con 1 senza scrivere quando non può creare lo scaffolding in sicurezza, e il messaggio nomina il motivo. Questi sono motivi comuni:
  • Un valore --with sconosciuto
  • Uno scaffolding esistente al target senza --force
  • Un’impostazione gestita che blocca i plugin della directory skills

plugin install

Installa un plugin da uno dei tuoi marketplace. i è un alias per install.
La maggior parte dei plugin si installa senza un prompt. Per un plugin il cui entry del marketplace esegue un comando per installarlo o imposta un headersHelper per il suo download, Claude Code prima stampa il comando e chiede Run this command now? [y/N]. Esegui claude plugin install --help nella tua shell per vedere ogni opzione che la tua versione supporta. Passa -y dal tuo terminale per accettare il comando visualizzato senza il prompt. Ecco cosa succede senza un TTY e quando Claude esegue il comando:
  • stdin o stdout non è un TTY, e non passi né -y né --accept-command: l’installazione viene rifiutata. L’output dice che il comando è stato solo visualizzato, e il codice di uscita è 1
  • Claude esegue il comando attraverso il suo strumento Bash: -y viene ignorato. Esegui il comando dal tuo terminale invece
Installa un plugin per tutti coloro che clonano il progetto:
Claude Code stampa Successfully installed plugin: formatter@my-marketplace (scope: project). Quando nulla di nuovo viene installato, l’output dice perché:
  • Già installato a quell’ambito: l’output è Plugin "formatter@my-marketplace" is already installed (scope: project) e il codice di uscita è 0
  • Rifiuti un prompt di origine comando: l’output è Aborted. e il codice di uscita è 1
  • Rifiuti un prompt headersHelper, o non può essere confermato senza un TTY: l’output è Aborted — the command was not run. e il codice di uscita è 1

Formato risultato JSON

Quando passi --json a plugin install, l’ultima riga di stdout è un oggetto JSON. Analizza solo quella riga, perché Claude Code stampa qualsiasi comando che il marketplace dichiara prima di essa. Tre campi sono sempre presenti:
  • command: il sottocomando che è stato eseguito, ad esempio install
  • outcome: ok o failed
  • message: una descrizione leggibile del risultato
Altri campi, come pluginId, scope e failureCode, appaiono solo quando si applicano. L’opzione --json su plugin uninstall, plugin update, plugin enable e plugin disable stampa lo stesso oggetto con i campi propri di quel sottocomando. Un errore di utilizzo, come uno --scope non valido, non stampa alcuna riga di risultato ed esce con 1 con il motivo su stderr.

Risultato JSON per i comandi marketplace

Su plugin marketplace add, plugin marketplace remove e plugin marketplace update, --json stampa un oggetto JSON sull’ultima riga di stdout con i campi command, outcome e message. Quanto segue è il risultato di claude plugin marketplace remove your-marketplace --json:
Il valore di command è marketplace-add, marketplace-remove o marketplace-update. I campi seguenti appaiono solo quando si applicano:
  • marketplace: il nome del marketplace su cui il comando ha agito
  • failureCode: un codice che indica perché il comando è fallito, come invalid_source
plugin marketplace add e plugin marketplace remove possono non stampare alcuna riga di risultato quando l’argomento è il nome riservato anthropic-plugin-directory, quindi controlla il codice di uscita per quel nome.

Accetta un comando di installazione visualizzato

Quando un’esecuzione --json visualizza un comando dichiarato dal marketplace e non lo esegue, il risultato failed porta anche un oggetto shownCommand. I suoi campi includono il comando come visualizzato, il plugin a cui appartiene, e lo sha256 del comando. Per accettare esattamente quel comando, esegui di nuovo con quello sha256 come --accept-command dal tuo terminale, perché il flag non ha effetto all’interno di una sessione Claude Code. Richiede Claude Code v2.1.271 o successivo. Lo sha256 conta come accettazione per esattamente quel comando, plugin e catalogo marketplace. Se uno di essi è cambiato dal momento in cui il comando è stato visualizzato, Claude Code non accetta lo sha256 e mostra di nuovo il comando. Un cambiamento che l’aggiornamento del marketplace della stessa esecuzione recupera conta anche come tale cambiamento. Se shownCommand.acceptCommandMatched è false, lo sha256 che hai passato non corrisponde al comando ora visualizzato. Rivedi quel comando prima di eseguire di nuovo con il suo sha256.

plugin uninstall

Rimuovi un plugin installato da un ambito. remove e rm sono alias per uninstall.
Disinstalla un plugin dall’ambito del progetto:
Claude Code stampa Successfully uninstalled plugin: formatter (scope: project). Quando il plugin non è installato a quell’ambito, il comando stampa una riga che inizia con Failed to uninstall plugin "formatter@my-marketplace": ed esce con 1. Se la riga di errore continua con "formatter" was not uninstalled: e nomina un file di impostazioni, Claude Code non ha potuto confermare che le impostazioni dell’ambito non attivano più il plugin, quindi il plugin rimane installato con tutto ciò che ha salvato. Con --json, il risultato porta failureCode: "settings_still_on". Questo controllo delle impostazioni richiede Claude Code v2.1.282 o successivo.

Cosa una disinstallazione elimina e conserva

Quando disinstalli un plugin dall’ultimo ambito in cui è installato, Claude Code elimina anche le opzioni e i segreti memorizzati del plugin e la sua directory di dati, ~/.claude/plugins/data/<id>/. Ci sono tre eccezioni:
  • Con --keep-data, la directory di dati rimane
  • Quando un altro plugin installato usa la stessa cartella, come uno il cui ID differisce da questo solo per maiuscole/minuscole, la directory di dati rimane
  • Quando Claude Code non può leggere l’elenco dei plugin installati dopo che rimuove il plugin da quell’ambito, le opzioni, i segreti e la directory di dati rimangono tutti, perché il plugin potrebbe essere ancora installato a un altro ambito. La disinstallazione ha comunque successo. Il messaggio elenca cosa è rimasto e come eliminarlo, e con --json il risultato porta savedKept: "install_records_unreadable"
Con --json, keptData riporta se la directory è rimasta, e /plugin mostra · data preserved quando lo ha fatto. Per una directory che rimane senza --keep-data, questo rapporto richiede Claude Code v2.1.281 o successivo. Il campo savedKept richiede Claude Code v2.1.282 o successivo.

plugin enable

Abilita un plugin disabilitato. Per un plugin sincronizzato da claude.ai, passa <name>@synced come plugin.
Senza --scope, il comando controlla i tuoi file di impostazioni nell’ordine local, project, user, e usa il primo ambito che menziona il plugin. Se passi uno --scope dove il plugin non è dichiarato, il comando scrive un override o fallisce:
  • Un ambito che ha precedenza su quello dichiarante: Claude Code scrive un override all’ambito che hai passato. Ad esempio, claude plugin disable formatter --scope local disattiva un plugin abilitato a livello di progetto solo per te
  • Qualsiasi altro ambito: il comando fallisce con Plugin "formatter" is installed at project scope, not user. Use --scope project or omit --scope to auto-detect.
Se il plugin è già abilitato all’ambito risolto, il comando stampa Plugin "formatter" is already enabled ed esce con 1. Con --json, il risultato ha "failureCode": "already_in_goal_state" e "alreadyInGoalState": true, quindi uno script può trattare quel caso come successo. Quando il plugin dichiara dipendenze, Claude Code le abilita anche. Il comando fallisce in questi casi:
  • Una dipendenza non è installata: enable fallisce e stampa il comando claude plugin install per ogni dipendenza mancante
  • Una dipendenza è bloccata dalla politica dei plugin della tua organizzazione: enable fallisce e nomina la dipendenza bloccata
  • Una dipendenza è impostata a false a un ambito con precedenza più alta dell’ambito target: enable fallisce. Abilita la dipendenza a quell’ambito, o passa --scope per scrivere lì
Riabilita un plugin ovunque sia dichiarato:
Claude Code stampa Successfully enabled plugin: formatter (scope: project), nominando l’ambito che ha rilevato.

plugin disable

Disabilita un plugin senza disinstallarlo. Per un plugin sincronizzato da claude.ai, passa <name>@synced come plugin.
Senza --scope, l’ambito è auto-rilevato nello stesso ordine local, project, user di plugin enable. Se non passi né un nome di plugin né --all, Claude Code stampa Please specify a plugin name or use --all to disable all plugins ed esce con 1. Disabilitare un plugin che è già disabilitato stampa Plugin "formatter" is already disabled ed esce con 1, come plugin enable fa per un plugin già abilitato. Il comando fallisce per un plugin che è ancora richiesto:
  • Un altro plugin abilitato dipende da esso: il comando fallisce e nomina i dipendenti da disabilitare prima
  • La tua organizzazione lo richiede come plugin sincronizzato: il comando fallisce e non salva nulla
Disabilita un plugin:
Claude Code stampa Successfully disabled plugin: formatter (scope: project).

plugin update

Aggiorna un plugin all’ultima versione che il suo marketplace offre. La nuova versione si carica nella tua prossima sessione, o dopo che esegui /reload-plugins in una sessione in esecuzione.