- plugin-template — un punto di partenza per creare un singolo plugin (o un paio di plugin).
- team-marketplace-template — il modello completo dell’ecosistema: un monorepo di plugin più un meta-plugin il cui manifest definisce la tua base e la tua policy.
.devin-plugin/plugin.json; tutto il resto è facoltativo:
AGENTS.md conciso — consuma contesto in ogni sessione per tutti coloro che usano il plugin.
2. Verifica e testa in locale
node scripts/validate-template.mjs) e un flusso di lavoro CI che lo esegue a ogni PR. Per una prova reale, installa da una cartella locale con Devin CLI:
.zip nel tuo ambito personale da Customize → Plugins e provarlo in una sessione cloud.
3. Ospitali in un’unica repo
plugins/<name>/), ciascuno con la propria sorgente git-subdir. La repo può rimanere privata: le sessioni cloud la recuperano tramite la tua integrazione Git, mentre gli utenti della CLI la recuperano con le proprie credenziali git (quindi devono avere accesso anche alla repo).
Fai un fork di team-marketplace-template per usare questa struttura e aggiorna gli URL git-subdir del suo meta-plugin in modo che puntino al tuo fork. Nel template il meta-plugin si trova nella radice della repo, quindi la repo stessa è l’unità installabile: richiedere your-org/your-marketplace installa l’intera base.
4. Definisci la base con un meta-plugin
5. Distribuzione da Customize
- Il manifest enterprise raggiunge tutte le organizzazioni dell’enterprise.
- Un manifest a livello di organizzazione raggiunge le sessioni cloud di quell’organizzazione e la CLI/Desktop dei membri per i quali è l’organizzazione principale.
6. Governare
"*"; nessun’altra lo è e nessun livello inferiore può ampliare questa eccezione. L’esenzione copre solo le voci elencate direttamente — le dipendenze transitive di un plugin obbligatorio non sono esenti — quindi, in caso di lockdown, elenca esplicitamente tutto ciò che il meta-plugin include (qui engineering-baseline e security-guardrails). Consulta dipendenze e governance per la semantica completa.
7. Evoluzione
- Il merge nel branch predefinito del repo del tuo plugin è il rilascio: le nuove sessioni lo recepiscono automaticamente — vedi come vengono distribuiti gli aggiornamenti.
- I team aggiungono plugin tramite PR al repo del marketplace; la CI del template convalida la struttura a ogni PR.
- I plugin Claude esistenti si installano così come sono (Devin usa
.claude-plugin/plugin.jsoncome fallback), quindi puoi includere plugin della community inoptionalPluginssenza doverli incorporare nella repo.
Limitazioni attuali
- I plugin vengono caricati nelle sessioni cloud, nel Devin CLI e in Devin Desktop (quando si usa Devin Local); non si applicano però all’agente Cascade classico.
- I Subagents (
agents/<name>.mdoagents/<name>/AGENT.md) vengono caricati solo negli agenti Devin locali (CLI e Devin Desktop), non nelle sessioni cloud. - Gli Hooks operano attualmente al meglio e senza bloccare in caso di errore: un hook che non riesce a caricarsi o a essere eseguito non interrompe la sessione; pertanto, non fare ancora affidamento su di essi per barriere di sicurezza cruciali. Consulta il riferimento agli hook della CLI per la configurazione locale.
- La governance non blocca in caso di errore: se non è possibile recuperare un manifest gestito all’avvio della sessione, i plugin di quel livello non vengono installati e i relativi divieti non vengono applicati per quella sessione.
- Il contenuto dei plugin proveniente da un repo privato compare in Customize solo per le organizzazioni la cui integrazione Git è in grado di raggiungere il repo; altrimenti viene nascosto fino a quando il repo non viene autorizzato in Settings → Repositories.
Per saperne di più
- Guida ai plugin — il lato app web: Customize, ambiti, indicizzazione, MCP
- Riferimento sui plugin CLI — formato dei file, creazione, installazioni per utente
- Skills — le procedure
SKILL.mdincluse nei bundle dei plugin

