- plugin-template — une base de départ pour créer un plugin unique (ou un ou deux).
- team-marketplace-template — le modèle complet d’écosystème : un monorepo de plugins, ainsi qu’un méta-plugin dont le manifeste définit votre configuration de base et votre politique.
.devin-plugin/plugin.json ; tout le reste est facultatif :
AGENTS.md court — il consomme du contexte à chaque session pour tous les utilisateurs du plugin.
2. Valider et tester en local
node scripts/validate-template.mjs) et un workflow CI qui l’exécute à chaque PR. Pour un test en conditions réelles, installez-les depuis un dossier local avec le Devin CLI :
.zip dans votre périmètre personnel depuis Customize → Plugins et le tester dans une session cloud.
3. Hébergez-les dans un seul repo
plugins/<name>/), chacun référencé avec sa propre source git-subdir. Le repo peut rester privé : les sessions cloud le récupèrent via votre intégration Git, et les utilisateurs du CLI le récupèrent avec leurs propres identifiants Git (ils doivent donc eux aussi avoir accès au repo).
Faites un fork de team-marketplace-template pour utiliser cette structure — puis mettez à jour les URL git-subdir de son méta-plugin pour qu’elles pointent vers votre fork. Dans le template, le méta-plugin se trouve à la racine du repo ; le repo lui-même est donc l’unité installable : déclarer your-org/your-marketplace installe toute la configuration de base.
4. Définissez votre configuration de base avec un méta-plugin
5. Distribuer depuis Customize
- Le manifeste enterprise s’applique à toutes les organizations de l’enterprise.
- Un manifeste organization s’applique aux cloud sessions de cette organization, ainsi qu’au CLI/Desktop des members dont c’est l’organization principale.
6. Gouvernance
"*" ; rien d’autre ne l’est, et aucun niveau inférieur ne peut élargir cette exception. L’exemption ne couvre que les entrées directement listées — les dépendances transitives d’un plugin requis ne sont pas exemptées — donc, en cas de verrouillage, listez explicitement tout ce que le méta-plugin embarque (ici engineering-baseline et security-guardrails). Consultez dépendances et gouvernance pour la sémantique complète.
7. Faire évoluer
- La fusion dans la branche par défaut du repo de votre plugin constitue la publication : les nouvelles sessions la prennent en compte automatiquement — voir comment les mises à jour sont déployées.
- Teams ajoutent des plugins par PR au repo de la marketplace ; la CI du template valide la structure à chaque PR.
- Les plugins Claude existants s’installent tels quels (Devin utilise
.claude-plugin/plugin.jsonà défaut), vous pouvez donc recommander des plugins de la communauté dansoptionalPluginssans les intégrer au dépôt.
Limitations actuelles
- Les plugins se chargent dans les sessions cloud, le Devin CLI et Devin Desktop (lors de l’utilisation de Devin Local) ; ils ne s’appliquent pas à l’agent Cascade classique.
- Les Subagents (
agents/<name>.mdoragents/<name>/AGENT.md) se chargent uniquement dans les agents Devin locaux (CLI et Devin Desktop), et non dans les sessions cloud. - Les Hooks sont actuellement exécutés au mieux et échouent en mode ouvert — un hook qui ne parvient pas à se charger ou à s’exécuter n’arrête pas la session — ne vous y fiez donc pas encore pour des garde-fous essentiels. Consultez la référence des hooks du CLI pour la configuration locale.
- La gouvernance échoue en mode ouvert : si un manifeste géré ne peut pas être récupéré au démarrage de la session, les plugins de ce niveau ne sont pas installés et ses interdictions ne sont pas appliquées pour cette session.
- Le contenu de plugin provenant d’un repo privé n’apparaît dans Customize que pour les organisations dont l’intégration Git peut accéder au repo ; ailleurs, il reste masqué jusqu’à ce que le repo soit autorisé dans Settings → Repositories.
En savoir plus
- Guide des plugins — côté application web : Customize, périmètres, indexation, MCP
- Référence des plugins CLI — format de fichier, création, installations par utilisateur
- Skills — les procédures
SKILL.mdfournies avec les plugins

