I plugin sono in beta chiusa. Per richiedere l’accesso, contatta support@cognition.ai. Il comportamento e la configurazione potrebbero cambiare nelle prossime release.
Cosa sono i plugin?
.zip caricato) che puoi richiedere in tutta la tua org o Enterprise.
I plugin gestiti consentono a un amministratore di installare i plugin centralmente dalla web app di Devin, in modo che si applichino a tutti gli utenti dell’org o dell’Enterprise — senza alcuna configurazione per utente. Questo include le sessioni cloud Devin e gli utenti di Devin CLI che hanno effettuato l’accesso all’account (la configurazione a livello di Enterprise/account si applica anche alla CLI — vedi sessioni cloud vs. CLI). Quando un plugin viene installato, le sue skill diventano automaticamente disponibili in Devin come comandi /<plugin>:<skill>.
Questa pagina descrive il lato cloud (web app) dei plugin. Per il formato dei file dei plugin e il flusso di installazione per utente della CLI, consulta il Riferimento ai plugin CLI.
Dove configurarli
- Marketplace — esplora i plugin (il catalogo ufficiale di Devin più quelli aggiunti dalla tua org o dal tuo enterprise) e installali. L’installazione di un plugin lo aggiunge al manifest dell’ambito selezionato come plugin obbligatorio, quindi viene installato per tutti in quell’ambito.
- Configurazione — modifica il manifest del plugin direttamente come JSON e carica il tuo plugin come cartella o file
.zip(oppure creane uno nell’editor).
- Gli Org admins (con accesso alle Settings dell’organizzazione) gestiscono il manifest della org.
- Gli Enterprise admins (con accesso alle impostazioni enterprise) gestiscono anche il manifest enterprise condiviso.
Il manifest
requiredPlugins— installati per tutti nel relativo ambito (in modo ricorsivo, inclusi eventuali plugin da cui dipendono).optionalPlugins— una allow-list che approva i plugin senza installarli automaticamente; usata per definire eccezioni a un elemento vietato.forbiddenPlugins— una deny-list di identificatori di plugin o pattern glob (ad es.acme/*, oppure"*"per un blocco completo).
requiredPlugins / optionalPlugins è una sorgente — una stringa in forma abbreviata oppure un oggetto:
Tutte le forme GitHub per la stessa repo (
owner/repo, l’URL HTTPS, l’URL .git, il formato SSH) si riferiscono alla stessa identità del plugin.
Il manifest viene memorizzato testualmente; l’agente verifica la sorgente completa al momento dell’installazione.
Regole di governance
forbiddenPlugins vengono confrontate con le identità dei plugin:
- Un’identità esatta, scritta come
owner/repoo come URL Git. Tutte le forme GitHub della stessa repo (owner/repo, l’URL HTTPS, l’URL.git, la forma SSH) si riferiscono alla stessa identità. - Un pattern glob — qualsiasi voce che contenga
*.*corrisponde a qualsiasi sequenza di caratteri, incluso/:acme/*corrisponde a tutte le repo GitHub diacme,*/secretscorrisponde a una repo chiamatasecretscon qualsiasi owner ehttps://gitlab.com/acme/*corrisponde a qualsiasi repo in quel percorso. - Il solo
"*", che corrisponde a tutto il resto (un blocco totale).
- Prevale
deny. Un plugin è bloccato se un qualsiasi manifest attivo o plugin installato lo vieta. Se nulla vieta nulla, non viene bloccato nulla. - Auto-override. I
requiredPluginseoptionalPluginsdi un manifest (o di un plugin) — e, nel caso di un plugin, il plugin stesso — sono esenti dalla propria lista di elementi vietati, quindi"forbiddenPlugins": ["*"]più"optionalPlugins": ["acme/approved"]significa “consenti solo ciò che questo manifest elenca; vieta tutto il resto”. L’eccezione copre solo quelle voci dirette, non le dipendenze transitive di un plugin richiesto: in caso di blocco totale, elencale esplicitamente. - Nessuna nuova autorizzazione tra ambiti diversi. La allow-list di un manifest o plugin non può riabilitare ciò che un altro vieta. Un blocco totale con
"forbiddenPlugins": ["*"]non può essere aggirato da un ambito inferiore.
- Al momento dell’installazione — l’installazione di un plugin bloccato (o di uno i cui plugin richiesti non possono essere soddisfatti, o il cui nome entra in conflitto con un plugin installato) viene rifiutata.
- Al momento del caricamento — un plugin bloccato dopo essere già stato installato resta sul disco, ma le sue skills vengono saltate all’avvio della sessione con un avviso che indica chi lo vieta.
Aggiungere i propri plugin
.devin-plugin/plugin.json e una cartella skills/ con normali skills:
- Regole — un file
AGENTS.mdnella radice del plugin viene iniettato come regola always-on in ogni sessione — sia nelle sessioni cloud sia nella CLI. Anche i file Markdown in una cartellarules/vengono caricati, nel rispetto del loro frontmattertrigger— consulta il Riferimento ai plugin CLI. - Hook — un file
hooks.jsonnella radice del plugin registra Hook del ciclo di vita che vengono eseguiti nella sessione. Le sessioni cloud eseguono gli hookcommandper tutti gli eventi tranneSessionStarteSessionEnd— quindiPreToolUse,PostToolUse,PermissionRequest,UserPromptSubmit,StopePostCompactionfunzionano tutti; gli hook di tipopromptsono disponibili solo nella CLI/in locale. - server MCP — un file
mcp_config.jsonnella radice del plugin dichiara server MCP ("mcpServers": { "<name>": { … } }) che vengono caricati in ogni sessione in cui il plugin è installato. Non compaiono ancora nell’interfaccia Settings di MCP, ma i loro strumenti sono disponibili per Devin. La configurazione MCP di un plugin può impostare un Client ID OAuth e gli ambiti, ma mai un client secret OAuth — una configurazione del server che ne contiene uno viene rifiutata all’attivazione. - subagente personalizzato — profili
agents/<name>.md(oagents/<name>/AGENT.md). Attualmente vengono caricati solo negli agenti Devin locali — il Devin CLI e Devin Desktop — non nelle sessioni cloud.
requiredPlugins) — non puoi installare singole skill da un plugin. Per offrire le skill separatamente, suddividile in plugin distinti. Consulta il Riferimento ai plugin CLI per il formato completo di plugin.json e il flusso di creazione locale.
A seconda di dove si trova il plugin, aggiungilo in uno di questi modi:
Un repo (o una sottocartella
git-subdir) corrisponde a un plugin. Un singolo repo può ospitare molti plugin come sottocartelle, ciascuno referenziato con una propria voce git-subdir.
Caricamento di un bundle di plugin
.zip, oppure di crearne uno direttamente nell’Editor. Quando lo salvi, viene aggiunto al manifest come plugin obbligatorio (installandolo per tutti nell’ambito); quando lo elimini, il riferimento viene rimosso. Questa è una buona opzione per un plugin che non vuoi (o non puoi) ospitare in una repo Git.
Utilizzare un repo privato per le skills
git-subdir per installare un plugin da una sottocartella di un repo condiviso. (Gli utenti CLI che usano lo stesso manifest lo recuperano con le proprie credenziali Git locali, quindi avranno bisogno anche dell’accesso al repo.)
Se il repo non è raggiungibile tramite la tua integrazione Git, caricalo come bundle (sopra) oppure clonalo durante la configurazione dell’ambiente e fai riferimento a un percorso locale.
Come vengono distribuiti gli aggiornamenti
- Le modifiche al manifest (Settings → Marketplace) si applicano alla sessione successiva.
- Le modifiche al plugin — quando viene eseguito un merge nel branch seguito da un plugin, questo raggiunge automaticamente le nuove sessioni nel giro di poche ore. Blocca il plugin su un commit SHA per gestire tu stesso gli aggiornamenti; nella CLI,
devin plugins updateaggiorna immediatamente. - Le sessioni già in esecuzione mantengono ciò che hanno caricato all’avvio: gli aggiornamenti non modificano mai una sessione mentre è in corso.
Compatibilità
.devin-plugin/plugin.json, Devin ripiega su .claude-plugin/plugin.json. Quando sono presenti entrambi i manifest, prevale quello di Devin.
Ambito ed ereditarietà
- Gli account standalone hanno un unico manifest di account che si applica a tutti.
- Gli account Enterprise hanno un manifest enterprise condiviso che viene ereditato da ogni org figlia, più un manifest per-org posto a un livello inferiore. La vista Marketplace mostra entrambi, e gli amministratori enterprise possono scegliere di installare un plugin nell’ambito enterprise (si applica ovunque), oppure un amministratore di org può installarlo solo nella propria org.
- Manifest Enterprise / account (questa pagina)
- Manifest Org (questa pagina)
- Configurazione del plugin a livello di repo (il
.devin/config.jsondi una repo) - Plugin a livello di utente — le installazioni CLI personali di un utente, che si applicano solo al suo agente Devin locale e non vengono mai caricati nelle sessioni cloud
Sessioni cloud vs. CLI
Scopri di più
- Skills — le procedure
SKILL.mdincluse nei plugin - Riferimento ai plugin CLI — formato dei file dei plugin, creazione e installazione per utente
- Playbooks — modelli di prompt riutilizzabili allegati alle sessioni

