Repository files navigation

opencode-agents

🇬🇧 English version

CIAgentsTestsLicenseNodenpmAsk DeepWiki

Demo

Registre curé de 69 agents IA pour OpenCode, distribué via un CLI zero-dependency et un TUI interactif. Les agents sont des fichiers .md contenant des system prompts pour configurer des assistants IA spécialisés.

Chaque agent suit un format expert à 4 sections : identité, décisions, exemples, quality gate.


🚀 Quickstart

# TUI interactif avec suggestions intelligentes (auto-détecte TTY)
npx github:dmicheneau/opencode-template-agent
# Détecte la stack et suggère les agents adaptés
npx github:dmicheneau/opencode-template-agent install
# CLI rapide — installer un pack en une commande
npx github:dmicheneau/opencode-template-agent install --pack backend

📦 Installation

Mode 1 — TUI interactif (recommandé)

Le TUI est le moyen le plus simple de découvrir et installer des agents. Il se lance automatiquement lorsque le terminal supporte un TTY.

npx github:dmicheneau/opencode-template-agent
# ou explicitement :
npx github:dmicheneau/opencode-template-agent tui

Ce que ça fait :

  • Auto-détecte le TTY et lance l'interface interactive
  • Écran de suggestions au démarrage : si une stack est détectée dans le projet courant, les agents les plus pertinents apparaissent pré-sélectionnés — appuyez sur Space pour désélectionner, Enter pour installer, B pour parcourir tout le catalogue
  • Parcourir les catégories par onglets ( / Tab)
  • Naviguer dans les listes avec
  • Sélectionner des agents avec Space, installer avec Enter
  • Recherche intégrée (/), exploration par packs et catégories

Mode 2 — CLI non-interactif

Pour l'automatisation ou une installation rapide sans interface graphique.

Commandes :

# Détecter la stack et suggérer les agents adaptés
npx github:dmicheneau/opencode-template-agent install
# Installer un agent spécifique
npx github:dmicheneau/opencode-template-agent install typescript-pro
# Installer un ou plusieurs packs (virgule ou espace)
npx github:dmicheneau/opencode-template-agent install --pack backend
npx github:dmicheneau/opencode-template-agent install --pack backend,devops
# Installer une ou plusieurs catégories
npx github:dmicheneau/opencode-template-agent install --category languages
npx github:dmicheneau/opencode-template-agent install --category languages,data-api
# Installer tous les agents
npx github:dmicheneau/opencode-template-agent install --all
# Lister tous les agents par catégorie
npx github:dmicheneau/opencode-template-agent list
# Lister les packs disponibles
npx github:dmicheneau/opencode-template-agent list --packs
# Rechercher des agents
npx github:dmicheneau/opencode-template-agent search docker
npx github:dmicheneau/opencode-template-agent search "machine learning"

Options :

OptionDescription
--forceÉcraser les fichiers existants ; avec install sans argument, re-propose les agents déjà installés
--dry-runAperçu sans écriture sur le disque (fonctionne aussi avec la suggestion automatique)

Note :--pack et --category sont mutuellement exclusifs.

Mode 3 — Script bash / Clone local

Via script bash :

curl -fsSL https://raw.githubusercontent.com/dmicheneau/opencode-template-agent/main/install.sh | bash

Options : --copy, --global, --dir PATH, --force, --dry-run, --uninstall.

Via clone local :

git clone https://github.com/dmicheneau/opencode-template-agent.git ~/.opencode-agents
echo'export OPENCODE_CONFIG_DIR=~/.opencode-agents'>>~/.zshrc
source~/.zshrc

Les agents sont installés dans .opencode/agents/. Node.js 20+ requis pour les modes 1 et 2.


🔌 Plugin OpenCode

Le plugin expose le registre des 69 agents comme outils LLM directement dans les sessions OpenCode. Version actuelle : discovery-only (v1) — 4 tools en lecture seule, aucune modification du système de fichiers.

Installation

Globale (recommandé — disponible dans toutes les sessions OpenCode) :

Ajouter dans ~/.config/opencode/opencode.json :

{
"plugin": ["github:dmicheneau/opencode-template-agent"]
}

Par projet (disponible uniquement dans le projet concerné) :

Ajouter dans .opencode/opencode.json à la racine du projet :

{
"plugin": ["github:dmicheneau/opencode-template-agent"]
}

Tools disponibles

ToolDescription
search_agentsRecherche par nom, description, catégorie ou tags
list_agentsListe tous les agents groupés par catégorie, avec filtres optionnels par catégorie ou pack
get_agentDétails complets d'un agent (description, mode d'installation, état d'installation, suggestions de correction si typo)
check_healthRapport de santé du registre (agents installés, obsolètes, manquants, intégrité)

v1.1 — Types préfixés Oc* pour éviter les collisions de namespace, mode readonly pour les opérations lock, et sanitization des chemins absolus dans les messages d'erreur.

Exemples d'utilisation

> Cherche un agent pour TypeScript
> Liste les agents de la catégorie security
> Vérifie la santé du registre

Structure des fichiers

plugin/
index.ts # point d'entrée (exporté comme Plugin OpenCode)
tools.ts # définitions des 4 tools
types.d.ts # déclarations de types

Prérequis : OpenCode + Bun (le TypeScript est transpilé nativement, pas d'étape de build).


🏗️ Architecture

Documentation détaillée : docs/architecture.md

Le diagramme ci-dessous présente l'architecture globale du système : le point d'entrée CLI, les modules TUI, le registre d'agents et les scripts de veille upstream.

flowchart TB
User["Utilisateur"]
subgraph CLI["bin/cli.mjs — Point d'entree CLI"]
Parse["Analyse des arguments<br/>(install, list, search, tui)"]
end
subgraph TUI["Interface TUI interactive"]
Index["index.mjs<br/>Orchestrateur<br/>(lifecycle, boucle principale,<br/>signaux)"]
Screen["screen.mjs<br/>E/S Terminal<br/>(raw mode, flush,<br/>resize, onInput)"]
Input["input.mjs<br/>Parseur de touches<br/>(raw bytes → ~20 Actions)"]
State["state.mjs<br/>Machine a etats<br/>(browse, search, confirm,<br/>installing, pack_detail,<br/>done, quit)"]
Renderer["renderer.mjs<br/>Constructeur de frames<br/>(state → chaine ANSI)"]
Ansi["ansi.mjs<br/>Codes ANSI, couleurs,<br/>box drawing, palettes<br/>(catColor, tabColor)"]
end
subgraph Data["Couche de donnees"]
Registry["registry.mjs<br/>Chargeur de manifest<br/>(validation, getAgent,<br/>getCategory, searchAgents,<br/>resolvePackAgents)"]
Manifest["manifest.json<br/>69 agents | 10 categories<br/>15 packs"]
Installer["installer.mjs<br/>Telechargement GitHub raw<br/>→ .opencode/agents/"]
end
subgraph Sync["Veille upstream (manual dispatch)"]
Upstream["davila7/claude-code-templates<br/>(depot upstream)"]
SyncScript["sync-agents.py<br/>(1200 lignes, fetch,<br/>conversion tools→permission,<br/>CURATED + EXTENDED agents)"]
SyncCommon["sync_common.py<br/>(HTTP, cache ETag,<br/>frontmatter, validation)"]
UpdateManifest["update-manifest.py<br/>(fusion manifest,<br/>prefix NEEDS_REVIEW)"]
GHA["GitHub Actions<br/>(workflow_dispatch uniquement,<br/>CI: test + lint + validate)"]
end
LocalDir[".opencode/agents/<br/>Agents installes"]
User --> CLI
Parse -->|"tui"| Index
Parse -->|"install"| Installer
Parse -->|"list / search"| Registry
Index --> Screen
Screen --> Input
Input --> State
State --> Renderer
Renderer --> Ansi
Ansi -->|"frames ANSI"| Screen
Index --> Registry
Index --> Installer
Registry --> Manifest
Installer -->|"telecharge"| LocalDir
Upstream --> SyncScript
SyncScript --> SyncCommon
SyncScript --> UpdateManifest
UpdateManifest --> Manifest
GHA -->|"orchestre"| SyncScript
GHA -->|"orchestre"| UpdateManifest
classDef entrypoint fill:#4a90d9,stroke:#2c5f8a,color:#fff
classDef tui fill:#6ab04c,stroke:#3d7a28,color:#fff
classDef data fill:#f0932b,stroke:#c0741e,color:#fff
classDef sync fill:#9b59b6,stroke:#6c3483,color:#fff
classDef storage fill:#e74c3c,stroke:#a93226,color:#fff
classDef user fill:#34495e,stroke:#1c2833,color:#fff
class User user
class Parse entrypoint
class Index,Screen,Input,State,Renderer,Ansi tui
class Registry,Manifest,Installer data
class Upstream,SyncScript,SyncCommon,UpdateManifest,GHA sync
class LocalDir storage
Loading

Deux diagrammes supplémentaires sont disponibles dans docs/architecture.md :

  • Flux utilisateur TUI — machine à états complète (suggest, browse, search, confirm, installing, done)
  • Pipeline de mise à jour des agents — scripts de veille upstream et workflow de découverte/évaluation (manual dispatch uniquement)

📋 Agents disponibles

69 agents répartis en 10 catégories, invocables via @catégorie/nom.

CatégorieAgentsDescription
💻 Languages11TypeScript, Python, Go, Rust, Java, C#, PHP, Kotlin, C++, Rails, Swift
🤖 AI9AI engineering, data science, ML, MLOps, LLM, prompts, recherche, data engineering, data analysis
🌐 Web9React, Next.js, Vue, Angular, mobile, UI design, analyse UI, accessibilité, fullstack
🗄️ Data & API6Architecture API, GraphQL, bases de données, PostgreSQL, Redis, SQL
⚙️ DevOps9Docker, Kubernetes, Terraform, AWS, CI/CD, Linux, plateforme, SRE, incident response
🛠️ DevTools8Code review, debugging, performance, refactoring, tests, orchestration, microservices, QA, legacy modernization
🔒 Security5Audit sécurité, tests de pénétration, smart contracts, security engineering, conformité
🔌 MCP2Développement MCP, audit sécurité MCP
📊 Business6Product management, project management, PRD, Scrum, UX research, business analysis
📝 Docs4Documentation technique, API, rédaction, diagrammes

📊 Qualité des agents

Chaque agent est évalué automatiquement par scripts/quality_scorer.py sur 8 dimensions (score 1-5 chacune) :

DimensionCe qui est mesuré5/5
frontmatterPrésence de description, mode, permission3 champs présents
identityParagraphe d'identité entre le frontmatter et le premier ##50-300 mots
decisionsSection ## Decisions avec arbres IF/THEN≥ 5 règles
examplesSection ## Examples avec blocs de code≥ 3 exemples
quality_gateSection ## Quality Gate avec critères de validation≥ 5 critères
concisenessNombre de lignes (70-120 idéal) et ratio de filler phrases70-120 lignes, ≤ 3% filler
no_banned_sectionsAbsence des anciennes sections (Workflow, Tools, Anti-patterns, Collaboration)0 section interdite
version_pinningRéférences à des versions et années dans l'identitéVersion + année présents

Seuil de passage : moyenne ≥ 3.5 ET aucune dimension < 2

Labels : Excellent (≥ 4.5) · Good (≥ 3.5) · Needs improvement (≥ 2.5) · Poor (< 2.5)

Catalogue des agents

69 agents · Score moyen : 4.59/5 · 100% pass rate · 49 Excellent, 20 Good

Coût token estimé : taille en bytes / 4 (approximation pour contenu anglais + code).

CatégorieAgentScoreLabel~TokensLignes
aiai-engineer4.75Excellent1 164113
aidata-analyst4.75Excellent1 088102
aidata-engineer4.75Excellent1 180106
aidata-scientist4.75Excellent1 218108
aillm-architect4.88Excellent1 353125
aiml-engineer4.75Excellent1 170108
aimlops-engineer4.75Excellent1 205125
aiprompt-engineer4.75Excellent1 386121
aisearch-specialist4.62Excellent1 316114
businessbusiness-analyst4.62Excellent1 260104
businessprd4.25Good1 40774
businessproduct-manager4.25Good1 04385
businessproject-manager4.38Good1 17489
businessscrum-master4.25Good1 26598
businessux-researcher4.25Good1 446116
data-apiapi-architect4.75Excellent1 351128
data-apidatabase-architect4.50Excellent1 265113
data-apigraphql-architect4.88Excellent1 249128
data-apipostgres-pro4.50Excellent1 208119
data-apiredis-specialist4.88Excellent1 243122
data-apisql-pro4.50Excellent2 136165
devopsaws-specialist4.88Excellent1 087123
devopsci-cd-engineer4.62Excellent1 103118
devopsdocker-specialist4.62Excellent1 089130
devopsincident-responder4.25Good2 112182
devopskubernetes-specialist4.88Excellent1 111136
devopslinux-admin4.62Excellent1 044127
devopsplatform-engineer4.88Excellent1 019118
devopssre-engineer4.38Good1 157122
devopsterraform-specialist4.88Excellent1 242139
devtoolscode-reviewer4.25Good1 214110
devtoolsdebugger4.25Good1 369122
devtoolslegacy-modernizer4.25Good2 661220
devtoolsmicroservices-architect4.50Excellent1 230150
devtoolsperformance-engineer4.25Good1 226119
devtoolsqa-expert4.25Good1 267123
devtoolsrefactoring-specialist4.50Excellent1 753186
devtoolstest-automator4.50Excellent1 546161
docsapi-documenter4.62Excellent1 195118
docsdiagram-architect4.62Excellent1 173111
docsdocumentation-engineer4.38Good1 050105
docstechnical-writer4.25Good1 097120
languagescpp-pro4.62Excellent1 197141
languagescsharp-developer4.62Excellent1 162133
languagesgolang-pro4.88Excellent1 101129
languagesjava-architect4.88Excellent1 383138
languageskotlin-specialist4.88Excellent1 191121
languagesphp-pro4.88Excellent1 193138
languagespython-pro4.88Excellent1 139139
languagesrails-expert4.88Excellent1 232139
languagesrust-pro4.88Excellent1 211139
languagesswift-expert4.88Excellent1 201138
languagestypescript-pro4.88Excellent1 268132
mcpmcp-developer4.88Excellent1 384125
mcpmcp-security-auditor4.12Good1 28987
securitycompliance-auditor4.75Excellent1 805107
securitypenetration-tester4.62Excellent1 828137
securitysecurity-auditor4.25Good1 633104
securitysecurity-engineer4.25Good1 111109
securitysmart-contract-auditor4.75Excellent2 269126
webaccessibility4.50Excellent1 273107
webangular-architect4.25Good1 282125
webfullstack-developer4.62Excellent1 034103
webmobile-developer4.50Excellent1 223125
webnextjs-developer4.25Good1 201126
webreact-specialist4.88Excellent994104
webscreenshot-ui-analyzer4.25Good1 38099
webui-designer4.62Excellent1 131103
webvue-expert4.88Excellent1 094104

🎒 Packs

15 packs prédéfinis pour installer des groupes d'agents cohérents en une seule commande.

PackAgentsDescription
backendpostgres-pro, redis-specialist, database-architect, api-architect, python-pro, typescript-pro, debugger, test-automatorStack backend
frontendreact-specialist, nextjs-developer, typescript-pro, ui-designer, performance-engineer, test-automatorStack frontend
devopsdocker-specialist, kubernetes-specialist, terraform-specialist, aws-specialist, ci-cd-engineer, linux-admin, platform-engineer, incident-responderInfrastructure
fullstackfullstack-developer, typescript-pro, react-specialist, nextjs-developer, postgres-pro, api-architect, debugger, test-automator, code-reviewerFull stack
aiai-engineer, data-scientist, ml-engineer, llm-architect, prompt-engineer, search-specialistIA & ML
securitysecurity-auditor, penetration-tester, smart-contract-auditor, compliance-auditorSécurité
mcpmcp-developer, mcp-security-auditorMCP servers
qualitycode-reviewer, test-automator, debugger, performance-engineer, refactoring-specialist, legacy-modernizerQualité code
startupfullstack-developer, typescript-pro, nextjs-developer, postgres-pro, docker-specialist, product-manager, ui-designer, test-automatorKit startup
data-stackdata-engineer, data-analyst, data-scientist, database-architect, postgres-pro, sql-proStack données
ml-to-productiondata-scientist, ml-engineer, mlops-engineer, llm-architect, docker-specialist, kubernetes-specialistML en production
frontend-completereact-specialist, nextjs-developer, vue-expert, angular-architect, accessibility, ui-designerFrontend complet
ship-it-safelyci-cd-engineer, docker-specialist, kubernetes-specialist, sre-engineer, security-engineer, qa-expertDéploiement sûr
product-discoveryproduct-manager, ux-researcher, business-analyst, prd, ui-designerDécouverte produit
architecture-docsmicroservices-architect, api-architect, database-architect, diagram-architect, documentation-engineerArchitecture & docs

⚙️ CI / CD

Intégration continue (ci.yml)

Chaque push ou pull request sur main déclenche 4 jobs en parallèle :

JobDescription
testTests Python sur 3 versions (3.10, 3.12, 3.13)
test-cliTests Node.js sur 3 versions (20, 22, 23) — CLI, TUI, lock
lintSyntaxe Python/Node, shellcheck, validation du frontmatter YAML des agents, validation du manifest JSON
validate-agentsVérifie la cohérence du manifest avec les fichiers réels, détecte les champs dépréciés

Mises à jour des dépendances (dependabot.yml)

Dependabot surveille les SHA des GitHub Actions utilisées dans les workflows et ouvre automatiquement une PR chaque semaine si une mise à jour est disponible. Toutes les actions sont pinnées par SHA pour des raisons de sécurité.


🔄 Synchronisation des agents

Les agents proviennent de plusieurs sources : la majorité est issue de aitmpl.com (claude-code-templates), certains sont des créations originales du projet (aws-specialist, ci-cd-engineer, docker-specialist, linux-admin, redis-specialist, mcp-security-auditor, prd, screenshot-ui-analyzer), et le catalogue awesome-claude-code-subagents a servi de référence pour identifier les agents manquants. Tous les agents sont curés manuellement et passent par un processus de réécriture experte avant intégration — la synchronisation automatique hebdomadaire a été désactivée pour garantir un haut niveau de qualité.

Pourquoi pas de sync automatique ?

Les agents upstream (~133 disponibles) suivent un format générique (listes de compétences, métriques fictives). Les agents du projet suivent un format expert à 4 sections (identité, décisions, exemples, quality gate). La différence de qualité (3-4/10 vs 8-9/10) rend l'import automatique contre-productif.

Ajouter un nouvel agent

  1. Découverte — lister les agents upstream disponibles via le script local :
    python3 scripts/sync-agents.py --list --tier=extended
  2. Évaluation — vérifier que l'agent apporte une compétence non couverte par les 69 agents existants
  3. Dry-run upstream — lancer le workflow en mode discovery pour récupérer le frontmatter et les permissions sans modifier le repo :
    gh workflow run "Sync Agents" -f tier=core -f dry_run=true
  4. Réécriture — réécrire le body avec le template du projet (Identité → Decisions → Examples → Quality Gate)

Scripts disponibles

Ces scripts sont destinés à un usage manuel uniquement — il n'y a pas de synchronisation automatique.

ScriptDescription
scripts/sync-agents.pyTélécharge et convertit les agents depuis le dépôt upstream
scripts/update-manifest.pyFusionne le manifest de sync dans le manifest principal
scripts/sync_common.pyUtilitaires HTTP partagés, cache ETag, validation de frontmatter
scripts/generate_readme_scores.pyRégénère les tableaux de scores qualité dans les deux README. Mode --check pour la CI.

🚀 Releases & Changelog

Le changelog est généré automatiquement à partir de l'historique Git via git-cliff, orienté utilisateur avec des catégories claires.

Fonctionnement

  1. Tag push — pousser un tag v* (ex: git tag v8.0.0 && git push --tags)
  2. CI obligatoire — le workflow de release attend que lint, tests et validate-agents passent (ci.yml via workflow_call) avant de continuer
  3. Génération du changelog — git-cliff analyse les commits depuis le dernier tag et génère un changelog structuré
  4. GitHub Release — une release est créée automatiquement avec le changelog comme corps

Catégories du changelog

Préfixe commitCatégorie changelog
feat✨ Nouveautés
fix🐛 Corrections
perf⚡ Performance
docs📝 Documentation
refactor♻️ Refactoring
chore, ci, build, style, test🔧 Maintenance

Les commits avec BREAKING CHANGE sont préfixés BREAKING: dans leur catégorie respective.

Créer une release

# Bumper la version dans package.json, tagger et pousser
npm version major # ou minor, patch
git push --follow-tags
# Ou manuellement
git tag v8.0.0
git push --tags

🧪 Tests

814 tests (504 JS + 310 Python).

# Tous les tests JS (CLI + TUI)
node --test tests/cli.test.mjs tests/tui.test.mjs tests/lock.test.mjs
# Tous les tests Python
python3 tests/run_tests.py
# Tests spécifiques
python3 -m pytest tests/test_agents.py -v
python3 -m pytest tests/test_sync_script.py -v
python3 -m pytest tests/test_update_manifest.py -v

🤝 Contribuer

Les contributions sont les bienvenues ! Voir les issues ouvertes.

Modifier ou ajouter un agent

  1. Créer ou modifier le fichier dans agents/<catégorie>/<nom>.md
  2. Respecter le template 4 sections : Identity, Decisions, Examples, Quality Gate
  3. Régénérer les scores README :
    python3 scripts/generate_readme_scores.py
  4. Commiter les fichiers agent et les README mis à jour ensemble
  5. La CI vérifiera automatiquement que les scores sont à jour

Astuce : lancez python3 scripts/quality_scorer.py agents/<catégorie>/<nom>.md pour voir le score détaillé avant de mettre à jour les README.

Qualité minimale

Chaque agent doit atteindre le seuil de qualité : score moyen ≥ 3.5 et aucune dimension < 2. Consultez la section Qualité des agents pour le détail des dimensions.

Agents majoritairement sourcés depuis aitmpl.com (claude-code-templates), avec des créations originales et awesome-claude-code-subagents comme référence. Tous réécrits et curés manuellement.


📄 Licence

MIT

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Stars

7 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

opencode-agents

🇬🇧 English version

CIAgentsTestsLicenseNodenpmAsk DeepWiki

Demo

Registre curé de 69 agents IA pour OpenCode, distribué via un CLI zero-dependency et un TUI interactif. Les agents sont des fichiers .md contenant des system prompts pour configurer des assistants IA spécialisés.

Chaque agent suit un format expert à 4 sections : identité, décisions, exemples, quality gate.


🚀 Quickstart

# TUI interactif avec suggestions intelligentes (auto-détecte TTY)
npx github:dmicheneau/opencode-template-agent
# Détecte la stack et suggère les agents adaptés
npx github:dmicheneau/opencode-template-agent install
# CLI rapide — installer un pack en une commande
npx github:dmicheneau/opencode-template-agent install --pack backend

📦 Installation

Mode 1 — TUI interactif (recommandé)

Le TUI est le moyen le plus simple de découvrir et installer des agents. Il se lance automatiquement lorsque le terminal supporte un TTY.

npx github:dmicheneau/opencode-template-agent
# ou explicitement :
npx github:dmicheneau/opencode-template-agent tui

Ce que ça fait :

  • Auto-détecte le TTY et lance l'interface interactive
  • Écran de suggestions au démarrage : si une stack est détectée dans le projet courant, les agents les plus pertinents apparaissent pré-sélectionnés — appuyez sur Space pour désélectionner, Enter pour installer, B pour parcourir tout le catalogue
  • Parcourir les catégories par onglets ( / Tab)
  • Naviguer dans les listes avec
  • Sélectionner des agents avec Space, installer avec Enter
  • Recherche intégrée (/), exploration par packs et catégories

Mode 2 — CLI non-interactif

Pour l'automatisation ou une installation rapide sans interface graphique.

Commandes :

# Détecter la stack et suggérer les agents adaptés
npx github:dmicheneau/opencode-template-agent install
# Installer un agent spécifique
npx github:dmicheneau/opencode-template-agent install typescript-pro
# Installer un ou plusieurs packs (virgule ou espace)
npx github:dmicheneau/opencode-template-agent install --pack backend
npx github:dmicheneau/opencode-template-agent install --pack backend,devops
# Installer une ou plusieurs catégories
npx github:dmicheneau/opencode-template-agent install --category languages
npx github:dmicheneau/opencode-template-agent install --category languages,data-api
# Installer tous les agents
npx github:dmicheneau/opencode-template-agent install --all
# Lister tous les agents par catégorie
npx github:dmicheneau/opencode-template-agent list
# Lister les packs disponibles
npx github:dmicheneau/opencode-template-agent list --packs
# Rechercher des agents
npx github:dmicheneau/opencode-template-agent search docker
npx github:dmicheneau/opencode-template-agent search "machine learning"

Options :

OptionDescription
--forceÉcraser les fichiers existants ; avec install sans argument, re-propose les agents déjà installés
--dry-runAperçu sans écriture sur le disque (fonctionne aussi avec la suggestion automatique)

Note :--pack et --category sont mutuellement exclusifs.

Mode 3 — Script bash / Clone local

Via script bash :

curl -fsSL https://raw.githubusercontent.com/dmicheneau/opencode-template-agent/main/install.sh | bash

Options : --copy, --global, --dir PATH, --force, --dry-run, --uninstall.

Via clone local :

git clone https://github.com/dmicheneau/opencode-template-agent.git ~/.opencode-agents
echo'export OPENCODE_CONFIG_DIR=~/.opencode-agents'>>~/.zshrc
source~/.zshrc

Les agents sont installés dans .opencode/agents/. Node.js 20+ requis pour les modes 1 et 2.


🔌 Plugin OpenCode

Le plugin expose le registre des 69 agents comme outils LLM directement dans les sessions OpenCode. Version actuelle : discovery-only (v1) — 4 tools en lecture seule, aucune modification du système de fichiers.

Installation

Globale (recommandé — disponible dans toutes les sessions OpenCode) :

Ajouter dans ~/.config/opencode/opencode.json :

{
"plugin": ["github:dmicheneau/opencode-template-agent"]
}

Par projet (disponible uniquement dans le projet concerné) :

Ajouter dans .opencode/opencode.json à la racine du projet :

{
"plugin": ["github:dmicheneau/opencode-template-agent"]
}

Tools disponibles

ToolDescription
search_agentsRecherche par nom, description, catégorie ou tags
list_agentsListe tous les agents groupés par catégorie, avec filtres optionnels par catégorie ou pack
get_agentDétails complets d'un agent (description, mode d'installation, état d'installation, suggestions de correction si typo)
check_healthRapport de santé du registre (agents installés, obsolètes, manquants, intégrité)

v1.1 — Types préfixés Oc* pour éviter les collisions de namespace, mode readonly pour les opérations lock, et sanitization des chemins absolus dans les messages d'erreur.

Exemples d'utilisation

> Cherche un agent pour TypeScript
> Liste les agents de la catégorie security
> Vérifie la santé du registre

Structure des fichiers

plugin/
index.ts # point d'entrée (exporté comme Plugin OpenCode)
tools.ts # définitions des 4 tools
types.d.ts # déclarations de types

Prérequis : OpenCode + Bun (le TypeScript est transpilé nativement, pas d'étape de build).


🏗️ Architecture

Documentation détaillée : docs/architecture.md

Le diagramme ci-dessous présente l'architecture globale du système : le point d'entrée CLI, les modules TUI, le registre d'agents et les scripts de veille upstream.

flowchart TB
User["Utilisateur"]
subgraph CLI["bin/cli.mjs — Point d'entree CLI"]
Parse["Analyse des arguments<br/>(install, list, search, tui)"]
end
subgraph TUI["Interface TUI interactive"]
Index["index.mjs<br/>Orchestrateur<br/>(lifecycle, boucle principale,<br/>signaux)"]
Screen["screen.mjs<br/>E/S Terminal<br/>(raw mode, flush,<br/>resize, onInput)"]
Input["input.mjs<br/>Parseur de touches<br/>(raw bytes → ~20 Actions)"]
State["state.mjs<br/>Machine a etats<br/>(browse, search, confirm,<br/>installing, pack_detail,<br/>done, quit)"]
Renderer["renderer.mjs<br/>Constructeur de frames<br/>(state → chaine ANSI)"]
Ansi["ansi.mjs<br/>Codes ANSI, couleurs,<br/>box drawing, palettes<br/>(catColor, tabColor)"]
end
subgraph Data["Couche de donnees"]
Registry["registry.mjs<br/>Chargeur de manifest<br/>(validation, getAgent,<br/>getCategory, searchAgents,<br/>resolvePackAgents)"]
Manifest["manifest.json<br/>69 agents | 10 categories<br/>15 packs"]
Installer["installer.mjs<br/>Telechargement GitHub raw<br/>→ .opencode/agents/"]
end
subgraph Sync["Veille upstream (manual dispatch)"]
Upstream["davila7/claude-code-templates<br/>(depot upstream)"]
SyncScript["sync-agents.py<br/>(1200 lignes, fetch,<br/>conversion tools→permission,<br/>CURATED + EXTENDED agents)"]
SyncCommon["sync_common.py<br/>(HTTP, cache ETag,<br/>frontmatter, validation)"]
UpdateManifest["update-manifest.py<br/>(fusion manifest,<br/>prefix NEEDS_REVIEW)"]
GHA["GitHub Actions<br/>(workflow_dispatch uniquement,<br/>CI: test + lint + validate)"]
end
LocalDir[".opencode/agents/<br/>Agents installes"]
User --> CLI
Parse -->|"tui"| Index
Parse -->|"install"| Installer
Parse -->|"list / search"| Registry
Index --> Screen
Screen --> Input
Input --> State
State --> Renderer
Renderer --> Ansi
Ansi -->|"frames ANSI"| Screen
Index --> Registry
Index --> Installer
Registry --> Manifest
Installer -->|"telecharge"| LocalDir
Upstream --> SyncScript
SyncScript --> SyncCommon
SyncScript --> UpdateManifest
UpdateManifest --> Manifest
GHA -->|"orchestre"| SyncScript
GHA -->|"orchestre"| UpdateManifest
classDef entrypoint fill:#4a90d9,stroke:#2c5f8a,color:#fff
classDef tui fill:#6ab04c,stroke:#3d7a28,color:#fff
classDef data fill:#f0932b,stroke:#c0741e,color:#fff
classDef sync fill:#9b59b6,stroke:#6c3483,color:#fff
classDef storage fill:#e74c3c,stroke:#a93226,color:#fff
classDef user fill:#34495e,stroke:#1c2833,color:#fff
class User user
class Parse entrypoint
class Index,Screen,Input,State,Renderer,Ansi tui
class Registry,Manifest,Installer data
class Upstream,SyncScript,SyncCommon,UpdateManifest,GHA sync
class LocalDir storage
Loading

Deux diagrammes supplémentaires sont disponibles dans docs/architecture.md :

  • Flux utilisateur TUI — machine à états complète (suggest, browse, search, confirm, installing, done)
  • Pipeline de mise à jour des agents — scripts de veille upstream et workflow de découverte/évaluation (manual dispatch uniquement)

📋 Agents disponibles

69 agents répartis en 10 catégories, invocables via @catégorie/nom.

CatégorieAgentsDescription
💻 Languages11TypeScript, Python, Go, Rust, Java, C#, PHP, Kotlin, C++, Rails, Swift
🤖 AI9AI engineering, data science, ML, MLOps, LLM, prompts, recherche, data engineering, data analysis
🌐 Web9React, Next.js, Vue, Angular, mobile, UI design, analyse UI, accessibilité, fullstack
🗄️ Data & API6Architecture API, GraphQL, bases de données, PostgreSQL, Redis, SQL
⚙️ DevOps9Docker, Kubernetes, Terraform, AWS, CI/CD, Linux, plateforme, SRE, incident response
🛠️ DevTools8Code review, debugging, performance, refactoring, tests, orchestration, microservices, QA, legacy modernization
🔒 Security5Audit sécurité, tests de pénétration, smart contracts, security engineering, conformité
🔌 MCP2Développement MCP, audit sécurité MCP
📊 Business6Product management, project management, PRD, Scrum, UX research, business analysis
📝 Docs4Documentation technique, API, rédaction, diagrammes

📊 Qualité des agents

Chaque agent est évalué automatiquement par scripts/quality_scorer.py sur 8 dimensions (score 1-5 chacune) :

DimensionCe qui est mesuré5/5
frontmatterPrésence de description, mode, permission3 champs présents
identityParagraphe d'identité entre le frontmatter et le premier ##50-300 mots
decisionsSection ## Decisions avec arbres IF/THEN≥ 5 règles
examplesSection ## Examples avec blocs de code≥ 3 exemples
quality_gateSection ## Quality Gate avec critères de validation≥ 5 critères
concisenessNombre de lignes (70-120 idéal) et ratio de filler phrases70-120 lignes, ≤ 3% filler
no_banned_sectionsAbsence des anciennes sections (Workflow, Tools, Anti-patterns, Collaboration)0 section interdite
version_pinningRéférences à des versions et années dans l'identitéVersion + année présents

Seuil de passage : moyenne ≥ 3.5 ET aucune dimension < 2

Labels : Excellent (≥ 4.5) · Good (≥ 3.5) · Needs improvement (≥ 2.5) · Poor (< 2.5)

Catalogue des agents

69 agents · Score moyen : 4.59/5 · 100% pass rate · 49 Excellent, 20 Good

Coût token estimé : taille en bytes / 4 (approximation pour contenu anglais + code).

CatégorieAgentScoreLabel~TokensLignes
aiai-engineer4.75Excellent1 164113
aidata-analyst4.75Excellent1 088102
aidata-engineer4.75Excellent1 180106
aidata-scientist4.75Excellent1 218108
aillm-architect4.88Excellent1 353125
aiml-engineer4.75Excellent1 170108
aimlops-engineer4.75Excellent1 205125
aiprompt-engineer4.75Excellent1 386121
aisearch-specialist4.62Excellent1 316114
businessbusiness-analyst4.62Excellent1 260104
businessprd4.25Good1 40774
businessproduct-manager4.25Good1 04385
businessproject-manager4.38Good1 17489
businessscrum-master4.25Good1 26598
businessux-researcher4.25Good1 446116
data-apiapi-architect4.75Excellent1 351128
data-apidatabase-architect4.50Excellent1 265113
data-apigraphql-architect4.88Excellent1 249128
data-apipostgres-pro4.50Excellent1 208119
data-apiredis-specialist4.88Excellent1 243122
data-apisql-pro4.50Excellent2 136165
devopsaws-specialist4.88Excellent1 087123
devopsci-cd-engineer4.62Excellent1 103118
devopsdocker-specialist4.62Excellent1 089130
devopsincident-responder4.25Good2 112182
devopskubernetes-specialist4.88Excellent1 111136
devopslinux-admin4.62Excellent1 044127
devopsplatform-engineer4.88Excellent1 019118
devopssre-engineer4.38Good1 157122
devopsterraform-specialist4.88Excellent1 242139
devtoolscode-reviewer4.25Good1 214110
devtoolsdebugger4.25Good1 369122
devtoolslegacy-modernizer4.25Good2 661220
devtoolsmicroservices-architect4.50Excellent1 230150
devtoolsperformance-engineer4.25Good1 226119
devtoolsqa-expert4.25Good1 267123
devtoolsrefactoring-specialist4.50Excellent1 753186
devtoolstest-automator4.50Excellent1 546161
docsapi-documenter4.62Excellent1 195118
docsdiagram-architect4.62Excellent1 173111
docsdocumentation-engineer4.38Good1 050105
docstechnical-writer4.25Good1 097120
languagescpp-pro4.62Excellent1 197141
languagescsharp-developer4.62Excellent1 162133
languagesgolang-pro4.88Excellent1 101129
languagesjava-architect4.88Excellent1 383138
languageskotlin-specialist4.88Excellent1 191121
languagesphp-pro4.88Excellent1 193138
languagespython-pro4.88Excellent1 139139
languagesrails-expert4.88Excellent1 232139
languagesrust-pro4.88Excellent1 211139
languagesswift-expert4.88Excellent1 201138
languagestypescript-pro4.88Excellent1 268132
mcpmcp-developer4.88Excellent1 384125
mcpmcp-security-auditor4.12Good1 28987
securitycompliance-auditor4.75Excellent1 805107
securitypenetration-tester4.62Excellent1 828137
securitysecurity-auditor4.25Good1 633104
securitysecurity-engineer4.25Good1 111109
securitysmart-contract-auditor4.75Excellent2 269126
webaccessibility4.50Excellent1 273107
webangular-architect4.25Good1 282125
webfullstack-developer4.62Excellent1 034103
webmobile-developer4.50Excellent1 223125
webnextjs-developer4.25Good1 201126
webreact-specialist4.88Excellent994104
webscreenshot-ui-analyzer4.25Good1 38099
webui-designer4.62Excellent1 131103
webvue-expert4.88Excellent1 094104

🎒 Packs

15 packs prédéfinis pour installer des groupes d'agents cohérents en une seule commande.

PackAgentsDescription
backendpostgres-pro, redis-specialist, database-architect, api-architect, python-pro, typescript-pro, debugger, test-automatorStack backend
frontendreact-specialist, nextjs-developer, typescript-pro, ui-designer, performance-engineer, test-automatorStack frontend
devopsdocker-specialist, kubernetes-specialist, terraform-specialist, aws-specialist, ci-cd-engineer, linux-admin, platform-engineer, incident-responderInfrastructure
fullstackfullstack-developer, typescript-pro, react-specialist, nextjs-developer, postgres-pro, api-architect, debugger, test-automator, code-reviewerFull stack
aiai-engineer, data-scientist, ml-engineer, llm-architect, prompt-engineer, search-specialistIA & ML
securitysecurity-auditor, penetration-tester, smart-contract-auditor, compliance-auditorSécurité
mcpmcp-developer, mcp-security-auditorMCP servers
qualitycode-reviewer, test-automator, debugger, performance-engineer, refactoring-specialist, legacy-modernizerQualité code
startupfullstack-developer, typescript-pro, nextjs-developer, postgres-pro, docker-specialist, product-manager, ui-designer, test-automatorKit startup
data-stackdata-engineer, data-analyst, data-scientist, database-architect, postgres-pro, sql-proStack données
ml-to-productiondata-scientist, ml-engineer, mlops-engineer, llm-architect, docker-specialist, kubernetes-specialistML en production
frontend-completereact-specialist, nextjs-developer, vue-expert, angular-architect, accessibility, ui-designerFrontend complet
ship-it-safelyci-cd-engineer, docker-specialist, kubernetes-specialist, sre-engineer, security-engineer, qa-expertDéploiement sûr
product-discoveryproduct-manager, ux-researcher, business-analyst, prd, ui-designerDécouverte produit
architecture-docsmicroservices-architect, api-architect, database-architect, diagram-architect, documentation-engineerArchitecture & docs

⚙️ CI / CD

Intégration continue (ci.yml)

Chaque push ou pull request sur main déclenche 4 jobs en parallèle :

JobDescription
testTests Python sur 3 versions (3.10, 3.12, 3.13)
test-cliTests Node.js sur 3 versions (20, 22, 23) — CLI, TUI, lock
lintSyntaxe Python/Node, shellcheck, validation du frontmatter YAML des agents, validation du manifest JSON
validate-agentsVérifie la cohérence du manifest avec les fichiers réels, détecte les champs dépréciés

Mises à jour des dépendances (dependabot.yml)

Dependabot surveille les SHA des GitHub Actions utilisées dans les workflows et ouvre automatiquement une PR chaque semaine si une mise à jour est disponible. Toutes les actions sont pinnées par SHA pour des raisons de sécurité.


🔄 Synchronisation des agents

Les agents proviennent de plusieurs sources : la majorité est issue de aitmpl.com (claude-code-templates), certains sont des créations originales du projet (aws-specialist, ci-cd-engineer, docker-specialist, linux-admin, redis-specialist, mcp-security-auditor, prd, screenshot-ui-analyzer), et le catalogue awesome-claude-code-subagents a servi de référence pour identifier les agents manquants. Tous les agents sont curés manuellement et passent par un processus de réécriture experte avant intégration — la synchronisation automatique hebdomadaire a été désactivée pour garantir un haut niveau de qualité.

Pourquoi pas de sync automatique ?

Les agents upstream (~133 disponibles) suivent un format générique (listes de compétences, métriques fictives). Les agents du projet suivent un format expert à 4 sections (identité, décisions, exemples, quality gate). La différence de qualité (3-4/10 vs 8-9/10) rend l'import automatique contre-productif.

Ajouter un nouvel agent

  1. Découverte — lister les agents upstream disponibles via le script local :
    python3 scripts/sync-agents.py --list --tier=extended
  2. Évaluation — vérifier que l'agent apporte une compétence non couverte par les 69 agents existants
  3. Dry-run upstream — lancer le workflow en mode discovery pour récupérer le frontmatter et les permissions sans modifier le repo :
    gh workflow run "Sync Agents" -f tier=core -f dry_run=true
  4. Réécriture — réécrire le body avec le template du projet (Identité → Decisions → Examples → Quality Gate)

Scripts disponibles

Ces scripts sont destinés à un usage manuel uniquement — il n'y a pas de synchronisation automatique.

ScriptDescription
scripts/sync-agents.pyTélécharge et convertit les agents depuis le dépôt upstream
scripts/update-manifest.pyFusionne le manifest de sync dans le manifest principal
scripts/sync_common.pyUtilitaires HTTP partagés, cache ETag, validation de frontmatter
scripts/generate_readme_scores.pyRégénère les tableaux de scores qualité dans les deux README. Mode --check pour la CI.

🚀 Releases & Changelog

Le changelog est généré automatiquement à partir de l'historique Git via git-cliff, orienté utilisateur avec des catégories claires.

Fonctionnement

  1. Tag push — pousser un tag v* (ex: git tag v8.0.0 && git push --tags)
  2. CI obligatoire — le workflow de release attend que lint, tests et validate-agents passent (ci.yml via workflow_call) avant de continuer
  3. Génération du changelog — git-cliff analyse les commits depuis le dernier tag et génère un changelog structuré
  4. GitHub Release — une release est créée automatiquement avec le changelog comme corps

Catégories du changelog

Préfixe commitCatégorie changelog
feat✨ Nouveautés
fix🐛 Corrections
perf⚡ Performance
docs📝 Documentation
refactor♻️ Refactoring
chore, ci, build, style, test🔧 Maintenance

Les commits avec BREAKING CHANGE sont préfixés BREAKING: dans leur catégorie respective.

Créer une release

# Bumper la version dans package.json, tagger et pousser
npm version major # ou minor, patch
git push --follow-tags
# Ou manuellement
git tag v8.0.0
git push --tags

🧪 Tests

814 tests (504 JS + 310 Python).

# Tous les tests JS (CLI + TUI)
node --test tests/cli.test.mjs tests/tui.test.mjs tests/lock.test.mjs
# Tous les tests Python
python3 tests/run_tests.py
# Tests spécifiques
python3 -m pytest tests/test_agents.py -v
python3 -m pytest tests/test_sync_script.py -v
python3 -m pytest tests/test_update_manifest.py -v

🤝 Contribuer

Les contributions sont les bienvenues ! Voir les issues ouvertes.

Modifier ou ajouter un agent

  1. Créer ou modifier le fichier dans agents/<catégorie>/<nom>.md
  2. Respecter le template 4 sections : Identity, Decisions, Examples, Quality Gate
  3. Régénérer les scores README :
    python3 scripts/generate_readme_scores.py
  4. Commiter les fichiers agent et les README mis à jour ensemble
  5. La CI vérifiera automatiquement que les scores sont à jour

Astuce : lancez python3 scripts/quality_scorer.py agents/<catégorie>/<nom>.md pour voir le score détaillé avant de mettre à jour les README.

Qualité minimale

Chaque agent doit atteindre le seuil de qualité : score moyen ≥ 3.5 et aucune dimension < 2. Consultez la section Qualité des agents pour le détail des dimensions.

Agents majoritairement sourcés depuis aitmpl.com (claude-code-templates), avec des créations originales et awesome-claude-code-subagents comme référence. Tous réécrits et curés manuellement.


📄 Licence

MIT

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Stars

7 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

opencode-agents

🇬🇧 English version

CIAgentsTestsLicenseNodenpmAsk DeepWiki

Demo

Registre curé de 69 agents IA pour OpenCode, distribué via un CLI zero-dependency et un TUI interactif. Les agents sont des fichiers .md contenant des system prompts pour configurer des assistants IA spécialisés.

Chaque agent suit un format expert à 4 sections : identité, décisions, exemples, quality gate.


🚀 Quickstart

# TUI interactif avec suggestions intelligentes (auto-détecte TTY)
npx github:dmicheneau/opencode-template-agent
# Détecte la stack et suggère les agents adaptés
npx github:dmicheneau/opencode-template-agent install
# CLI rapide — installer un pack en une commande
npx github:dmicheneau/opencode-template-agent install --pack backend

📦 Installation

Mode 1 — TUI interactif (recommandé)

Le TUI est le moyen le plus simple de découvrir et installer des agents. Il se lance automatiquement lorsque le terminal supporte un TTY.

npx github:dmicheneau/opencode-template-agent
# ou explicitement :
npx github:dmicheneau/opencode-template-agent tui

Ce que ça fait :

  • Auto-détecte le TTY et lance l'interface interactive
  • Écran de suggestions au démarrage : si une stack est détectée dans le projet courant, les agents les plus pertinents apparaissent pré-sélectionnés — appuyez sur Space pour désélectionner, Enter pour installer, B pour parcourir tout le catalogue
  • Parcourir les catégories par onglets ( / Tab)
  • Naviguer dans les listes avec
  • Sélectionner des agents avec Space, installer avec Enter
  • Recherche intégrée (/), exploration par packs et catégories

Mode 2 — CLI non-interactif

Pour l'automatisation ou une installation rapide sans interface graphique.

Commandes :

# Détecter la stack et suggérer les agents adaptés
npx github:dmicheneau/opencode-template-agent install
# Installer un agent spécifique
npx github:dmicheneau/opencode-template-agent install typescript-pro
# Installer un ou plusieurs packs (virgule ou espace)
npx github:dmicheneau/opencode-template-agent install --pack backend
npx github:dmicheneau/opencode-template-agent install --pack backend,devops
# Installer une ou plusieurs catégories
npx github:dmicheneau/opencode-template-agent install --category languages
npx github:dmicheneau/opencode-template-agent install --category languages,data-api
# Installer tous les agents
npx github:dmicheneau/opencode-template-agent install --all
# Lister tous les agents par catégorie
npx github:dmicheneau/opencode-template-agent list
# Lister les packs disponibles
npx github:dmicheneau/opencode-template-agent list --packs
# Rechercher des agents
npx github:dmicheneau/opencode-template-agent search docker
npx github:dmicheneau/opencode-template-agent search "machine learning"

Options :

OptionDescription
--forceÉcraser les fichiers existants ; avec install sans argument, re-propose les agents déjà installés
--dry-runAperçu sans écriture sur le disque (fonctionne aussi avec la suggestion automatique)

Note :--pack et --category sont mutuellement exclusifs.

Mode 3 — Script bash / Clone local

Via script bash :

curl -fsSL https://raw.githubusercontent.com/dmicheneau/opencode-template-agent/main/install.sh | bash

Options : --copy, --global, --dir PATH, --force, --dry-run, --uninstall.

Via clone local :

git clone https://github.com/dmicheneau/opencode-template-agent.git ~/.opencode-agents
echo'export OPENCODE_CONFIG_DIR=~/.opencode-agents'>>~/.zshrc
source~/.zshrc

Les agents sont installés dans .opencode/agents/. Node.js 20+ requis pour les modes 1 et 2.


🔌 Plugin OpenCode

Le plugin expose le registre des 69 agents comme outils LLM directement dans les sessions OpenCode. Version actuelle : discovery-only (v1) — 4 tools en lecture seule, aucune modification du système de fichiers.

Installation

Globale (recommandé — disponible dans toutes les sessions OpenCode) :

Ajouter dans ~/.config/opencode/opencode.json :

{
"plugin": ["github:dmicheneau/opencode-template-agent"]
}

Par projet (disponible uniquement dans le projet concerné) :

Ajouter dans .opencode/opencode.json à la racine du projet :

{
"plugin": ["github:dmicheneau/opencode-template-agent"]
}

Tools disponibles

ToolDescription
search_agentsRecherche par nom, description, catégorie ou tags
list_agentsListe tous les agents groupés par catégorie, avec filtres optionnels par catégorie ou pack
get_agentDétails complets d'un agent (description, mode d'installation, état d'installation, suggestions de correction si typo)
check_healthRapport de santé du registre (agents installés, obsolètes, manquants, intégrité)

v1.1 — Types préfixés Oc* pour éviter les collisions de namespace, mode readonly pour les opérations lock, et sanitization des chemins absolus dans les messages d'erreur.

Exemples d'utilisation

> Cherche un agent pour TypeScript
> Liste les agents de la catégorie security
> Vérifie la santé du registre

Structure des fichiers

plugin/
index.ts # point d'entrée (exporté comme Plugin OpenCode)
tools.ts # définitions des 4 tools
types.d.ts # déclarations de types

Prérequis : OpenCode + Bun (le TypeScript est transpilé nativement, pas d'étape de build).


🏗️ Architecture

Documentation détaillée : docs/architecture.md

Le diagramme ci-dessous présente l'architecture globale du système : le point d'entrée CLI, les modules TUI, le registre d'agents et les scripts de veille upstream.

flowchart TB
User["Utilisateur"]
subgraph CLI["bin/cli.mjs — Point d'entree CLI"]
Parse["Analyse des arguments<br/>(install, list, search, tui)"]
end
subgraph TUI["Interface TUI interactive"]
Index["index.mjs<br/>Orchestrateur<br/>(lifecycle, boucle principale,<br/>signaux)"]
Screen["screen.mjs<br/>E/S Terminal<br/>(raw mode, flush,<br/>resize, onInput)"]
Input["input.mjs<br/>Parseur de touches<br/>(raw bytes → ~20 Actions)"]
State["state.mjs<br/>Machine a etats<br/>(browse, search, confirm,<br/>installing, pack_detail,<br/>done, quit)"]
Renderer["renderer.mjs<br/>Constructeur de frames<br/>(state → chaine ANSI)"]
Ansi["ansi.mjs<br/>Codes ANSI, couleurs,<br/>box drawing, palettes<br/>(catColor, tabColor)"]
end
subgraph Data["Couche de donnees"]
Registry["registry.mjs<br/>Chargeur de manifest<br/>(validation, getAgent,<br/>getCategory, searchAgents,<br/>resolvePackAgents)"]
Manifest["manifest.json<br/>69 agents | 10 categories<br/>15 packs"]
Installer["installer.mjs<br/>Telechargement GitHub raw<br/>→ .opencode/agents/"]
end
subgraph Sync["Veille upstream (manual dispatch)"]
Upstream["davila7/claude-code-templates<br/>(depot upstream)"]
SyncScript["sync-agents.py<br/>(1200 lignes, fetch,<br/>conversion tools→permission,<br/>CURATED + EXTENDED agents)"]
SyncCommon["sync_common.py<br/>(HTTP, cache ETag,<br/>frontmatter, validation)"]
UpdateManifest["update-manifest.py<br/>(fusion manifest,<br/>prefix NEEDS_REVIEW)"]
GHA["GitHub Actions<br/>(workflow_dispatch uniquement,<br/>CI: test + lint + validate)"]
end
LocalDir[".opencode/agents/<br/>Agents installes"]
User --> CLI
Parse -->|"tui"| Index
Parse -->|"install"| Installer
Parse -->|"list / search"| Registry
Index --> Screen
Screen --> Input
Input --> State
State --> Renderer
Renderer --> Ansi
Ansi -->|"frames ANSI"| Screen
Index --> Registry
Index --> Installer
Registry --> Manifest
Installer -->|"telecharge"| LocalDir
Upstream --> SyncScript
SyncScript --> SyncCommon
SyncScript --> UpdateManifest
UpdateManifest --> Manifest
GHA -->|"orchestre"| SyncScript
GHA -->|"orchestre"| UpdateManifest
classDef entrypoint fill:#4a90d9,stroke:#2c5f8a,color:#fff
classDef tui fill:#6ab04c,stroke:#3d7a28,color:#fff
classDef data fill:#f0932b,stroke:#c0741e,color:#fff
classDef sync fill:#9b59b6,stroke:#6c3483,color:#fff
classDef storage fill:#e74c3c,stroke:#a93226,color:#fff
classDef user fill:#34495e,stroke:#1c2833,color:#fff
class User user
class Parse entrypoint
class Index,Screen,Input,State,Renderer,Ansi tui
class Registry,Manifest,Installer data
class Upstream,SyncScript,SyncCommon,UpdateManifest,GHA sync
class LocalDir storage
Loading

Deux diagrammes supplémentaires sont disponibles dans docs/architecture.md :

  • Flux utilisateur TUI — machine à états complète (suggest, browse, search, confirm, installing, done)
  • Pipeline de mise à jour des agents — scripts de veille upstream et workflow de découverte/évaluation (manual dispatch uniquement)

📋 Agents disponibles

69 agents répartis en 10 catégories, invocables via @catégorie/nom.

CatégorieAgentsDescription
💻 Languages11TypeScript, Python, Go, Rust, Java, C#, PHP, Kotlin, C++, Rails, Swift
🤖 AI9AI engineering, data science, ML, MLOps, LLM, prompts, recherche, data engineering, data analysis
🌐 Web9React, Next.js, Vue, Angular, mobile, UI design, analyse UI, accessibilité, fullstack
🗄️ Data & API6Architecture API, GraphQL, bases de données, PostgreSQL, Redis, SQL
⚙️ DevOps9Docker, Kubernetes, Terraform, AWS, CI/CD, Linux, plateforme, SRE, incident response
🛠️ DevTools8Code review, debugging, performance, refactoring, tests, orchestration, microservices, QA, legacy modernization
🔒 Security5Audit sécurité, tests de pénétration, smart contracts, security engineering, conformité
🔌 MCP2Développement MCP, audit sécurité MCP
📊 Business6Product management, project management, PRD, Scrum, UX research, business analysis
📝 Docs4Documentation technique, API, rédaction, diagrammes

📊 Qualité des agents

Chaque agent est évalué automatiquement par scripts/quality_scorer.py sur 8 dimensions (score 1-5 chacune) :

DimensionCe qui est mesuré5/5
frontmatterPrésence de description, mode, permission3 champs présents
identityParagraphe d'identité entre le frontmatter et le premier ##50-300 mots
decisionsSection ## Decisions avec arbres IF/THEN≥ 5 règles
examplesSection ## Examples avec blocs de code≥ 3 exemples
quality_gateSection ## Quality Gate avec critères de validation≥ 5 critères
concisenessNombre de lignes (70-120 idéal) et ratio de filler phrases70-120 lignes, ≤ 3% filler
no_banned_sectionsAbsence des anciennes sections (Workflow, Tools, Anti-patterns, Collaboration)0 section interdite
version_pinningRéférences à des versions et années dans l'identitéVersion + année présents

Seuil de passage : moyenne ≥ 3.5 ET aucune dimension < 2

Labels : Excellent (≥ 4.5) · Good (≥ 3.5) · Needs improvement (≥ 2.5) · Poor (< 2.5)

Catalogue des agents

69 agents · Score moyen : 4.59/5 · 100% pass rate · 49 Excellent, 20 Good

Coût token estimé : taille en bytes / 4 (approximation pour contenu anglais + code).

CatégorieAgentScoreLabel~TokensLignes
aiai-engineer4.75Excellent1 164113
aidata-analyst4.75Excellent1 088102
aidata-engineer4.75Excellent1 180106
aidata-scientist4.75Excellent1 218108
aillm-architect4.88Excellent1 353125
aiml-engineer4.75Excellent1 170108
aimlops-engineer4.75Excellent1 205125
aiprompt-engineer4.75Excellent1 386121
aisearch-specialist4.62Excellent1 316114
businessbusiness-analyst4.62Excellent1 260104
businessprd4.25Good1 40774
businessproduct-manager4.25Good1 04385
businessproject-manager4.38Good1 17489
businessscrum-master4.25Good1 26598
businessux-researcher4.25Good1 446116
data-apiapi-architect4.75Excellent1 351128
data-apidatabase-architect4.50Excellent1 265113
data-apigraphql-architect4.88Excellent1 249128
data-apipostgres-pro4.50Excellent1 208119
data-apiredis-specialist4.88Excellent1 243122
data-apisql-pro4.50Excellent2 136165
devopsaws-specialist4.88Excellent1 087123
devopsci-cd-engineer4.62Excellent1 103118
devopsdocker-specialist4.62Excellent1 089130
devopsincident-responder4.25Good2 112182
devopskubernetes-specialist4.88Excellent1 111136
devopslinux-admin4.62Excellent1 044127
devopsplatform-engineer4.88Excellent1 019118
devopssre-engineer4.38Good1 157122
devopsterraform-specialist4.88Excellent1 242139
devtoolscode-reviewer4.25Good1 214110
devtoolsdebugger4.25Good1 369122
devtoolslegacy-modernizer4.25Good2 661220
devtoolsmicroservices-architect4.50Excellent1 230150
devtoolsperformance-engineer4.25Good1 226119
devtoolsqa-expert4.25Good1 267123
devtoolsrefactoring-specialist4.50Excellent1 753186
devtoolstest-automator4.50Excellent1 546161
docsapi-documenter4.62Excellent1 195118
docsdiagram-architect4.62Excellent1 173111
docsdocumentation-engineer4.38Good1 050105
docstechnical-writer4.25Good1 097120
languagescpp-pro4.62Excellent1 197141
languagescsharp-developer4.62Excellent1 162133
languagesgolang-pro4.88Excellent1 101129
languagesjava-architect4.88Excellent1 383138
languageskotlin-specialist4.88Excellent1 191121
languagesphp-pro4.88Excellent1 193138
languagespython-pro4.88Excellent1 139139
languagesrails-expert4.88Excellent1 232139
languagesrust-pro4.88Excellent1 211139
languagesswift-expert4.88Excellent1 201138
languagestypescript-pro4.88Excellent1 268132
mcpmcp-developer4.88Excellent1 384125
mcpmcp-security-auditor4.12Good1 28987
securitycompliance-auditor4.75Excellent1 805107
securitypenetration-tester4.62Excellent1 828137
securitysecurity-auditor4.25Good1 633104
securitysecurity-engineer4.25Good1 111109
securitysmart-contract-auditor4.75Excellent2 269126
webaccessibility4.50Excellent1 273107
webangular-architect4.25Good1 282125
webfullstack-developer4.62Excellent1 034103
webmobile-developer4.50Excellent1 223125
webnextjs-developer4.25Good1 201126
webreact-specialist4.88Excellent994104
webscreenshot-ui-analyzer4.25Good1 38099
webui-designer4.62Excellent1 131103
webvue-expert4.88Excellent1 094104

🎒 Packs

15 packs prédéfinis pour installer des groupes d'agents cohérents en une seule commande.

PackAgentsDescription
backendpostgres-pro, redis-specialist, database-architect, api-architect, python-pro, typescript-pro, debugger, test-automatorStack backend
frontendreact-specialist, nextjs-developer, typescript-pro, ui-designer, performance-engineer, test-automatorStack frontend
devopsdocker-specialist, kubernetes-specialist, terraform-specialist, aws-specialist, ci-cd-engineer, linux-admin, platform-engineer, incident-responderInfrastructure
fullstackfullstack-developer, typescript-pro, react-specialist, nextjs-developer, postgres-pro, api-architect, debugger, test-automator, code-reviewerFull stack
aiai-engineer, data-scientist, ml-engineer, llm-architect, prompt-engineer, search-specialistIA & ML
securitysecurity-auditor, penetration-tester, smart-contract-auditor, compliance-auditorSécurité
mcpmcp-developer, mcp-security-auditorMCP servers
qualitycode-reviewer, test-automator, debugger, performance-engineer, refactoring-specialist, legacy-modernizerQualité code
startupfullstack-developer, typescript-pro, nextjs-developer, postgres-pro, docker-specialist, product-manager, ui-designer, test-automatorKit startup
data-stackdata-engineer, data-analyst, data-scientist, database-architect, postgres-pro, sql-proStack données
ml-to-productiondata-scientist, ml-engineer, mlops-engineer, llm-architect, docker-specialist, kubernetes-specialistML en production
frontend-completereact-specialist, nextjs-developer, vue-expert, angular-architect, accessibility, ui-designerFrontend complet
ship-it-safelyci-cd-engineer, docker-specialist, kubernetes-specialist, sre-engineer, security-engineer, qa-expertDéploiement sûr
product-discoveryproduct-manager, ux-researcher, business-analyst, prd, ui-designerDécouverte produit
architecture-docsmicroservices-architect, api-architect, database-architect, diagram-architect, documentation-engineerArchitecture & docs

⚙️ CI / CD

Intégration continue (ci.yml)

Chaque push ou pull request sur main déclenche 4 jobs en parallèle :

JobDescription
testTests Python sur 3 versions (3.10, 3.12, 3.13)
test-cliTests Node.js sur 3 versions (20, 22, 23) — CLI, TUI, lock
lintSyntaxe Python/Node, shellcheck, validation du frontmatter YAML des agents, validation du manifest JSON
validate-agentsVérifie la cohérence du manifest avec les fichiers réels, détecte les champs dépréciés

Mises à jour des dépendances (dependabot.yml)

Dependabot surveille les SHA des GitHub Actions utilisées dans les workflows et ouvre automatiquement une PR chaque semaine si une mise à jour est disponible. Toutes les actions sont pinnées par SHA pour des raisons de sécurité.


🔄 Synchronisation des agents

Les agents proviennent de plusieurs sources : la majorité est issue de aitmpl.com (claude-code-templates), certains sont des créations originales du projet (aws-specialist, ci-cd-engineer, docker-specialist, linux-admin, redis-specialist, mcp-security-auditor, prd, screenshot-ui-analyzer), et le catalogue awesome-claude-code-subagents a servi de référence pour identifier les agents manquants. Tous les agents sont curés manuellement et passent par un processus de réécriture experte avant intégration — la synchronisation automatique hebdomadaire a été désactivée pour garantir un haut niveau de qualité.

Pourquoi pas de sync automatique ?

Les agents upstream (~133 disponibles) suivent un format générique (listes de compétences, métriques fictives). Les agents du projet suivent un format expert à 4 sections (identité, décisions, exemples, quality gate). La différence de qualité (3-4/10 vs 8-9/10) rend l'import automatique contre-productif.

Ajouter un nouvel agent

  1. Découverte — lister les agents upstream disponibles via le script local :
    python3 scripts/sync-agents.py --list --tier=extended
  2. Évaluation — vérifier que l'agent apporte une compétence non couverte par les 69 agents existants
  3. Dry-run upstream — lancer le workflow en mode discovery pour récupérer le frontmatter et les permissions sans modifier le repo :
    gh workflow run "Sync Agents" -f tier=core -f dry_run=true
  4. Réécriture — réécrire le body avec le template du projet (Identité → Decisions → Examples → Quality Gate)

Scripts disponibles

Ces scripts sont destinés à un usage manuel uniquement — il n'y a pas de synchronisation automatique.

ScriptDescription
scripts/sync-agents.pyTélécharge et convertit les agents depuis le dépôt upstream
scripts/update-manifest.pyFusionne le manifest de sync dans le manifest principal
scripts/sync_common.pyUtilitaires HTTP partagés, cache ETag, validation de frontmatter
scripts/generate_readme_scores.pyRégénère les tableaux de scores qualité dans les deux README. Mode --check pour la CI.

🚀 Releases & Changelog

Le changelog est généré automatiquement à partir de l'historique Git via git-cliff, orienté utilisateur avec des catégories claires.

Fonctionnement

  1. Tag push — pousser un tag v* (ex: git tag v8.0.0 && git push --tags)
  2. CI obligatoire — le workflow de release attend que lint, tests et validate-agents passent (ci.yml via workflow_call) avant de continuer
  3. Génération du changelog — git-cliff analyse les commits depuis le dernier tag et génère un changelog structuré
  4. GitHub Release — une release est créée automatiquement avec le changelog comme corps

Catégories du changelog

Préfixe commitCatégorie changelog
feat✨ Nouveautés
fix🐛 Corrections
perf⚡ Performance
docs📝 Documentation
refactor♻️ Refactoring
chore, ci, build, style, test🔧 Maintenance

Les commits avec BREAKING CHANGE sont préfixés BREAKING: dans leur catégorie respective.

Créer une release

# Bumper la version dans package.json, tagger et pousser
npm version major # ou minor, patch
git push --follow-tags
# Ou manuellement
git tag v8.0.0
git push --tags

🧪 Tests

814 tests (504 JS + 310 Python).

# Tous les tests JS (CLI + TUI)
node --test tests/cli.test.mjs tests/tui.test.mjs tests/lock.test.mjs
# Tous les tests Python
python3 tests/run_tests.py
# Tests spécifiques
python3 -m pytest tests/test_agents.py -v
python3 -m pytest tests/test_sync_script.py -v
python3 -m pytest tests/test_update_manifest.py -v

🤝 Contribuer

Les contributions sont les bienvenues ! Voir les issues ouvertes.

Modifier ou ajouter un agent

  1. Créer ou modifier le fichier dans agents/<catégorie>/<nom>.md
  2. Respecter le template 4 sections : Identity, Decisions, Examples, Quality Gate
  3. Régénérer les scores README :
    python3 scripts/generate_readme_scores.py
  4. Commiter les fichiers agent et les README mis à jour ensemble
  5. La CI vérifiera automatiquement que les scores sont à jour

Astuce : lancez python3 scripts/quality_scorer.py agents/<catégorie>/<nom>.md pour voir le score détaillé avant de mettre à jour les README.

Qualité minimale

Chaque agent doit atteindre le seuil de qualité : score moyen ≥ 3.5 et aucune dimension < 2. Consultez la section Qualité des agents pour le détail des dimensions.

Agents majoritairement sourcés depuis aitmpl.com (claude-code-templates), avec des créations originales et awesome-claude-code-subagents comme référence. Tous réécrits et curés manuellement.


📄 Licence

MIT

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Stars

7 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

opencode-agents

🇬🇧 English version

CIAgentsTestsLicenseNodenpmAsk DeepWiki

Demo

Registre curé de 69 agents IA pour OpenCode, distribué via un CLI zero-dependency et un TUI interactif. Les agents sont des fichiers .md contenant des system prompts pour configurer des assistants IA spécialisés.

Chaque agent suit un format expert à 4 sections : identité, décisions, exemples, quality gate.


🚀 Quickstart

# TUI interactif avec suggestions intelligentes (auto-détecte TTY)
npx github:dmicheneau/opencode-template-agent
# Détecte la stack et suggère les agents adaptés
npx github:dmicheneau/opencode-template-agent install
# CLI rapide — installer un pack en une commande
npx github:dmicheneau/opencode-template-agent install --pack backend

📦 Installation

Mode 1 — TUI interactif (recommandé)

Le TUI est le moyen le plus simple de découvrir et installer des agents. Il se lance automatiquement lorsque le terminal supporte un TTY.

npx github:dmicheneau/opencode-template-agent
# ou explicitement :
npx github:dmicheneau/opencode-template-agent tui

Ce que ça fait :

  • Auto-détecte le TTY et lance l'interface interactive
  • Écran de suggestions au démarrage : si une stack est détectée dans le projet courant, les agents les plus pertinents apparaissent pré-sélectionnés — appuyez sur Space pour désélectionner, Enter pour installer, B pour parcourir tout le catalogue
  • Parcourir les catégories par onglets ( / Tab)
  • Naviguer dans les listes avec
  • Sélectionner des agents avec Space, installer avec Enter
  • Recherche intégrée (/), exploration par packs et catégories

Mode 2 — CLI non-interactif

Pour l'automatisation ou une installation rapide sans interface graphique.

Commandes :

# Détecter la stack et suggérer les agents adaptés
npx github:dmicheneau/opencode-template-agent install
# Installer un agent spécifique
npx github:dmicheneau/opencode-template-agent install typescript-pro
# Installer un ou plusieurs packs (virgule ou espace)
npx github:dmicheneau/opencode-template-agent install --pack backend
npx github:dmicheneau/opencode-template-agent install --pack backend,devops
# Installer une ou plusieurs catégories
npx github:dmicheneau/opencode-template-agent install --category languages
npx github:dmicheneau/opencode-template-agent install --category languages,data-api
# Installer tous les agents
npx github:dmicheneau/opencode-template-agent install --all
# Lister tous les agents par catégorie
npx github:dmicheneau/opencode-template-agent list
# Lister les packs disponibles
npx github:dmicheneau/opencode-template-agent list --packs
# Rechercher des agents
npx github:dmicheneau/opencode-template-agent search docker
npx github:dmicheneau/opencode-template-agent search "machine learning"

Options :

OptionDescription
--forceÉcraser les fichiers existants ; avec install sans argument, re-propose les agents déjà installés
--dry-runAperçu sans écriture sur le disque (fonctionne aussi avec la suggestion automatique)

Note :--pack et --category sont mutuellement exclusifs.

Mode 3 — Script bash / Clone local

Via script bash :

curl -fsSL https://raw.githubusercontent.com/dmicheneau/opencode-template-agent/main/install.sh | bash

Options : --copy, --global, --dir PATH, --force, --dry-run, --uninstall.

Via clone local :

git clone https://github.com/dmicheneau/opencode-template-agent.git ~/.opencode-agents
echo'export OPENCODE_CONFIG_DIR=~/.opencode-agents'>>~/.zshrc
source~/.zshrc

Les agents sont installés dans .opencode/agents/. Node.js 20+ requis pour les modes 1 et 2.


🔌 Plugin OpenCode

Le plugin expose le registre des 69 agents comme outils LLM directement dans les sessions OpenCode. Version actuelle : discovery-only (v1) — 4 tools en lecture seule, aucune modification du système de fichiers.

Installation

Globale (recommandé — disponible dans toutes les sessions OpenCode) :

Ajouter dans ~/.config/opencode/opencode.json :

{
"plugin": ["github:dmicheneau/opencode-template-agent"]
}

Par projet (disponible uniquement dans le projet concerné) :

Ajouter dans .opencode/opencode.json à la racine du projet :

{
"plugin": ["github:dmicheneau/opencode-template-agent"]
}

Tools disponibles

ToolDescription
search_agentsRecherche par nom, description, catégorie ou tags
list_agentsListe tous les agents groupés par catégorie, avec filtres optionnels par catégorie ou pack
get_agentDétails complets d'un agent (description, mode d'installation, état d'installation, suggestions de correction si typo)
check_healthRapport de santé du registre (agents installés, obsolètes, manquants, intégrité)

v1.1 — Types préfixés Oc* pour éviter les collisions de namespace, mode readonly pour les opérations lock, et sanitization des chemins absolus dans les messages d'erreur.

Exemples d'utilisation

> Cherche un agent pour TypeScript
> Liste les agents de la catégorie security
> Vérifie la santé du registre

Structure des fichiers

plugin/
index.ts # point d'entrée (exporté comme Plugin OpenCode)
tools.ts # définitions des 4 tools
types.d.ts # déclarations de types

Prérequis : OpenCode + Bun (le TypeScript est transpilé nativement, pas d'étape de build).


🏗️ Architecture

Documentation détaillée : docs/architecture.md

Le diagramme ci-dessous présente l'architecture globale du système : le point d'entrée CLI, les modules TUI, le registre d'agents et les scripts de veille upstream.

flowchart TB
User["Utilisateur"]
subgraph CLI["bin/cli.mjs — Point d'entree CLI"]
Parse["Analyse des arguments<br/>(install, list, search, tui)"]
end
subgraph TUI["Interface TUI interactive"]
Index["index.mjs<br/>Orchestrateur<br/>(lifecycle, boucle principale,<br/>signaux)"]
Screen["screen.mjs<br/>E/S Terminal<br/>(raw mode, flush,<br/>resize, onInput)"]
Input["input.mjs<br/>Parseur de touches<br/>(raw bytes → ~20 Actions)"]
State["state.mjs<br/>Machine a etats<br/>(browse, search, confirm,<br/>installing, pack_detail,<br/>done, quit)"]
Renderer["renderer.mjs<br/>Constructeur de frames<br/>(state → chaine ANSI)"]
Ansi["ansi.mjs<br/>Codes ANSI, couleurs,<br/>box drawing, palettes<br/>(catColor, tabColor)"]
end
subgraph Data["Couche de donnees"]
Registry["registry.mjs<br/>Chargeur de manifest<br/>(validation, getAgent,<br/>getCategory, searchAgents,<br/>resolvePackAgents)"]
Manifest["manifest.json<br/>69 agents | 10 categories<br/>15 packs"]
Installer["installer.mjs<br/>Telechargement GitHub raw<br/>→ .opencode/agents/"]
end
subgraph Sync["Veille upstream (manual dispatch)"]
Upstream["davila7/claude-code-templates<br/>(depot upstream)"]
SyncScript["sync-agents.py<br/>(1200 lignes, fetch,<br/>conversion tools→permission,<br/>CURATED + EXTENDED agents)"]
SyncCommon["sync_common.py<br/>(HTTP, cache ETag,<br/>frontmatter, validation)"]
UpdateManifest["update-manifest.py<br/>(fusion manifest,<br/>prefix NEEDS_REVIEW)"]
GHA["GitHub Actions<br/>(workflow_dispatch uniquement,<br/>CI: test + lint + validate)"]
end
LocalDir[".opencode/agents/<br/>Agents installes"]
User --> CLI
Parse -->|"tui"| Index
Parse -->|"install"| Installer
Parse -->|"list / search"| Registry
Index --> Screen
Screen --> Input
Input --> State
State --> Renderer
Renderer --> Ansi
Ansi -->|"frames ANSI"| Screen
Index --> Registry
Index --> Installer
Registry --> Manifest
Installer -->|"telecharge"| LocalDir
Upstream --> SyncScript
SyncScript --> SyncCommon
SyncScript --> UpdateManifest
UpdateManifest --> Manifest
GHA -->|"orchestre"| SyncScript
GHA -->|"orchestre"| UpdateManifest
classDef entrypoint fill:#4a90d9,stroke:#2c5f8a,color:#fff
classDef tui fill:#6ab04c,stroke:#3d7a28,color:#fff
classDef data fill:#f0932b,stroke:#c0741e,color:#fff
classDef sync fill:#9b59b6,stroke:#6c3483,color:#fff
classDef storage fill:#e74c3c,stroke:#a93226,color:#fff
classDef user fill:#34495e,stroke:#1c2833,color:#fff
class User user
class Parse entrypoint
class Index,Screen,Input,State,Renderer,Ansi tui
class Registry,Manifest,Installer data
class Upstream,SyncScript,SyncCommon,UpdateManifest,GHA sync
class LocalDir storage
Loading

Deux diagrammes supplémentaires sont disponibles dans docs/architecture.md :

  • Flux utilisateur TUI — machine à états complète (suggest, browse, search, confirm, installing, done)
  • Pipeline de mise à jour des agents — scripts de veille upstream et workflow de découverte/évaluation (manual dispatch uniquement)

📋 Agents disponibles

69 agents répartis en 10 catégories, invocables via @catégorie/nom.

CatégorieAgentsDescription
💻 Languages11TypeScript, Python, Go, Rust, Java, C#, PHP, Kotlin, C++, Rails, Swift
🤖 AI9AI engineering, data science, ML, MLOps, LLM, prompts, recherche, data engineering, data analysis
🌐 Web9React, Next.js, Vue, Angular, mobile, UI design, analyse UI, accessibilité, fullstack
🗄️ Data & API6Architecture API, GraphQL, bases de données, PostgreSQL, Redis, SQL
⚙️ DevOps9Docker, Kubernetes, Terraform, AWS, CI/CD, Linux, plateforme, SRE, incident response
🛠️ DevTools8Code review, debugging, performance, refactoring, tests, orchestration, microservices, QA, legacy modernization
🔒 Security5Audit sécurité, tests de pénétration, smart contracts, security engineering, conformité
🔌 MCP2Développement MCP, audit sécurité MCP
📊 Business6Product management, project management, PRD, Scrum, UX research, business analysis
📝 Docs4Documentation technique, API, rédaction, diagrammes

📊 Qualité des agents

Chaque agent est évalué automatiquement par scripts/quality_scorer.py sur 8 dimensions (score 1-5 chacune) :

DimensionCe qui est mesuré5/5
frontmatterPrésence de description, mode, permission3 champs présents
identityParagraphe d'identité entre le frontmatter et le premier ##50-300 mots
decisionsSection ## Decisions avec arbres IF/THEN≥ 5 règles
examplesSection ## Examples avec blocs de code≥ 3 exemples
quality_gateSection ## Quality Gate avec critères de validation≥ 5 critères
concisenessNombre de lignes (70-120 idéal) et ratio de filler phrases70-120 lignes, ≤ 3% filler
no_banned_sectionsAbsence des anciennes sections (Workflow, Tools, Anti-patterns, Collaboration)0 section interdite
version_pinningRéférences à des versions et années dans l'identitéVersion + année présents

Seuil de passage : moyenne ≥ 3.5 ET aucune dimension < 2

Labels : Excellent (≥ 4.5) · Good (≥ 3.5) · Needs improvement (≥ 2.5) · Poor (< 2.5)

Catalogue des agents

69 agents · Score moyen : 4.59/5 · 100% pass rate · 49 Excellent, 20 Good

Coût token estimé : taille en bytes / 4 (approximation pour contenu anglais + code).

CatégorieAgentScoreLabel~TokensLignes
aiai-engineer4.75Excellent1 164113
aidata-analyst4.75Excellent1 088102
aidata-engineer4.75Excellent1 180106
aidata-scientist4.75Excellent1 218108
aillm-architect4.88Excellent1 353125
aiml-engineer4.75Excellent1 170108
aimlops-engineer4.75Excellent1 205125
aiprompt-engineer4.75Excellent1 386121
aisearch-specialist4.62Excellent1 316114
businessbusiness-analyst4.62Excellent1 260104
businessprd4.25Good1 40774
businessproduct-manager4.25Good1 04385
businessproject-manager4.38Good1 17489
businessscrum-master4.25Good1 26598
businessux-researcher4.25Good1 446116
data-apiapi-architect4.75Excellent1 351128
data-apidatabase-architect4.50Excellent1 265113
data-apigraphql-architect4.88Excellent1 249128
data-apipostgres-pro4.50Excellent1 208119
data-apiredis-specialist4.88Excellent1 243122
data-apisql-pro4.50Excellent2 136165
devopsaws-specialist4.88Excellent1 087123
devopsci-cd-engineer4.62Excellent1 103118
devopsdocker-specialist4.62Excellent1 089130
devopsincident-responder4.25Good2 112182
devopskubernetes-specialist4.88Excellent1 111136
devopslinux-admin4.62Excellent1 044127
devopsplatform-engineer4.88Excellent1 019118
devopssre-engineer4.38Good1 157122
devopsterraform-specialist4.88Excellent1 242139
devtoolscode-reviewer4.25Good1 214110
devtoolsdebugger4.25Good1 369122
devtoolslegacy-modernizer4.25Good2 661220
devtoolsmicroservices-architect4.50Excellent1 230150
devtoolsperformance-engineer4.25Good1 226119
devtoolsqa-expert4.25Good1 267123
devtoolsrefactoring-specialist4.50Excellent1 753186
devtoolstest-automator4.50Excellent1 546161
docsapi-documenter4.62Excellent1 195118
docsdiagram-architect4.62Excellent1 173111
docsdocumentation-engineer4.38Good1 050105
docstechnical-writer4.25Good1 097120
languagescpp-pro4.62Excellent1 197141
languagescsharp-developer4.62Excellent1 162133
languagesgolang-pro4.88Excellent1 101129
languagesjava-architect4.88Excellent1 383138
languageskotlin-specialist4.88Excellent1 191121
languagesphp-pro4.88Excellent1 193138
languagespython-pro4.88Excellent1 139139
languagesrails-expert4.88Excellent1 232139
languagesrust-pro4.88Excellent1 211139
languagesswift-expert4.88Excellent1 201138
languagestypescript-pro4.88Excellent1 268132
mcpmcp-developer4.88Excellent1 384125
mcpmcp-security-auditor4.12Good1 28987
securitycompliance-auditor4.75Excellent1 805107
securitypenetration-tester4.62Excellent1 828137
securitysecurity-auditor4.25Good1 633104
securitysecurity-engineer4.25Good1 111109
securitysmart-contract-auditor4.75Excellent2 269126
webaccessibility4.50Excellent1 273107
webangular-architect4.25Good1 282125
webfullstack-developer4.62Excellent1 034103
webmobile-developer4.50Excellent1 223125
webnextjs-developer4.25Good1 201126
webreact-specialist4.88Excellent994104
webscreenshot-ui-analyzer4.25Good1 38099
webui-designer4.62Excellent1 131103
webvue-expert4.88Excellent1 094104

🎒 Packs

15 packs prédéfinis pour installer des groupes d'agents cohérents en une seule commande.

PackAgentsDescription
backendpostgres-pro, redis-specialist, database-architect, api-architect, python-pro, typescript-pro, debugger, test-automatorStack backend
frontendreact-specialist, nextjs-developer, typescript-pro, ui-designer, performance-engineer, test-automatorStack frontend
devopsdocker-specialist, kubernetes-specialist, terraform-specialist, aws-specialist, ci-cd-engineer, linux-admin, platform-engineer, incident-responderInfrastructure
fullstackfullstack-developer, typescript-pro, react-specialist, nextjs-developer, postgres-pro, api-architect, debugger, test-automator, code-reviewerFull stack
aiai-engineer, data-scientist, ml-engineer, llm-architect, prompt-engineer, search-specialistIA & ML
securitysecurity-auditor, penetration-tester, smart-contract-auditor, compliance-auditorSécurité
mcpmcp-developer, mcp-security-auditorMCP servers
qualitycode-reviewer, test-automator, debugger, performance-engineer, refactoring-specialist, legacy-modernizerQualité code
startupfullstack-developer, typescript-pro, nextjs-developer, postgres-pro, docker-specialist, product-manager, ui-designer, test-automatorKit startup
data-stackdata-engineer, data-analyst, data-scientist, database-architect, postgres-pro, sql-proStack données
ml-to-productiondata-scientist, ml-engineer, mlops-engineer, llm-architect, docker-specialist, kubernetes-specialistML en production
frontend-completereact-specialist, nextjs-developer, vue-expert, angular-architect, accessibility, ui-designerFrontend complet
ship-it-safelyci-cd-engineer, docker-specialist, kubernetes-specialist, sre-engineer, security-engineer, qa-expertDéploiement sûr
product-discoveryproduct-manager, ux-researcher, business-analyst, prd, ui-designerDécouverte produit
architecture-docsmicroservices-architect, api-architect, database-architect, diagram-architect, documentation-engineerArchitecture & docs

⚙️ CI / CD

Intégration continue (ci.yml)

Chaque push ou pull request sur main déclenche 4 jobs en parallèle :

JobDescription
testTests Python sur 3 versions (3.10, 3.12, 3.13)
test-cliTests Node.js sur 3 versions (20, 22, 23) — CLI, TUI, lock
lintSyntaxe Python/Node, shellcheck, validation du frontmatter YAML des agents, validation du manifest JSON
validate-agentsVérifie la cohérence du manifest avec les fichiers réels, détecte les champs dépréciés

Mises à jour des dépendances (dependabot.yml)

Dependabot surveille les SHA des GitHub Actions utilisées dans les workflows et ouvre automatiquement une PR chaque semaine si une mise à jour est disponible. Toutes les actions sont pinnées par SHA pour des raisons de sécurité.


🔄 Synchronisation des agents

Les agents proviennent de plusieurs sources : la majorité est issue de aitmpl.com (claude-code-templates), certains sont des créations originales du projet (aws-specialist, ci-cd-engineer, docker-specialist, linux-admin, redis-specialist, mcp-security-auditor, prd, screenshot-ui-analyzer), et le catalogue awesome-claude-code-subagents a servi de référence pour identifier les agents manquants. Tous les agents sont curés manuellement et passent par un processus de réécriture experte avant intégration — la synchronisation automatique hebdomadaire a été désactivée pour garantir un haut niveau de qualité.

Pourquoi pas de sync automatique ?

Les agents upstream (~133 disponibles) suivent un format générique (listes de compétences, métriques fictives). Les agents du projet suivent un format expert à 4 sections (identité, décisions, exemples, quality gate). La différence de qualité (3-4/10 vs 8-9/10) rend l'import automatique contre-productif.

Ajouter un nouvel agent

  1. Découverte — lister les agents upstream disponibles via le script local :
    python3 scripts/sync-agents.py --list --tier=extended
  2. Évaluation — vérifier que l'agent apporte une compétence non couverte par les 69 agents existants
  3. Dry-run upstream — lancer le workflow en mode discovery pour récupérer le frontmatter et les permissions sans modifier le repo :
    gh workflow run "Sync Agents" -f tier=core -f dry_run=true
  4. Réécriture — réécrire le body avec le template du projet (Identité → Decisions → Examples → Quality Gate)

Scripts disponibles

Ces scripts sont destinés à un usage manuel uniquement — il n'y a pas de synchronisation automatique.

ScriptDescription
scripts/sync-agents.pyTélécharge et convertit les agents depuis le dépôt upstream
scripts/update-manifest.pyFusionne le manifest de sync dans le manifest principal
scripts/sync_common.pyUtilitaires HTTP partagés, cache ETag, validation de frontmatter
scripts/generate_readme_scores.pyRégénère les tableaux de scores qualité dans les deux README. Mode --check pour la CI.

🚀 Releases & Changelog

Le changelog est généré automatiquement à partir de l'historique Git via git-cliff, orienté utilisateur avec des catégories claires.

Fonctionnement

  1. Tag push — pousser un tag v* (ex: git tag v8.0.0 && git push --tags)
  2. CI obligatoire — le workflow de release attend que lint, tests et validate-agents passent (ci.yml via workflow_call) avant de continuer
  3. Génération du changelog — git-cliff analyse les commits depuis le dernier tag et génère un changelog structuré
  4. GitHub Release — une release est créée automatiquement avec le changelog comme corps

Catégories du changelog

Préfixe commitCatégorie changelog
feat✨ Nouveautés
fix🐛 Corrections
perf⚡ Performance
docs📝 Documentation
refactor♻️ Refactoring
chore, ci, build, style, test🔧 Maintenance

Les commits avec BREAKING CHANGE sont préfixés BREAKING: dans leur catégorie respective.

Créer une release

# Bumper la version dans package.json, tagger et pousser
npm version major # ou minor, patch
git push --follow-tags
# Ou manuellement
git tag v8.0.0
git push --tags

🧪 Tests

814 tests (504 JS + 310 Python).

# Tous les tests JS (CLI + TUI)
node --test tests/cli.test.mjs tests/tui.test.mjs tests/lock.test.mjs
# Tous les tests Python
python3 tests/run_tests.py
# Tests spécifiques
python3 -m pytest tests/test_agents.py -v
python3 -m pytest tests/test_sync_script.py -v
python3 -m pytest tests/test_update_manifest.py -v

🤝 Contribuer

Les contributions sont les bienvenues ! Voir les issues ouvertes.

Modifier ou ajouter un agent

  1. Créer ou modifier le fichier dans agents/<catégorie>/<nom>.md
  2. Respecter le template 4 sections : Identity, Decisions, Examples, Quality Gate
  3. Régénérer les scores README :
    python3 scripts/generate_readme_scores.py
  4. Commiter les fichiers agent et les README mis à jour ensemble
  5. La CI vérifiera automatiquement que les scores sont à jour

Astuce : lancez python3 scripts/quality_scorer.py agents/<catégorie>/<nom>.md pour voir le score détaillé avant de mettre à jour les README.

Qualité minimale

Chaque agent doit atteindre le seuil de qualité : score moyen ≥ 3.5 et aucune dimension < 2. Consultez la section Qualité des agents pour le détail des dimensions.

Agents majoritairement sourcés depuis aitmpl.com (claude-code-templates), avec des créations originales et awesome-claude-code-subagents comme référence. Tous réécrits et curés manuellement.


📄 Licence

MIT

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Stars

7 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

opencode-agents

🇬🇧 English version

CIAgentsTestsLicenseNodenpmAsk DeepWiki

Demo

Registre curé de 69 agents IA pour OpenCode, distribué via un CLI zero-dependency et un TUI interactif. Les agents sont des fichiers .md contenant des system prompts pour configurer des assistants IA spécialisés.

Chaque agent suit un format expert à 4 sections : identité, décisions, exemples, quality gate.


🚀 Quickstart

# TUI interactif avec suggestions intelligentes (auto-détecte TTY)
npx github:dmicheneau/opencode-template-agent
# Détecte la stack et suggère les agents adaptés
npx github:dmicheneau/opencode-template-agent install
# CLI rapide — installer un pack en une commande
npx github:dmicheneau/opencode-template-agent install --pack backend

📦 Installation

Mode 1 — TUI interactif (recommandé)

Le TUI est le moyen le plus simple de découvrir et installer des agents. Il se lance automatiquement lorsque le terminal supporte un TTY.

npx github:dmicheneau/opencode-template-agent
# ou explicitement :
npx github:dmicheneau/opencode-template-agent tui

Ce que ça fait :

  • Auto-détecte le TTY et lance l'interface interactive
  • Écran de suggestions au démarrage : si une stack est détectée dans le projet courant, les agents les plus pertinents apparaissent pré-sélectionnés — appuyez sur Space pour désélectionner, Enter pour installer, B pour parcourir tout le catalogue
  • Parcourir les catégories par onglets ( / Tab)
  • Naviguer dans les listes avec
  • Sélectionner des agents avec Space, installer avec Enter
  • Recherche intégrée (/), exploration par packs et catégories

Mode 2 — CLI non-interactif

Pour l'automatisation ou une installation rapide sans interface graphique.

Commandes :

# Détecter la stack et suggérer les agents adaptés
npx github:dmicheneau/opencode-template-agent install
# Installer un agent spécifique
npx github:dmicheneau/opencode-template-agent install typescript-pro
# Installer un ou plusieurs packs (virgule ou espace)
npx github:dmicheneau/opencode-template-agent install --pack backend
npx github:dmicheneau/opencode-template-agent install --pack backend,devops
# Installer une ou plusieurs catégories
npx github:dmicheneau/opencode-template-agent install --category languages
npx github:dmicheneau/opencode-template-agent install --category languages,data-api
# Installer tous les agents
npx github:dmicheneau/opencode-template-agent install --all
# Lister tous les agents par catégorie
npx github:dmicheneau/opencode-template-agent list
# Lister les packs disponibles
npx github:dmicheneau/opencode-template-agent list --packs
# Rechercher des agents
npx github:dmicheneau/opencode-template-agent search docker
npx github:dmicheneau/opencode-template-agent search "machine learning"

Options :

OptionDescription
--forceÉcraser les fichiers existants ; avec install sans argument, re-propose les agents déjà installés
--dry-runAperçu sans écriture sur le disque (fonctionne aussi avec la suggestion automatique)

Note :--pack et --category sont mutuellement exclusifs.

Mode 3 — Script bash / Clone local

Via script bash :

curl -fsSL https://raw.githubusercontent.com/dmicheneau/opencode-template-agent/main/install.sh | bash

Options : --copy, --global, --dir PATH, --force, --dry-run, --uninstall.

Via clone local :

git clone https://github.com/dmicheneau/opencode-template-agent.git ~/.opencode-agents
echo'export OPENCODE_CONFIG_DIR=~/.opencode-agents'>>~/.zshrc
source~/.zshrc

Les agents sont installés dans .opencode/agents/. Node.js 20+ requis pour les modes 1 et 2.


🔌 Plugin OpenCode

Le plugin expose le registre des 69 agents comme outils LLM directement dans les sessions OpenCode. Version actuelle : discovery-only (v1) — 4 tools en lecture seule, aucune modification du système de fichiers.

Installation

Globale (recommandé — disponible dans toutes les sessions OpenCode) :

Ajouter dans ~/.config/opencode/opencode.json :

{
"plugin": ["github:dmicheneau/opencode-template-agent"]
}

Par projet (disponible uniquement dans le projet concerné) :

Ajouter dans .opencode/opencode.json à la racine du projet :

{
"plugin": ["github:dmicheneau/opencode-template-agent"]
}

Tools disponibles

ToolDescription
search_agentsRecherche par nom, description, catégorie ou tags
list_agentsListe tous les agents groupés par catégorie, avec filtres optionnels par catégorie ou pack
get_agentDétails complets d'un agent (description, mode d'installation, état d'installation, suggestions de correction si typo)
check_healthRapport de santé du registre (agents installés, obsolètes, manquants, intégrité)

v1.1 — Types préfixés Oc* pour éviter les collisions de namespace, mode readonly pour les opérations lock, et sanitization des chemins absolus dans les messages d'erreur.

Exemples d'utilisation

> Cherche un agent pour TypeScript
> Liste les agents de la catégorie security
> Vérifie la santé du registre

Structure des fichiers

plugin/
index.ts # point d'entrée (exporté comme Plugin OpenCode)
tools.ts # définitions des 4 tools
types.d.ts # déclarations de types

Prérequis : OpenCode + Bun (le TypeScript est transpilé nativement, pas d'étape de build).


🏗️ Architecture

Documentation détaillée : docs/architecture.md

Le diagramme ci-dessous présente l'architecture globale du système : le point d'entrée CLI, les modules TUI, le registre d'agents et les scripts de veille upstream.

flowchart TB
User["Utilisateur"]
subgraph CLI["bin/cli.mjs — Point d'entree CLI"]
Parse["Analyse des arguments<br/>(install, list, search, tui)"]
end
subgraph TUI["Interface TUI interactive"]
Index["index.mjs<br/>Orchestrateur<br/>(lifecycle, boucle principale,<br/>signaux)"]
Screen["screen.mjs<br/>E/S Terminal<br/>(raw mode, flush,<br/>resize, onInput)"]
Input["input.mjs<br/>Parseur de touches<br/>(raw bytes → ~20 Actions)"]
State["state.mjs<br/>Machine a etats<br/>(browse, search, confirm,<br/>installing, pack_detail,<br/>done, quit)"]
Renderer["renderer.mjs<br/>Constructeur de frames<br/>(state → chaine ANSI)"]
Ansi["ansi.mjs<br/>Codes ANSI, couleurs,<br/>box drawing, palettes<br/>(catColor, tabColor)"]
end
subgraph Data["Couche de donnees"]
Registry["registry.mjs<br/>Chargeur de manifest<br/>(validation, getAgent,<br/>getCategory, searchAgents,<br/>resolvePackAgents)"]
Manifest["manifest.json<br/>69 agents | 10 categories<br/>15 packs"]
Installer["installer.mjs<br/>Telechargement GitHub raw<br/>→ .opencode/agents/"]
end
subgraph Sync["Veille upstream (manual dispatch)"]
Upstream["davila7/claude-code-templates<br/>(depot upstream)"]
SyncScript["sync-agents.py<br/>(1200 lignes, fetch,<br/>conversion tools→permission,<br/>CURATED + EXTENDED agents)"]
SyncCommon["sync_common.py<br/>(HTTP, cache ETag,<br/>frontmatter, validation)"]
UpdateManifest["update-manifest.py<br/>(fusion manifest,<br/>prefix NEEDS_REVIEW)"]
GHA["GitHub Actions<br/>(workflow_dispatch uniquement,<br/>CI: test + lint + validate)"]
end
LocalDir[".opencode/agents/<br/>Agents installes"]
User --> CLI
Parse -->|"tui"| Index
Parse -->|"install"| Installer
Parse -->|"list / search"| Registry
Index --> Screen
Screen --> Input
Input --> State
State --> Renderer
Renderer --> Ansi
Ansi -->|"frames ANSI"| Screen
Index --> Registry
Index --> Installer
Registry --> Manifest
Installer -->|"telecharge"| LocalDir
Upstream --> SyncScript
SyncScript --> SyncCommon
SyncScript --> UpdateManifest
UpdateManifest --> Manifest
GHA -->|"orchestre"| SyncScript
GHA -->|"orchestre"| UpdateManifest
classDef entrypoint fill:#4a90d9,stroke:#2c5f8a,color:#fff
classDef tui fill:#6ab04c,stroke:#3d7a28,color:#fff
classDef data fill:#f0932b,stroke:#c0741e,color:#fff
classDef sync fill:#9b59b6,stroke:#6c3483,color:#fff
classDef storage fill:#e74c3c,stroke:#a93226,color:#fff
classDef user fill:#34495e,stroke:#1c2833,color:#fff
class User user
class Parse entrypoint
class Index,Screen,Input,State,Renderer,Ansi tui
class Registry,Manifest,Installer data
class Upstream,SyncScript,SyncCommon,UpdateManifest,GHA sync
class LocalDir storage
Loading

Deux diagrammes supplémentaires sont disponibles dans docs/architecture.md :

  • Flux utilisateur TUI — machine à états complète (suggest, browse, search, confirm, installing, done)
  • Pipeline de mise à jour des agents — scripts de veille upstream et workflow de découverte/évaluation (manual dispatch uniquement)

📋 Agents disponibles

69 agents répartis en 10 catégories, invocables via @catégorie/nom.

CatégorieAgentsDescription
💻 Languages11TypeScript, Python, Go, Rust, Java, C#, PHP, Kotlin, C++, Rails, Swift
🤖 AI9AI engineering, data science, ML, MLOps, LLM, prompts, recherche, data engineering, data analysis
🌐 Web9React, Next.js, Vue, Angular, mobile, UI design, analyse UI, accessibilité, fullstack
🗄️ Data & API6Architecture API, GraphQL, bases de données, PostgreSQL, Redis, SQL
⚙️ DevOps9Docker, Kubernetes, Terraform, AWS, CI/CD, Linux, plateforme, SRE, incident response
🛠️ DevTools8Code review, debugging, performance, refactoring, tests, orchestration, microservices, QA, legacy modernization
🔒 Security5Audit sécurité, tests de pénétration, smart contracts, security engineering, conformité
🔌 MCP2Développement MCP, audit sécurité MCP
📊 Business6Product management, project management, PRD, Scrum, UX research, business analysis
📝 Docs4Documentation technique, API, rédaction, diagrammes

📊 Qualité des agents

Chaque agent est évalué automatiquement par scripts/quality_scorer.py sur 8 dimensions (score 1-5 chacune) :

DimensionCe qui est mesuré5/5
frontmatterPrésence de description, mode, permission3 champs présents
identityParagraphe d'identité entre le frontmatter et le premier ##50-300 mots
decisionsSection ## Decisions avec arbres IF/THEN≥ 5 règles
examplesSection ## Examples avec blocs de code≥ 3 exemples
quality_gateSection ## Quality Gate avec critères de validation≥ 5 critères
concisenessNombre de lignes (70-120 idéal) et ratio de filler phrases70-120 lignes, ≤ 3% filler
no_banned_sectionsAbsence des anciennes sections (Workflow, Tools, Anti-patterns, Collaboration)0 section interdite
version_pinningRéférences à des versions et années dans l'identitéVersion + année présents

Seuil de passage : moyenne ≥ 3.5 ET aucune dimension < 2

Labels : Excellent (≥ 4.5) · Good (≥ 3.5) · Needs improvement (≥ 2.5) · Poor (< 2.5)

Catalogue des agents

69 agents · Score moyen : 4.59/5 · 100% pass rate · 49 Excellent, 20 Good

Coût token estimé : taille en bytes / 4 (approximation pour contenu anglais + code).

CatégorieAgentScoreLabel~TokensLignes
aiai-engineer4.75Excellent1 164113
aidata-analyst4.75Excellent1 088102
aidata-engineer4.75Excellent1 180106
aidata-scientist4.75Excellent1 218108
aillm-architect4.88Excellent1 353125
aiml-engineer4.75Excellent1 170108
aimlops-engineer4.75Excellent1 205125
aiprompt-engineer4.75Excellent1 386121
aisearch-specialist4.62Excellent1 316114
businessbusiness-analyst4.62Excellent1 260104
businessprd4.25Good1 40774
businessproduct-manager4.25Good1 04385
businessproject-manager4.38Good1 17489
businessscrum-master4.25Good1 26598
businessux-researcher4.25Good1 446116
data-apiapi-architect4.75Excellent1 351128
data-apidatabase-architect4.50Excellent1 265113
data-apigraphql-architect4.88Excellent1 249128
data-apipostgres-pro4.50Excellent1 208119
data-apiredis-specialist4.88Excellent1 243122
data-apisql-pro4.50Excellent2 136165
devopsaws-specialist4.88Excellent1 087123
devopsci-cd-engineer4.62Excellent1 103118
devopsdocker-specialist4.62Excellent1 089130
devopsincident-responder4.25Good2 112182
devopskubernetes-specialist4.88Excellent1 111136
devopslinux-admin4.62Excellent1 044127
devopsplatform-engineer4.88Excellent1 019118
devopssre-engineer4.38Good1 157122
devopsterraform-specialist4.88Excellent1 242139
devtoolscode-reviewer4.25Good1 214110
devtoolsdebugger4.25Good1 369122
devtoolslegacy-modernizer4.25Good2 661220
devtoolsmicroservices-architect4.50Excellent1 230150
devtoolsperformance-engineer4.25Good1 226119
devtoolsqa-expert4.25Good1 267123
devtoolsrefactoring-specialist4.50Excellent1 753186
devtoolstest-automator4.50Excellent1 546161
docsapi-documenter4.62Excellent1 195118
docsdiagram-architect4.62Excellent1 173111
docsdocumentation-engineer4.38Good1 050105
docstechnical-writer4.25Good1 097120
languagescpp-pro4.62Excellent1 197141
languagescsharp-developer4.62Excellent1 162133
languagesgolang-pro4.88Excellent1 101129
languagesjava-architect4.88Excellent1 383138
languageskotlin-specialist4.88Excellent1 191121
languagesphp-pro4.88Excellent1 193138
languagespython-pro4.88Excellent1 139139
languagesrails-expert4.88Excellent1 232139
languagesrust-pro4.88Excellent1 211139
languagesswift-expert4.88Excellent1 201138
languagestypescript-pro4.88Excellent1 268132
mcpmcp-developer4.88Excellent1 384125
mcpmcp-security-auditor4.12Good1 28987
securitycompliance-auditor4.75Excellent1 805107
securitypenetration-tester4.62Excellent1 828137
securitysecurity-auditor4.25Good1 633104
securitysecurity-engineer4.25Good1 111109
securitysmart-contract-auditor4.75Excellent2 269126
webaccessibility4.50Excellent1 273107
webangular-architect4.25Good1 282125
webfullstack-developer4.62Excellent1 034103
webmobile-developer4.50Excellent1 223125
webnextjs-developer4.25Good1 201126
webreact-specialist4.88Excellent994104
webscreenshot-ui-analyzer4.25Good1 38099
webui-designer4.62Excellent1 131103
webvue-expert4.88Excellent1 094104

🎒 Packs

15 packs prédéfinis pour installer des groupes d'agents cohérents en une seule commande.

PackAgentsDescription
backendpostgres-pro, redis-specialist, database-architect, api-architect, python-pro, typescript-pro, debugger, test-automatorStack backend
frontendreact-specialist, nextjs-developer, typescript-pro, ui-designer, performance-engineer, test-automatorStack frontend
devopsdocker-specialist, kubernetes-specialist, terraform-specialist, aws-specialist, ci-cd-engineer, linux-admin, platform-engineer, incident-responderInfrastructure
fullstackfullstack-developer, typescript-pro, react-specialist, nextjs-developer, postgres-pro, api-architect, debugger, test-automator, code-reviewerFull stack
aiai-engineer, data-scientist, ml-engineer, llm-architect, prompt-engineer, search-specialistIA & ML
securitysecurity-auditor, penetration-tester, smart-contract-auditor, compliance-auditorSécurité
mcpmcp-developer, mcp-security-auditorMCP servers
qualitycode-reviewer, test-automator, debugger, performance-engineer, refactoring-specialist, legacy-modernizerQualité code
startupfullstack-developer, typescript-pro, nextjs-developer, postgres-pro, docker-specialist, product-manager, ui-designer, test-automatorKit startup
data-stackdata-engineer, data-analyst, data-scientist, database-architect, postgres-pro, sql-proStack données
ml-to-productiondata-scientist, ml-engineer, mlops-engineer, llm-architect, docker-specialist, kubernetes-specialistML en production
frontend-completereact-specialist, nextjs-developer, vue-expert, angular-architect, accessibility, ui-designerFrontend complet
ship-it-safelyci-cd-engineer, docker-specialist, kubernetes-specialist, sre-engineer, security-engineer, qa-expertDéploiement sûr
product-discoveryproduct-manager, ux-researcher, business-analyst, prd, ui-designerDécouverte produit
architecture-docsmicroservices-architect, api-architect, database-architect, diagram-architect, documentation-engineerArchitecture & docs

⚙️ CI / CD

Intégration continue (ci.yml)

Chaque push ou pull request sur main déclenche 4 jobs en parallèle :

JobDescription
testTests Python sur 3 versions (3.10, 3.12, 3.13)
test-cliTests Node.js sur 3 versions (20, 22, 23) — CLI, TUI, lock
lintSyntaxe Python/Node, shellcheck, validation du frontmatter YAML des agents, validation du manifest JSON
validate-agentsVérifie la cohérence du manifest avec les fichiers réels, détecte les champs dépréciés

Mises à jour des dépendances (dependabot.yml)

Dependabot surveille les SHA des GitHub Actions utilisées dans les workflows et ouvre automatiquement une PR chaque semaine si une mise à jour est disponible. Toutes les actions sont pinnées par SHA pour des raisons de sécurité.


🔄 Synchronisation des agents

Les agents proviennent de plusieurs sources : la majorité est issue de aitmpl.com (claude-code-templates), certains sont des créations originales du projet (aws-specialist, ci-cd-engineer, docker-specialist, linux-admin, redis-specialist, mcp-security-auditor, prd, screenshot-ui-analyzer), et le catalogue awesome-claude-code-subagents a servi de référence pour identifier les agents manquants. Tous les agents sont curés manuellement et passent par un processus de réécriture experte avant intégration — la synchronisation automatique hebdomadaire a été désactivée pour garantir un haut niveau de qualité.

Pourquoi pas de sync automatique ?

Les agents upstream (~133 disponibles) suivent un format générique (listes de compétences, métriques fictives). Les agents du projet suivent un format expert à 4 sections (identité, décisions, exemples, quality gate). La différence de qualité (3-4/10 vs 8-9/10) rend l'import automatique contre-productif.

Ajouter un nouvel agent

  1. Découverte — lister les agents upstream disponibles via le script local :
    python3 scripts/sync-agents.py --list --tier=extended
  2. Évaluation — vérifier que l'agent apporte une compétence non couverte par les 69 agents existants
  3. Dry-run upstream — lancer le workflow en mode discovery pour récupérer le frontmatter et les permissions sans modifier le repo :
    gh workflow run "Sync Agents" -f tier=core -f dry_run=true
  4. Réécriture — réécrire le body avec le template du projet (Identité → Decisions → Examples → Quality Gate)

Scripts disponibles

Ces scripts sont destinés à un usage manuel uniquement — il n'y a pas de synchronisation automatique.

ScriptDescription
scripts/sync-agents.pyTélécharge et convertit les agents depuis le dépôt upstream
scripts/update-manifest.pyFusionne le manifest de sync dans le manifest principal
scripts/sync_common.pyUtilitaires HTTP partagés, cache ETag, validation de frontmatter
scripts/generate_readme_scores.pyRégénère les tableaux de scores qualité dans les deux README. Mode --check pour la CI.

🚀 Releases & Changelog

Le changelog est généré automatiquement à partir de l'historique Git via git-cliff, orienté utilisateur avec des catégories claires.

Fonctionnement

  1. Tag push — pousser un tag v* (ex: git tag v8.0.0 && git push --tags)
  2. CI obligatoire — le workflow de release attend que lint, tests et validate-agents passent (ci.yml via workflow_call) avant de continuer
  3. Génération du changelog — git-cliff analyse les commits depuis le dernier tag et génère un changelog structuré
  4. GitHub Release — une release est créée automatiquement avec le changelog comme corps

Catégories du changelog

Préfixe commitCatégorie changelog
feat✨ Nouveautés
fix🐛 Corrections
perf⚡ Performance
docs📝 Documentation
refactor♻️ Refactoring
chore, ci, build, style, test🔧 Maintenance

Les commits avec BREAKING CHANGE sont préfixés BREAKING: dans leur catégorie respective.

Créer une release

# Bumper la version dans package.json, tagger et pousser
npm version major # ou minor, patch
git push --follow-tags
# Ou manuellement
git tag v8.0.0
git push --tags

🧪 Tests

814 tests (504 JS + 310 Python).

# Tous les tests JS (CLI + TUI)
node --test tests/cli.test.mjs tests/tui.test.mjs tests/lock.test.mjs
# Tous les tests Python
python3 tests/run_tests.py
# Tests spécifiques
python3 -m pytest tests/test_agents.py -v
python3 -m pytest tests/test_sync_script.py -v
python3 -m pytest tests/test_update_manifest.py -v

🤝 Contribuer

Les contributions sont les bienvenues ! Voir les issues ouvertes.

Modifier ou ajouter un agent

  1. Créer ou modifier le fichier dans agents/<catégorie>/<nom>.md
  2. Respecter le template 4 sections : Identity, Decisions, Examples, Quality Gate
  3. Régénérer les scores README :
    python3 scripts/generate_readme_scores.py
  4. Commiter les fichiers agent et les README mis à jour ensemble
  5. La CI vérifiera automatiquement que les scores sont à jour

Astuce : lancez python3 scripts/quality_scorer.py agents/<catégorie>/<nom>.md pour voir le score détaillé avant de mettre à jour les README.

Qualité minimale

Chaque agent doit atteindre le seuil de qualité : score moyen ≥ 3.5 et aucune dimension < 2. Consultez la section Qualité des agents pour le détail des dimensions.

Agents majoritairement sourcés depuis aitmpl.com (claude-code-templates), avec des créations originales et awesome-claude-code-subagents comme référence. Tous réécrits et curés manuellement.


📄 Licence

MIT

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Stars

7 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

opencode-agents

🇬🇧 English version

CIAgentsTestsLicenseNodenpmAsk DeepWiki

Demo

Registre curé de 69 agents IA pour OpenCode, distribué via un CLI zero-dependency et un TUI interactif. Les agents sont des fichiers .md contenant des system prompts pour configurer des assistants IA spécialisés.

Chaque agent suit un format expert à 4 sections : identité, décisions, exemples, quality gate.


🚀 Quickstart

# TUI interactif avec suggestions intelligentes (auto-détecte TTY)
npx github:dmicheneau/opencode-template-agent
# Détecte la stack et suggère les agents adaptés
npx github:dmicheneau/opencode-template-agent install
# CLI rapide — installer un pack en une commande
npx github:dmicheneau/opencode-template-agent install --pack backend

📦 Installation

Mode 1 — TUI interactif (recommandé)

Le TUI est le moyen le plus simple de découvrir et installer des agents. Il se lance automatiquement lorsque le terminal supporte un TTY.

npx github:dmicheneau/opencode-template-agent
# ou explicitement :
npx github:dmicheneau/opencode-template-agent tui

Ce que ça fait :

  • Auto-détecte le TTY et lance l'interface interactive
  • Écran de suggestions au démarrage : si une stack est détectée dans le projet courant, les agents les plus pertinents apparaissent pré-sélectionnés — appuyez sur Space pour désélectionner, Enter pour installer, B pour parcourir tout le catalogue
  • Parcourir les catégories par onglets ( / Tab)
  • Naviguer dans les listes avec
  • Sélectionner des agents avec Space, installer avec Enter
  • Recherche intégrée (/), exploration par packs et catégories

Mode 2 — CLI non-interactif

Pour l'automatisation ou une installation rapide sans interface graphique.

Commandes :

# Détecter la stack et suggérer les agents adaptés
npx github:dmicheneau/opencode-template-agent install
# Installer un agent spécifique
npx github:dmicheneau/opencode-template-agent install typescript-pro
# Installer un ou plusieurs packs (virgule ou espace)
npx github:dmicheneau/opencode-template-agent install --pack backend
npx github:dmicheneau/opencode-template-agent install --pack backend,devops
# Installer une ou plusieurs catégories
npx github:dmicheneau/opencode-template-agent install --category languages
npx github:dmicheneau/opencode-template-agent install --category languages,data-api
# Installer tous les agents
npx github:dmicheneau/opencode-template-agent install --all
# Lister tous les agents par catégorie
npx github:dmicheneau/opencode-template-agent list
# Lister les packs disponibles
npx github:dmicheneau/opencode-template-agent list --packs
# Rechercher des agents
npx github:dmicheneau/opencode-template-agent search docker
npx github:dmicheneau/opencode-template-agent search "machine learning"

Options :

OptionDescription
--forceÉcraser les fichiers existants ; avec install sans argument, re-propose les agents déjà installés
--dry-runAperçu sans écriture sur le disque (fonctionne aussi avec la suggestion automatique)

Note :--pack et --category sont mutuellement exclusifs.

Mode 3 — Script bash / Clone local

Via script bash :

curl -fsSL https://raw.githubusercontent.com/dmicheneau/opencode-template-agent/main/install.sh | bash

Options : --copy, --global, --dir PATH, --force, --dry-run, --uninstall.

Via clone local :

git clone https://github.com/dmicheneau/opencode-template-agent.git ~/.opencode-agents
echo'export OPENCODE_CONFIG_DIR=~/.opencode-agents'>>~/.zshrc
source~/.zshrc

Les agents sont installés dans .opencode/agents/. Node.js 20+ requis pour les modes 1 et 2.


🔌 Plugin OpenCode

Le plugin expose le registre des 69 agents comme outils LLM directement dans les sessions OpenCode. Version actuelle : discovery-only (v1) — 4 tools en lecture seule, aucune modification du système de fichiers.

Installation

Globale (recommandé — disponible dans toutes les sessions OpenCode) :

Ajouter dans ~/.config/opencode/opencode.json :

{
"plugin": ["github:dmicheneau/opencode-template-agent"]
}

Par projet (disponible uniquement dans le projet concerné) :

Ajouter dans .opencode/opencode.json à la racine du projet :

{
"plugin": ["github:dmicheneau/opencode-template-agent"]
}

Tools disponibles

ToolDescription
search_agentsRecherche par nom, description, catégorie ou tags
list_agentsListe tous les agents groupés par catégorie, avec filtres optionnels par catégorie ou pack
get_agentDétails complets d'un agent (description, mode d'installation, état d'installation, suggestions de correction si typo)
check_healthRapport de santé du registre (agents installés, obsolètes, manquants, intégrité)

v1.1 — Types préfixés Oc* pour éviter les collisions de namespace, mode readonly pour les opérations lock, et sanitization des chemins absolus dans les messages d'erreur.

Exemples d'utilisation

> Cherche un agent pour TypeScript
> Liste les agents de la catégorie security
> Vérifie la santé du registre

Structure des fichiers

plugin/
index.ts # point d'entrée (exporté comme Plugin OpenCode)
tools.ts # définitions des 4 tools
types.d.ts # déclarations de types

Prérequis : OpenCode + Bun (le TypeScript est transpilé nativement, pas d'étape de build).


🏗️ Architecture

Documentation détaillée : docs/architecture.md

Le diagramme ci-dessous présente l'architecture globale du système : le point d'entrée CLI, les modules TUI, le registre d'agents et les scripts de veille upstream.

flowchart TB
User["Utilisateur"]
subgraph CLI["bin/cli.mjs — Point d'entree CLI"]
Parse["Analyse des arguments<br/>(install, list, search, tui)"]
end
subgraph TUI["Interface TUI interactive"]
Index["index.mjs<br/>Orchestrateur<br/>(lifecycle, boucle principale,<br/>signaux)"]
Screen["screen.mjs<br/>E/S Terminal<br/>(raw mode, flush,<br/>resize, onInput)"]
Input["input.mjs<br/>Parseur de touches<br/>(raw bytes → ~20 Actions)"]
State["state.mjs<br/>Machine a etats<br/>(browse, search, confirm,<br/>installing, pack_detail,<br/>done, quit)"]
Renderer["renderer.mjs<br/>Constructeur de frames<br/>(state → chaine ANSI)"]
Ansi["ansi.mjs<br/>Codes ANSI, couleurs,<br/>box drawing, palettes<br/>(catColor, tabColor)"]
end
subgraph Data["Couche de donnees"]
Registry["registry.mjs<br/>Chargeur de manifest<br/>(validation, getAgent,<br/>getCategory, searchAgents,<br/>resolvePackAgents)"]
Manifest["manifest.json<br/>69 agents | 10 categories<br/>15 packs"]
Installer["installer.mjs<br/>Telechargement GitHub raw<br/>→ .opencode/agents/"]
end
subgraph Sync["Veille upstream (manual dispatch)"]
Upstream["davila7/claude-code-templates<br/>(depot upstream)"]
SyncScript["sync-agents.py<br/>(1200 lignes, fetch,<br/>conversion tools→permission,<br/>CURATED + EXTENDED agents)"]
SyncCommon["sync_common.py<br/>(HTTP, cache ETag,<br/>frontmatter, validation)"]
UpdateManifest["update-manifest.py<br/>(fusion manifest,<br/>prefix NEEDS_REVIEW)"]
GHA["GitHub Actions<br/>(workflow_dispatch uniquement,<br/>CI: test + lint + validate)"]
end
LocalDir[".opencode/agents/<br/>Agents installes"]
User --> CLI
Parse -->|"tui"| Index
Parse -->|"install"| Installer
Parse -->|"list / search"| Registry
Index --> Screen
Screen --> Input
Input --> State
State --> Renderer
Renderer --> Ansi
Ansi -->|"frames ANSI"| Screen
Index --> Registry
Index --> Installer
Registry --> Manifest
Installer -->|"telecharge"| LocalDir
Upstream --> SyncScript
SyncScript --> SyncCommon
SyncScript --> UpdateManifest
UpdateManifest --> Manifest
GHA -->|"orchestre"| SyncScript
GHA -->|"orchestre"| UpdateManifest
classDef entrypoint fill:#4a90d9,stroke:#2c5f8a,color:#fff
classDef tui fill:#6ab04c,stroke:#3d7a28,color:#fff
classDef data fill:#f0932b,stroke:#c0741e,color:#fff
classDef sync fill:#9b59b6,stroke:#6c3483,color:#fff
classDef storage fill:#e74c3c,stroke:#a93226,color:#fff
classDef user fill:#34495e,stroke:#1c2833,color:#fff
class User user
class Parse entrypoint
class Index,Screen,Input,State,Renderer,Ansi tui
class Registry,Manifest,Installer data
class Upstream,SyncScript,SyncCommon,UpdateManifest,GHA sync
class LocalDir storage
Loading

Deux diagrammes supplémentaires sont disponibles dans docs/architecture.md :

  • Flux utilisateur TUI — machine à états complète (suggest, browse, search, confirm, installing, done)
  • Pipeline de mise à jour des agents — scripts de veille upstream et workflow de découverte/évaluation (manual dispatch uniquement)

📋 Agents disponibles

69 agents répartis en 10 catégories, invocables via @catégorie/nom.

CatégorieAgentsDescription
💻 Languages11TypeScript, Python, Go, Rust, Java, C#, PHP, Kotlin, C++, Rails, Swift
🤖 AI9AI engineering, data science, ML, MLOps, LLM, prompts, recherche, data engineering, data analysis
🌐 Web9React, Next.js, Vue, Angular, mobile, UI design, analyse UI, accessibilité, fullstack
🗄️ Data & API6Architecture API, GraphQL, bases de données, PostgreSQL, Redis, SQL
⚙️ DevOps9Docker, Kubernetes, Terraform, AWS, CI/CD, Linux, plateforme, SRE, incident response
🛠️ DevTools8Code review, debugging, performance, refactoring, tests, orchestration, microservices, QA, legacy modernization
🔒 Security5Audit sécurité, tests de pénétration, smart contracts, security engineering, conformité
🔌 MCP2Développement MCP, audit sécurité MCP
📊 Business6Product management, project management, PRD, Scrum, UX research, business analysis
📝 Docs4Documentation technique, API, rédaction, diagrammes

📊 Qualité des agents

Chaque agent est évalué automatiquement par scripts/quality_scorer.py sur 8 dimensions (score 1-5 chacune) :

DimensionCe qui est mesuré5/5
frontmatterPrésence de description, mode, permission3 champs présents
identityParagraphe d'identité entre le frontmatter et le premier ##50-300 mots
decisionsSection ## Decisions avec arbres IF/THEN≥ 5 règles
examplesSection ## Examples avec blocs de code≥ 3 exemples
quality_gateSection ## Quality Gate avec critères de validation≥ 5 critères
concisenessNombre de lignes (70-120 idéal) et ratio de filler phrases70-120 lignes, ≤ 3% filler
no_banned_sectionsAbsence des anciennes sections (Workflow, Tools, Anti-patterns, Collaboration)0 section interdite
version_pinningRéférences à des versions et années dans l'identitéVersion + année présents

Seuil de passage : moyenne ≥ 3.5 ET aucune dimension < 2

Labels : Excellent (≥ 4.5) · Good (≥ 3.5) · Needs improvement (≥ 2.5) · Poor (< 2.5)

Catalogue des agents

69 agents · Score moyen : 4.59/5 · 100% pass rate · 49 Excellent, 20 Good

Coût token estimé : taille en bytes / 4 (approximation pour contenu anglais + code).

CatégorieAgentScoreLabel~TokensLignes
aiai-engineer4.75Excellent1 164113
aidata-analyst4.75Excellent1 088102
aidata-engineer4.75Excellent1 180106
aidata-scientist4.75Excellent1 218108
aillm-architect4.88Excellent1 353125
aiml-engineer4.75Excellent1 170108
aimlops-engineer4.75Excellent1 205125
aiprompt-engineer4.75Excellent1 386121
aisearch-specialist4.62Excellent1 316114
businessbusiness-analyst4.62Excellent1 260104
businessprd4.25Good1 40774
businessproduct-manager4.25Good1 04385
businessproject-manager4.38Good1 17489
businessscrum-master4.25Good1 26598
businessux-researcher4.25Good1 446116
data-apiapi-architect4.75Excellent1 351128
data-apidatabase-architect4.50Excellent1 265113
data-apigraphql-architect4.88Excellent1 249128
data-apipostgres-pro4.50Excellent1 208119
data-apiredis-specialist4.88Excellent1 243122
data-apisql-pro4.50Excellent2 136165
devopsaws-specialist4.88Excellent1 087123
devopsci-cd-engineer4.62Excellent1 103118
devopsdocker-specialist4.62Excellent1 089130
devopsincident-responder4.25Good2 112182
devopskubernetes-specialist4.88Excellent1 111136
devopslinux-admin4.62Excellent1 044127
devopsplatform-engineer4.88Excellent1 019118
devopssre-engineer4.38Good1 157122
devopsterraform-specialist4.88Excellent1 242139
devtoolscode-reviewer4.25Good1 214110
devtoolsdebugger4.25Good1 369122
devtoolslegacy-modernizer4.25Good2 661220
devtoolsmicroservices-architect4.50Excellent1 230150
devtoolsperformance-engineer4.25Good1 226119
devtoolsqa-expert4.25Good1 267123
devtoolsrefactoring-specialist4.50Excellent1 753186
devtoolstest-automator4.50Excellent1 546161
docsapi-documenter4.62Excellent1 195118
docsdiagram-architect4.62Excellent1 173111
docsdocumentation-engineer4.38Good1 050105
docstechnical-writer4.25Good1 097120
languagescpp-pro4.62Excellent1 197141
languagescsharp-developer4.62Excellent1 162133
languagesgolang-pro4.88Excellent1 101129
languagesjava-architect4.88Excellent1 383138
languageskotlin-specialist4.88Excellent1 191121
languagesphp-pro4.88Excellent1 193138
languagespython-pro4.88Excellent1 139139
languagesrails-expert4.88Excellent1 232139
languagesrust-pro4.88Excellent1 211139
languagesswift-expert4.88Excellent1 201138
languagestypescript-pro4.88Excellent1 268132
mcpmcp-developer4.88Excellent1 384125
mcpmcp-security-auditor4.12Good1 28987
securitycompliance-auditor4.75Excellent1 805107
securitypenetration-tester4.62Excellent1 828137
securitysecurity-auditor4.25Good1 633104
securitysecurity-engineer4.25Good1 111109
securitysmart-contract-auditor4.75Excellent2 269126
webaccessibility4.50Excellent1 273107
webangular-architect4.25Good1 282125
webfullstack-developer4.62Excellent1 034103
webmobile-developer4.50Excellent1 223125
webnextjs-developer4.25Good1 201126
webreact-specialist4.88Excellent994104
webscreenshot-ui-analyzer4.25Good1 38099
webui-designer4.62Excellent1 131103
webvue-expert4.88Excellent1 094104

🎒 Packs

15 packs prédéfinis pour installer des groupes d'agents cohérents en une seule commande.

PackAgentsDescription
backendpostgres-pro, redis-specialist, database-architect, api-architect, python-pro, typescript-pro, debugger, test-automatorStack backend
frontendreact-specialist, nextjs-developer, typescript-pro, ui-designer, performance-engineer, test-automatorStack frontend
devopsdocker-specialist, kubernetes-specialist, terraform-specialist, aws-specialist, ci-cd-engineer, linux-admin, platform-engineer, incident-responderInfrastructure
fullstackfullstack-developer, typescript-pro, react-specialist, nextjs-developer, postgres-pro, api-architect, debugger, test-automator, code-reviewerFull stack
aiai-engineer, data-scientist, ml-engineer, llm-architect, prompt-engineer, search-specialistIA & ML
securitysecurity-auditor, penetration-tester, smart-contract-auditor, compliance-auditorSécurité
mcpmcp-developer, mcp-security-auditorMCP servers
qualitycode-reviewer, test-automator, debugger, performance-engineer, refactoring-specialist, legacy-modernizerQualité code
startupfullstack-developer, typescript-pro, nextjs-developer, postgres-pro, docker-specialist, product-manager, ui-designer, test-automatorKit startup
data-stackdata-engineer, data-analyst, data-scientist, database-architect, postgres-pro, sql-proStack données
ml-to-productiondata-scientist, ml-engineer, mlops-engineer, llm-architect, docker-specialist, kubernetes-specialistML en production
frontend-completereact-specialist, nextjs-developer, vue-expert, angular-architect, accessibility, ui-designerFrontend complet
ship-it-safelyci-cd-engineer, docker-specialist, kubernetes-specialist, sre-engineer, security-engineer, qa-expertDéploiement sûr
product-discoveryproduct-manager, ux-researcher, business-analyst, prd, ui-designerDécouverte produit
architecture-docsmicroservices-architect, api-architect, database-architect, diagram-architect, documentation-engineerArchitecture & docs

⚙️ CI / CD

Intégration continue (ci.yml)

Chaque push ou pull request sur main déclenche 4 jobs en parallèle :

JobDescription
testTests Python sur 3 versions (3.10, 3.12, 3.13)
test-cliTests Node.js sur 3 versions (20, 22, 23) — CLI, TUI, lock
lintSyntaxe Python/Node, shellcheck, validation du frontmatter YAML des agents, validation du manifest JSON
validate-agentsVérifie la cohérence du manifest avec les fichiers réels, détecte les champs dépréciés

Mises à jour des dépendances (dependabot.yml)

Dependabot surveille les SHA des GitHub Actions utilisées dans les workflows et ouvre automatiquement une PR chaque semaine si une mise à jour est disponible. Toutes les actions sont pinnées par SHA pour des raisons de sécurité.


🔄 Synchronisation des agents

Les agents proviennent de plusieurs sources : la majorité est issue de aitmpl.com (claude-code-templates), certains sont des créations originales du projet (aws-specialist, ci-cd-engineer, docker-specialist, linux-admin, redis-specialist, mcp-security-auditor, prd, screenshot-ui-analyzer), et le catalogue awesome-claude-code-subagents a servi de référence pour identifier les agents manquants. Tous les agents sont curés manuellement et passent par un processus de réécriture experte avant intégration — la synchronisation automatique hebdomadaire a été désactivée pour garantir un haut niveau de qualité.

Pourquoi pas de sync automatique ?

Les agents upstream (~133 disponibles) suivent un format générique (listes de compétences, métriques fictives). Les agents du projet suivent un format expert à 4 sections (identité, décisions, exemples, quality gate). La différence de qualité (3-4/10 vs 8-9/10) rend l'import automatique contre-productif.

Ajouter un nouvel agent

  1. Découverte — lister les agents upstream disponibles via le script local :
    python3 scripts/sync-agents.py --list --tier=extended
  2. Évaluation — vérifier que l'agent apporte une compétence non couverte par les 69 agents existants
  3. Dry-run upstream — lancer le workflow en mode discovery pour récupérer le frontmatter et les permissions sans modifier le repo :
    gh workflow run "Sync Agents" -f tier=core -f dry_run=true
  4. Réécriture — réécrire le body avec le template du projet (Identité → Decisions → Examples → Quality Gate)

Scripts disponibles

Ces scripts sont destinés à un usage manuel uniquement — il n'y a pas de synchronisation automatique.

ScriptDescription
scripts/sync-agents.pyTélécharge et convertit les agents depuis le dépôt upstream
scripts/update-manifest.pyFusionne le manifest de sync dans le manifest principal
scripts/sync_common.pyUtilitaires HTTP partagés, cache ETag, validation de frontmatter
scripts/generate_readme_scores.pyRégénère les tableaux de scores qualité dans les deux README. Mode --check pour la CI.

🚀 Releases & Changelog

Le changelog est généré automatiquement à partir de l'historique Git via git-cliff, orienté utilisateur avec des catégories claires.

Fonctionnement

  1. Tag push — pousser un tag v* (ex: git tag v8.0.0 && git push --tags)
  2. CI obligatoire — le workflow de release attend que lint, tests et validate-agents passent (ci.yml via workflow_call) avant de continuer
  3. Génération du changelog — git-cliff analyse les commits depuis le dernier tag et génère un changelog structuré
  4. GitHub Release — une release est créée automatiquement avec le changelog comme corps

Catégories du changelog

Préfixe commitCatégorie changelog
feat✨ Nouveautés
fix🐛 Corrections
perf⚡ Performance
docs📝 Documentation
refactor♻️ Refactoring
chore, ci, build, style, test🔧 Maintenance

Les commits avec BREAKING CHANGE sont préfixés BREAKING: dans leur catégorie respective.

Créer une release

# Bumper la version dans package.json, tagger et pousser
npm version major # ou minor, patch
git push --follow-tags
# Ou manuellement
git tag v8.0.0
git push --tags

🧪 Tests

814 tests (504 JS + 310 Python).

# Tous les tests JS (CLI + TUI)
node --test tests/cli.test.mjs tests/tui.test.mjs tests/lock.test.mjs
# Tous les tests Python
python3 tests/run_tests.py
# Tests spécifiques
python3 -m pytest tests/test_agents.py -v
python3 -m pytest tests/test_sync_script.py -v
python3 -m pytest tests/test_update_manifest.py -v

🤝 Contribuer

Les contributions sont les bienvenues ! Voir les issues ouvertes.

Modifier ou ajouter un agent

  1. Créer ou modifier le fichier dans agents/<catégorie>/<nom>.md
  2. Respecter le template 4 sections : Identity, Decisions, Examples, Quality Gate
  3. Régénérer les scores README :
    python3 scripts/generate_readme_scores.py
  4. Commiter les fichiers agent et les README mis à jour ensemble
  5. La CI vérifiera automatiquement que les scores sont à jour

Astuce : lancez python3 scripts/quality_scorer.py agents/<catégorie>/<nom>.md pour voir le score détaillé avant de mettre à jour les README.

Qualité minimale

Chaque agent doit atteindre le seuil de qualité : score moyen ≥ 3.5 et aucune dimension < 2. Consultez la section Qualité des agents pour le détail des dimensions.

Agents majoritairement sourcés depuis aitmpl.com (claude-code-templates), avec des créations originales et awesome-claude-code-subagents comme référence. Tous réécrits et curés manuellement.


📄 Licence

MIT

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Stars

7 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

opencode-agents

🇬🇧 English version

CIAgentsTestsLicenseNodenpmAsk DeepWiki

Demo

Registre curé de 69 agents IA pour OpenCode, distribué via un CLI zero-dependency et un TUI interactif. Les agents sont des fichiers .md contenant des system prompts pour configurer des assistants IA spécialisés.

Chaque agent suit un format expert à 4 sections : identité, décisions, exemples, quality gate.


🚀 Quickstart

# TUI interactif avec suggestions intelligentes (auto-détecte TTY)
npx github:dmicheneau/opencode-template-agent
# Détecte la stack et suggère les agents adaptés
npx github:dmicheneau/opencode-template-agent install
# CLI rapide — installer un pack en une commande
npx github:dmicheneau/opencode-template-agent install --pack backend

📦 Installation

Mode 1 — TUI interactif (recommandé)

Le TUI est le moyen le plus simple de découvrir et installer des agents. Il se lance automatiquement lorsque le terminal supporte un TTY.

npx github:dmicheneau/opencode-template-agent
# ou explicitement :
npx github:dmicheneau/opencode-template-agent tui

Ce que ça fait :

  • Auto-détecte le TTY et lance l'interface interactive
  • Écran de suggestions au démarrage : si une stack est détectée dans le projet courant, les agents les plus pertinents apparaissent pré-sélectionnés — appuyez sur Space pour désélectionner, Enter pour installer, B pour parcourir tout le catalogue
  • Parcourir les catégories par onglets ( / Tab)
  • Naviguer dans les listes avec
  • Sélectionner des agents avec Space, installer avec Enter
  • Recherche intégrée (/), exploration par packs et catégories

Mode 2 — CLI non-interactif

Pour l'automatisation ou une installation rapide sans interface graphique.

Commandes :

# Détecter la stack et suggérer les agents adaptés
npx github:dmicheneau/opencode-template-agent install
# Installer un agent spécifique
npx github:dmicheneau/opencode-template-agent install typescript-pro
# Installer un ou plusieurs packs (virgule ou espace)
npx github:dmicheneau/opencode-template-agent install --pack backend
npx github:dmicheneau/opencode-template-agent install --pack backend,devops
# Installer une ou plusieurs catégories
npx github:dmicheneau/opencode-template-agent install --category languages
npx github:dmicheneau/opencode-template-agent install --category languages,data-api
# Installer tous les agents
npx github:dmicheneau/opencode-template-agent install --all
# Lister tous les agents par catégorie
npx github:dmicheneau/opencode-template-agent list
# Lister les packs disponibles
npx github:dmicheneau/opencode-template-agent list --packs
# Rechercher des agents
npx github:dmicheneau/opencode-template-agent search docker
npx github:dmicheneau/opencode-template-agent search "machine learning"

Options :

OptionDescription
--forceÉcraser les fichiers existants ; avec install sans argument, re-propose les agents déjà installés
--dry-runAperçu sans écriture sur le disque (fonctionne aussi avec la suggestion automatique)

Note :--pack et --category sont mutuellement exclusifs.

Mode 3 — Script bash / Clone local

Via script bash :

curl -fsSL https://raw.githubusercontent.com/dmicheneau/opencode-template-agent/main/install.sh | bash

Options : --copy, --global, --dir PATH, --force, --dry-run, --uninstall.

Via clone local :

git clone https://github.com/dmicheneau/opencode-template-agent.git ~/.opencode-agents
echo'export OPENCODE_CONFIG_DIR=~/.opencode-agents'>>~/.zshrc
source~/.zshrc

Les agents sont installés dans .opencode/agents/. Node.js 20+ requis pour les modes 1 et 2.


🔌 Plugin OpenCode

Le plugin expose le registre des 69 agents comme outils LLM directement dans les sessions OpenCode. Version actuelle : discovery-only (v1) — 4 tools en lecture seule, aucune modification du système de fichiers.

Installation

Globale (recommandé — disponible dans toutes les sessions OpenCode) :

Ajouter dans ~/.config/opencode/opencode.json :

{
"plugin": ["github:dmicheneau/opencode-template-agent"]
}

Par projet (disponible uniquement dans le projet concerné) :

Ajouter dans .opencode/opencode.json à la racine du projet :

{
"plugin": ["github:dmicheneau/opencode-template-agent"]
}

Tools disponibles

ToolDescription
search_agentsRecherche par nom, description, catégorie ou tags
list_agentsListe tous les agents groupés par catégorie, avec filtres optionnels par catégorie ou pack
get_agentDétails complets d'un agent (description, mode d'installation, état d'installation, suggestions de correction si typo)
check_healthRapport de santé du registre (agents installés, obsolètes, manquants, intégrité)

v1.1 — Types préfixés Oc* pour éviter les collisions de namespace, mode readonly pour les opérations lock, et sanitization des chemins absolus dans les messages d'erreur.

Exemples d'utilisation

> Cherche un agent pour TypeScript
> Liste les agents de la catégorie security
> Vérifie la santé du registre

Structure des fichiers

plugin/
index.ts # point d'entrée (exporté comme Plugin OpenCode)
tools.ts # définitions des 4 tools
types.d.ts # déclarations de types

Prérequis : OpenCode + Bun (le TypeScript est transpilé nativement, pas d'étape de build).


🏗️ Architecture

Documentation détaillée : docs/architecture.md

Le diagramme ci-dessous présente l'architecture globale du système : le point d'entrée CLI, les modules TUI, le registre d'agents et les scripts de veille upstream.

flowchart TB
User["Utilisateur"]
subgraph CLI["bin/cli.mjs — Point d'entree CLI"]
Parse["Analyse des arguments<br/>(install, list, search, tui)"]
end
subgraph TUI["Interface TUI interactive"]
Index["index.mjs<br/>Orchestrateur<br/>(lifecycle, boucle principale,<br/>signaux)"]
Screen["screen.mjs<br/>E/S Terminal<br/>(raw mode, flush,<br/>resize, onInput)"]
Input["input.mjs<br/>Parseur de touches<br/>(raw bytes → ~20 Actions)"]
State["state.mjs<br/>Machine a etats<br/>(browse, search, confirm,<br/>installing, pack_detail,<br/>done, quit)"]
Renderer["renderer.mjs<br/>Constructeur de frames<br/>(state → chaine ANSI)"]
Ansi["ansi.mjs<br/>Codes ANSI, couleurs,<br/>box drawing, palettes<br/>(catColor, tabColor)"]
end
subgraph Data["Couche de donnees"]
Registry["registry.mjs<br/>Chargeur de manifest<br/>(validation, getAgent,<br/>getCategory, searchAgents,<br/>resolvePackAgents)"]
Manifest["manifest.json<br/>69 agents | 10 categories<br/>15 packs"]
Installer["installer.mjs<br/>Telechargement GitHub raw<br/>→ .opencode/agents/"]
end
subgraph Sync["Veille upstream (manual dispatch)"]
Upstream["davila7/claude-code-templates<br/>(depot upstream)"]
SyncScript["sync-agents.py<br/>(1200 lignes, fetch,<br/>conversion tools→permission,<br/>CURATED + EXTENDED agents)"]
SyncCommon["sync_common.py<br/>(HTTP, cache ETag,<br/>frontmatter, validation)"]
UpdateManifest["update-manifest.py<br/>(fusion manifest,<br/>prefix NEEDS_REVIEW)"]
GHA["GitHub Actions<br/>(workflow_dispatch uniquement,<br/>CI: test + lint + validate)"]
end
LocalDir[".opencode/agents/<br/>Agents installes"]
User --> CLI
Parse -->|"tui"| Index
Parse -->|"install"| Installer
Parse -->|"list / search"| Registry
Index --> Screen
Screen --> Input
Input --> State
State --> Renderer
Renderer --> Ansi
Ansi -->|"frames ANSI"| Screen
Index --> Registry
Index --> Installer
Registry --> Manifest
Installer -->|"telecharge"| LocalDir
Upstream --> SyncScript
SyncScript --> SyncCommon
SyncScript --> UpdateManifest
UpdateManifest --> Manifest
GHA -->|"orchestre"| SyncScript
GHA -->|"orchestre"| UpdateManifest
classDef entrypoint fill:#4a90d9,stroke:#2c5f8a,color:#fff
classDef tui fill:#6ab04c,stroke:#3d7a28,color:#fff
classDef data fill:#f0932b,stroke:#c0741e,color:#fff
classDef sync fill:#9b59b6,stroke:#6c3483,color:#fff
classDef storage fill:#e74c3c,stroke:#a93226,color:#fff
classDef user fill:#34495e,stroke:#1c2833,color:#fff
class User user
class Parse entrypoint
class Index,Screen,Input,State,Renderer,Ansi tui
class Registry,Manifest,Installer data
class Upstream,SyncScript,SyncCommon,UpdateManifest,GHA sync
class LocalDir storage
Loading

Deux diagrammes supplémentaires sont disponibles dans docs/architecture.md :

  • Flux utilisateur TUI — machine à états complète (suggest, browse, search, confirm, installing, done)
  • Pipeline de mise à jour des agents — scripts de veille upstream et workflow de découverte/évaluation (manual dispatch uniquement)

📋 Agents disponibles

69 agents répartis en 10 catégories, invocables via @catégorie/nom.

CatégorieAgentsDescription
💻 Languages11TypeScript, Python, Go, Rust, Java, C#, PHP, Kotlin, C++, Rails, Swift
🤖 AI9AI engineering, data science, ML, MLOps, LLM, prompts, recherche, data engineering, data analysis
🌐 Web9React, Next.js, Vue, Angular, mobile, UI design, analyse UI, accessibilité, fullstack
🗄️ Data & API6Architecture API, GraphQL, bases de données, PostgreSQL, Redis, SQL
⚙️ DevOps9Docker, Kubernetes, Terraform, AWS, CI/CD, Linux, plateforme, SRE, incident response
🛠️ DevTools8Code review, debugging, performance, refactoring, tests, orchestration, microservices, QA, legacy modernization
🔒 Security5Audit sécurité, tests de pénétration, smart contracts, security engineering, conformité
🔌 MCP2Développement MCP, audit sécurité MCP
📊 Business6Product management, project management, PRD, Scrum, UX research, business analysis
📝 Docs4Documentation technique, API, rédaction, diagrammes

📊 Qualité des agents

Chaque agent est évalué automatiquement par scripts/quality_scorer.py sur 8 dimensions (score 1-5 chacune) :

DimensionCe qui est mesuré5/5
frontmatterPrésence de description, mode, permission3 champs présents
identityParagraphe d'identité entre le frontmatter et le premier ##50-300 mots
decisionsSection ## Decisions avec arbres IF/THEN≥ 5 règles
examplesSection ## Examples avec blocs de code≥ 3 exemples
quality_gateSection ## Quality Gate avec critères de validation≥ 5 critères
concisenessNombre de lignes (70-120 idéal) et ratio de filler phrases70-120 lignes, ≤ 3% filler
no_banned_sectionsAbsence des anciennes sections (Workflow, Tools, Anti-patterns, Collaboration)0 section interdite
version_pinningRéférences à des versions et années dans l'identitéVersion + année présents

Seuil de passage : moyenne ≥ 3.5 ET aucune dimension < 2

Labels : Excellent (≥ 4.5) · Good (≥ 3.5) · Needs improvement (≥ 2.5) · Poor (< 2.5)

Catalogue des agents

69 agents · Score moyen : 4.59/5 · 100% pass rate · 49 Excellent, 20 Good

Coût token estimé : taille en bytes / 4 (approximation pour contenu anglais + code).

CatégorieAgentScoreLabel~TokensLignes
aiai-engineer4.75Excellent1 164113
aidata-analyst4.75Excellent1 088102
aidata-engineer4.75Excellent1 180106
aidata-scientist4.75Excellent1 218108
aillm-architect4.88Excellent1 353125
aiml-engineer4.75Excellent1 170108
aimlops-engineer4.75Excellent1 205125
aiprompt-engineer4.75Excellent1 386121
aisearch-specialist4.62Excellent1 316114
businessbusiness-analyst4.62Excellent1 260104
businessprd4.25Good1 40774
businessproduct-manager4.25Good1 04385
businessproject-manager4.38Good1 17489
businessscrum-master4.25Good1 26598
businessux-researcher4.25Good1 446116
data-apiapi-architect4.75Excellent1 351128
data-apidatabase-architect4.50Excellent1 265113
data-apigraphql-architect4.88Excellent1 249128
data-apipostgres-pro4.50Excellent1 208119
data-apiredis-specialist4.88Excellent1 243122
data-apisql-pro4.50Excellent2 136165
devopsaws-specialist4.88Excellent1 087123
devopsci-cd-engineer4.62Excellent1 103118
devopsdocker-specialist4.62Excellent1 089130
devopsincident-responder4.25Good2 112182
devopskubernetes-specialist4.88Excellent1 111136
devopslinux-admin4.62Excellent1 044127
devopsplatform-engineer4.88Excellent1 019118
devopssre-engineer4.38Good1 157122
devopsterraform-specialist4.88Excellent1 242139
devtoolscode-reviewer4.25Good1 214110
devtoolsdebugger4.25Good1 369122
devtoolslegacy-modernizer4.25Good2 661220
devtoolsmicroservices-architect4.50Excellent1 230150
devtoolsperformance-engineer4.25Good1 226119
devtoolsqa-expert4.25Good1 267123
devtoolsrefactoring-specialist4.50Excellent1 753186
devtoolstest-automator4.50Excellent1 546161
docsapi-documenter4.62Excellent1 195118
docsdiagram-architect4.62Excellent1 173111
docsdocumentation-engineer4.38Good1 050105
docstechnical-writer4.25Good1 097120
languagescpp-pro4.62Excellent1 197141
languagescsharp-developer4.62Excellent1 162133
languagesgolang-pro4.88Excellent1 101129
languagesjava-architect4.88Excellent1 383138
languageskotlin-specialist4.88Excellent1 191121
languagesphp-pro4.88Excellent1 193138
languagespython-pro4.88Excellent1 139139
languagesrails-expert4.88Excellent1 232139
languagesrust-pro4.88Excellent1 211139
languagesswift-expert4.88Excellent1 201138
languagestypescript-pro4.88Excellent1 268132
mcpmcp-developer4.88Excellent1 384125
mcpmcp-security-auditor4.12Good1 28987
securitycompliance-auditor4.75Excellent1 805107
securitypenetration-tester4.62Excellent1 828137
securitysecurity-auditor4.25Good1 633104
securitysecurity-engineer4.25Good1 111109
securitysmart-contract-auditor4.75Excellent2 269126
webaccessibility4.50Excellent1 273107
webangular-architect4.25Good1 282125
webfullstack-developer4.62Excellent1 034103
webmobile-developer4.50Excellent1 223125
webnextjs-developer4.25Good1 201126
webreact-specialist4.88Excellent994104
webscreenshot-ui-analyzer4.25Good1 38099
webui-designer4.62Excellent1 131103
webvue-expert4.88Excellent1 094104

🎒 Packs

15 packs prédéfinis pour installer des groupes d'agents cohérents en une seule commande.

PackAgentsDescription
backendpostgres-pro, redis-specialist, database-architect, api-architect, python-pro, typescript-pro, debugger, test-automatorStack backend
frontendreact-specialist, nextjs-developer, typescript-pro, ui-designer, performance-engineer, test-automatorStack frontend
devopsdocker-specialist, kubernetes-specialist, terraform-specialist, aws-specialist, ci-cd-engineer, linux-admin, platform-engineer, incident-responderInfrastructure
fullstackfullstack-developer, typescript-pro, react-specialist, nextjs-developer, postgres-pro, api-architect, debugger, test-automator, code-reviewerFull stack
aiai-engineer, data-scientist, ml-engineer, llm-architect, prompt-engineer, search-specialistIA & ML
securitysecurity-auditor, penetration-tester, smart-contract-auditor, compliance-auditorSécurité
mcpmcp-developer, mcp-security-auditorMCP servers
qualitycode-reviewer, test-automator, debugger, performance-engineer, refactoring-specialist, legacy-modernizerQualité code
startupfullstack-developer, typescript-pro, nextjs-developer, postgres-pro, docker-specialist, product-manager, ui-designer, test-automatorKit startup
data-stackdata-engineer, data-analyst, data-scientist, database-architect, postgres-pro, sql-proStack données
ml-to-productiondata-scientist, ml-engineer, mlops-engineer, llm-architect, docker-specialist, kubernetes-specialistML en production
frontend-completereact-specialist, nextjs-developer, vue-expert, angular-architect, accessibility, ui-designerFrontend complet
ship-it-safelyci-cd-engineer, docker-specialist, kubernetes-specialist, sre-engineer, security-engineer, qa-expertDéploiement sûr
product-discoveryproduct-manager, ux-researcher, business-analyst, prd, ui-designerDécouverte produit
architecture-docsmicroservices-architect, api-architect, database-architect, diagram-architect, documentation-engineerArchitecture & docs

⚙️ CI / CD

Intégration continue (ci.yml)

Chaque push ou pull request sur main déclenche 4 jobs en parallèle :

JobDescription
testTests Python sur 3 versions (3.10, 3.12, 3.13)
test-cliTests Node.js sur 3 versions (20, 22, 23) — CLI, TUI, lock
lintSyntaxe Python/Node, shellcheck, validation du frontmatter YAML des agents, validation du manifest JSON
validate-agentsVérifie la cohérence du manifest avec les fichiers réels, détecte les champs dépréciés

Mises à jour des dépendances (dependabot.yml)

Dependabot surveille les SHA des GitHub Actions utilisées dans les workflows et ouvre automatiquement une PR chaque semaine si une mise à jour est disponible. Toutes les actions sont pinnées par SHA pour des raisons de sécurité.


🔄 Synchronisation des agents

Les agents proviennent de plusieurs sources : la majorité est issue de aitmpl.com (claude-code-templates), certains sont des créations originales du projet (aws-specialist, ci-cd-engineer, docker-specialist, linux-admin, redis-specialist, mcp-security-auditor, prd, screenshot-ui-analyzer), et le catalogue awesome-claude-code-subagents a servi de référence pour identifier les agents manquants. Tous les agents sont curés manuellement et passent par un processus de réécriture experte avant intégration — la synchronisation automatique hebdomadaire a été désactivée pour garantir un haut niveau de qualité.

Pourquoi pas de sync automatique ?

Les agents upstream (~133 disponibles) suivent un format générique (listes de compétences, métriques fictives). Les agents du projet suivent un format expert à 4 sections (identité, décisions, exemples, quality gate). La différence de qualité (3-4/10 vs 8-9/10) rend l'import automatique contre-productif.

Ajouter un nouvel agent

  1. Découverte — lister les agents upstream disponibles via le script local :
    python3 scripts/sync-agents.py --list --tier=extended
  2. Évaluation — vérifier que l'agent apporte une compétence non couverte par les 69 agents existants
  3. Dry-run upstream — lancer le workflow en mode discovery pour récupérer le frontmatter et les permissions sans modifier le repo :
    gh workflow run "Sync Agents" -f tier=core -f dry_run=true
  4. Réécriture — réécrire le body avec le template du projet (Identité → Decisions → Examples → Quality Gate)

Scripts disponibles

Ces scripts sont destinés à un usage manuel uniquement — il n'y a pas de synchronisation automatique.

ScriptDescription
scripts/sync-agents.pyTélécharge et convertit les agents depuis le dépôt upstream
scripts/update-manifest.pyFusionne le manifest de sync dans le manifest principal
scripts/sync_common.pyUtilitaires HTTP partagés, cache ETag, validation de frontmatter
scripts/generate_readme_scores.pyRégénère les tableaux de scores qualité dans les deux README. Mode --check pour la CI.

🚀 Releases & Changelog

Le changelog est généré automatiquement à partir de l'historique Git via git-cliff, orienté utilisateur avec des catégories claires.

Fonctionnement

  1. Tag push — pousser un tag v* (ex: git tag v8.0.0 && git push --tags)
  2. CI obligatoire — le workflow de release attend que lint, tests et validate-agents passent (ci.yml via workflow_call) avant de continuer
  3. Génération du changelog — git-cliff analyse les commits depuis le dernier tag et génère un changelog structuré
  4. GitHub Release — une release est créée automatiquement avec le changelog comme corps

Catégories du changelog

Préfixe commitCatégorie changelog
feat✨ Nouveautés
fix🐛 Corrections
perf⚡ Performance
docs📝 Documentation
refactor♻️ Refactoring
chore, ci, build, style, test🔧 Maintenance

Les commits avec BREAKING CHANGE sont préfixés BREAKING: dans leur catégorie respective.

Créer une release

# Bumper la version dans package.json, tagger et pousser
npm version major # ou minor, patch
git push --follow-tags
# Ou manuellement
git tag v8.0.0
git push --tags

🧪 Tests

814 tests (504 JS + 310 Python).

# Tous les tests JS (CLI + TUI)
node --test tests/cli.test.mjs tests/tui.test.mjs tests/lock.test.mjs
# Tous les tests Python
python3 tests/run_tests.py
# Tests spécifiques
python3 -m pytest tests/test_agents.py -v
python3 -m pytest tests/test_sync_script.py -v
python3 -m pytest tests/test_update_manifest.py -v

🤝 Contribuer

Les contributions sont les bienvenues ! Voir les issues ouvertes.

Modifier ou ajouter un agent

  1. Créer ou modifier le fichier dans agents/<catégorie>/<nom>.md
  2. Respecter le template 4 sections : Identity, Decisions, Examples, Quality Gate
  3. Régénérer les scores README :
    python3 scripts/generate_readme_scores.py
  4. Commiter les fichiers agent et les README mis à jour ensemble
  5. La CI vérifiera automatiquement que les scores sont à jour

Astuce : lancez python3 scripts/quality_scorer.py agents/<catégorie>/<nom>.md pour voir le score détaillé avant de mettre à jour les README.

Qualité minimale

Chaque agent doit atteindre le seuil de qualité : score moyen ≥ 3.5 et aucune dimension < 2. Consultez la section Qualité des agents pour le détail des dimensions.

Agents majoritairement sourcés depuis aitmpl.com (claude-code-templates), avec des créations originales et awesome-claude-code-subagents comme référence. Tous réécrits et curés manuellement.


📄 Licence

MIT

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Stars

7 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

opencode-agents

🇬🇧 English version

CIAgentsTestsLicenseNodenpmAsk DeepWiki

Demo

Registre curé de 69 agents IA pour OpenCode, distribué via un CLI zero-dependency et un TUI interactif. Les agents sont des fichiers .md contenant des system prompts pour configurer des assistants IA spécialisés.

Chaque agent suit un format expert à 4 sections : identité, décisions, exemples, quality gate.


🚀 Quickstart

# TUI interactif avec suggestions intelligentes (auto-détecte TTY)
npx github:dmicheneau/opencode-template-agent
# Détecte la stack et suggère les agents adaptés
npx github:dmicheneau/opencode-template-agent install
# CLI rapide — installer un pack en une commande
npx github:dmicheneau/opencode-template-agent install --pack backend

📦 Installation

Mode 1 — TUI interactif (recommandé)

Le TUI est le moyen le plus simple de découvrir et installer des agents. Il se lance automatiquement lorsque le terminal supporte un TTY.

npx github:dmicheneau/opencode-template-agent
# ou explicitement :
npx github:dmicheneau/opencode-template-agent tui

Ce que ça fait :

  • Auto-détecte le TTY et lance l'interface interactive
  • Écran de suggestions au démarrage : si une stack est détectée dans le projet courant, les agents les plus pertinents apparaissent pré-sélectionnés — appuyez sur Space pour désélectionner, Enter pour installer, B pour parcourir tout le catalogue
  • Parcourir les catégories par onglets ( / Tab)
  • Naviguer dans les listes avec
  • Sélectionner des agents avec Space, installer avec Enter
  • Recherche intégrée (/), exploration par packs et catégories

Mode 2 — CLI non-interactif

Pour l'automatisation ou une installation rapide sans interface graphique.

Commandes :

# Détecter la stack et suggérer les agents adaptés
npx github:dmicheneau/opencode-template-agent install
# Installer un agent spécifique
npx github:dmicheneau/opencode-template-agent install typescript-pro
# Installer un ou plusieurs packs (virgule ou espace)
npx github:dmicheneau/opencode-template-agent install --pack backend
npx github:dmicheneau/opencode-template-agent install --pack backend,devops
# Installer une ou plusieurs catégories
npx github:dmicheneau/opencode-template-agent install --category languages
npx github:dmicheneau/opencode-template-agent install --category languages,data-api
# Installer tous les agents
npx github:dmicheneau/opencode-template-agent install --all
# Lister tous les agents par catégorie
npx github:dmicheneau/opencode-template-agent list
# Lister les packs disponibles
npx github:dmicheneau/opencode-template-agent list --packs
# Rechercher des agents
npx github:dmicheneau/opencode-template-agent search docker
npx github:dmicheneau/opencode-template-agent search "machine learning"

Options :

OptionDescription
--forceÉcraser les fichiers existants ; avec install sans argument, re-propose les agents déjà installés
--dry-runAperçu sans écriture sur le disque (fonctionne aussi avec la suggestion automatique)

Note :--pack et --category sont mutuellement exclusifs.

Mode 3 — Script bash / Clone local

Via script bash :

curl -fsSL https://raw.githubusercontent.com/dmicheneau/opencode-template-agent/main/install.sh | bash

Options : --copy, --global, --dir PATH, --force, --dry-run, --uninstall.

Via clone local :

git clone https://github.com/dmicheneau/opencode-template-agent.git ~/.opencode-agents
echo'export OPENCODE_CONFIG_DIR=~/.opencode-agents'>>~/.zshrc
source~/.zshrc

Les agents sont installés dans .opencode/agents/. Node.js 20+ requis pour les modes 1 et 2.


🔌 Plugin OpenCode

Le plugin expose le registre des 69 agents comme outils LLM directement dans les sessions OpenCode. Version actuelle : discovery-only (v1) — 4 tools en lecture seule, aucune modification du système de fichiers.

Installation

Globale (recommandé — disponible dans toutes les sessions OpenCode) :

Ajouter dans ~/.config/opencode/opencode.json :

{
"plugin": ["github:dmicheneau/opencode-template-agent"]
}

Par projet (disponible uniquement dans le projet concerné) :

Ajouter dans .opencode/opencode.json à la racine du projet :

{
"plugin": ["github:dmicheneau/opencode-template-agent"]
}

Tools disponibles

ToolDescription
search_agentsRecherche par nom, description, catégorie ou tags
list_agentsListe tous les agents groupés par catégorie, avec filtres optionnels par catégorie ou pack
get_agentDétails complets d'un agent (description, mode d'installation, état d'installation, suggestions de correction si typo)
check_healthRapport de santé du registre (agents installés, obsolètes, manquants, intégrité)

v1.1 — Types préfixés Oc* pour éviter les collisions de namespace, mode readonly pour les opérations lock, et sanitization des chemins absolus dans les messages d'erreur.

Exemples d'utilisation

> Cherche un agent pour TypeScript
> Liste les agents de la catégorie security
> Vérifie la santé du registre

Structure des fichiers

plugin/
index.ts # point d'entrée (exporté comme Plugin OpenCode)
tools.ts # définitions des 4 tools
types.d.ts # déclarations de types

Prérequis : OpenCode + Bun (le TypeScript est transpilé nativement, pas d'étape de build).


🏗️ Architecture

Documentation détaillée : docs/architecture.md

Le diagramme ci-dessous présente l'architecture globale du système : le point d'entrée CLI, les modules TUI, le registre d'agents et les scripts de veille upstream.

flowchart TB
User["Utilisateur"]
subgraph CLI["bin/cli.mjs — Point d'entree CLI"]
Parse["Analyse des arguments<br/>(install, list, search, tui)"]
end
subgraph TUI["Interface TUI interactive"]
Index["index.mjs<br/>Orchestrateur<br/>(lifecycle, boucle principale,<br/>signaux)"]
Screen["screen.mjs<br/>E/S Terminal<br/>(raw mode, flush,<br/>resize, onInput)"]
Input["input.mjs<br/>Parseur de touches<br/>(raw bytes → ~20 Actions)"]
State["state.mjs<br/>Machine a etats<br/>(browse, search, confirm,<br/>installing, pack_detail,<br/>done, quit)"]
Renderer["renderer.mjs<br/>Constructeur de frames<br/>(state → chaine ANSI)"]
Ansi["ansi.mjs<br/>Codes ANSI, couleurs,<br/>box drawing, palettes<br/>(catColor, tabColor)"]
end
subgraph Data["Couche de donnees"]
Registry["registry.mjs<br/>Chargeur de manifest<br/>(validation, getAgent,<br/>getCategory, searchAgents,<br/>resolvePackAgents)"]
Manifest["manifest.json<br/>69 agents | 10 categories<br/>15 packs"]
Installer["installer.mjs<br/>Telechargement GitHub raw<br/>→ .opencode/agents/"]
end
subgraph Sync["Veille upstream (manual dispatch)"]
Upstream["davila7/claude-code-templates<br/>(depot upstream)"]
SyncScript["sync-agents.py<br/>(1200 lignes, fetch,<br/>conversion tools→permission,<br/>CURATED + EXTENDED agents)"]
SyncCommon["sync_common.py<br/>(HTTP, cache ETag,<br/>frontmatter, validation)"]
UpdateManifest["update-manifest.py<br/>(fusion manifest,<br/>prefix NEEDS_REVIEW)"]
GHA["GitHub Actions<br/>(workflow_dispatch uniquement,<br/>CI: test + lint + validate)"]
end
LocalDir[".opencode/agents/<br/>Agents installes"]
User --> CLI
Parse -->|"tui"| Index
Parse -->|"install"| Installer
Parse -->|"list / search"| Registry
Index --> Screen
Screen --> Input
Input --> State
State --> Renderer
Renderer --> Ansi
Ansi -->|"frames ANSI"| Screen
Index --> Registry
Index --> Installer
Registry --> Manifest
Installer -->|"telecharge"| LocalDir
Upstream --> SyncScript
SyncScript --> SyncCommon
SyncScript --> UpdateManifest
UpdateManifest --> Manifest
GHA -->|"orchestre"| SyncScript
GHA -->|"orchestre"| UpdateManifest
classDef entrypoint fill:#4a90d9,stroke:#2c5f8a,color:#fff
classDef tui fill:#6ab04c,stroke:#3d7a28,color:#fff
classDef data fill:#f0932b,stroke:#c0741e,color:#fff
classDef sync fill:#9b59b6,stroke:#6c3483,color:#fff
classDef storage fill:#e74c3c,stroke:#a93226,color:#fff
classDef user fill:#34495e,stroke:#1c2833,color:#fff
class User user
class Parse entrypoint
class Index,Screen,Input,State,Renderer,Ansi tui
class Registry,Manifest,Installer data
class Upstream,SyncScript,SyncCommon,UpdateManifest,GHA sync
class LocalDir storage
Loading

Deux diagrammes supplémentaires sont disponibles dans docs/architecture.md :

  • Flux utilisateur TUI — machine à états complète (suggest, browse, search, confirm, installing, done)
  • Pipeline de mise à jour des agents — scripts de veille upstream et workflow de découverte/évaluation (manual dispatch uniquement)

📋 Agents disponibles

69 agents répartis en 10 catégories, invocables via @catégorie/nom.

CatégorieAgentsDescription
💻 Languages11TypeScript, Python, Go, Rust, Java, C#, PHP, Kotlin, C++, Rails, Swift
🤖 AI9AI engineering, data science, ML, MLOps, LLM, prompts, recherche, data engineering, data analysis
🌐 Web9React, Next.js, Vue, Angular, mobile, UI design, analyse UI, accessibilité, fullstack
🗄️ Data & API6Architecture API, GraphQL, bases de données, PostgreSQL, Redis, SQL
⚙️ DevOps9Docker, Kubernetes, Terraform, AWS, CI/CD, Linux, plateforme, SRE, incident response
🛠️ DevTools8Code review, debugging, performance, refactoring, tests, orchestration, microservices, QA, legacy modernization
🔒 Security5Audit sécurité, tests de pénétration, smart contracts, security engineering, conformité
🔌 MCP2Développement MCP, audit sécurité MCP
📊 Business6Product management, project management, PRD, Scrum, UX research, business analysis
📝 Docs4Documentation technique, API, rédaction, diagrammes

📊 Qualité des agents

Chaque agent est évalué automatiquement par scripts/quality_scorer.py sur 8 dimensions (score 1-5 chacune) :

DimensionCe qui est mesuré5/5
frontmatterPrésence de description, mode, permission3 champs présents
identityParagraphe d'identité entre le frontmatter et le premier ##50-300 mots
decisionsSection ## Decisions avec arbres IF/THEN≥ 5 règles
examplesSection ## Examples avec blocs de code≥ 3 exemples
quality_gateSection ## Quality Gate avec critères de validation≥ 5 critères
concisenessNombre de lignes (70-120 idéal) et ratio de filler phrases70-120 lignes, ≤ 3% filler
no_banned_sectionsAbsence des anciennes sections (Workflow, Tools, Anti-patterns, Collaboration)0 section interdite
version_pinningRéférences à des versions et années dans l'identitéVersion + année présents

Seuil de passage : moyenne ≥ 3.5 ET aucune dimension < 2

Labels : Excellent (≥ 4.5) · Good (≥ 3.5) · Needs improvement (≥ 2.5) · Poor (< 2.5)

Catalogue des agents

69 agents · Score moyen : 4.59/5 · 100% pass rate · 49 Excellent, 20 Good

Coût token estimé : taille en bytes / 4 (approximation pour contenu anglais + code).

CatégorieAgentScoreLabel~TokensLignes
aiai-engineer4.75Excellent1 164113
aidata-analyst4.75Excellent1 088102
aidata-engineer4.75Excellent1 180106
aidata-scientist4.75Excellent1 218108
aillm-architect4.88Excellent1 353125
aiml-engineer4.75Excellent1 170108
aimlops-engineer4.75Excellent1 205125
aiprompt-engineer4.75Excellent1 386121
aisearch-specialist4.62Excellent1 316114
businessbusiness-analyst4.62Excellent1 260104
businessprd4.25Good1 40774
businessproduct-manager4.25Good1 04385
businessproject-manager4.38Good1 17489
businessscrum-master4.25Good1 26598
businessux-researcher4.25Good1 446116
data-apiapi-architect4.75Excellent1 351128
data-apidatabase-architect4.50Excellent1 265113
data-apigraphql-architect4.88Excellent1 249128
data-apipostgres-pro4.50Excellent1 208119
data-apiredis-specialist4.88Excellent1 243122
data-apisql-pro4.50Excellent2 136165
devopsaws-specialist4.88Excellent1 087123
devopsci-cd-engineer4.62Excellent1 103118
devopsdocker-specialist4.62Excellent1 089130
devopsincident-responder4.25Good2 112182
devopskubernetes-specialist4.88Excellent1 111136
devopslinux-admin4.62Excellent1 044127
devopsplatform-engineer4.88Excellent1 019118
devopssre-engineer4.38Good1 157122
devopsterraform-specialist4.88Excellent1 242139
devtoolscode-reviewer4.25Good1 214110
devtoolsdebugger4.25Good1 369122
devtoolslegacy-modernizer4.25Good2 661220
devtoolsmicroservices-architect4.50Excellent1 230150
devtoolsperformance-engineer4.25Good1 226119
devtoolsqa-expert4.25Good1 267123
devtoolsrefactoring-specialist4.50Excellent1 753186
devtoolstest-automator4.50Excellent1 546161
docsapi-documenter4.62Excellent1 195118
docsdiagram-architect4.62Excellent1 173111
docsdocumentation-engineer4.38Good1 050105
docstechnical-writer4.25Good1 097120
languagescpp-pro4.62Excellent1 197141
languagescsharp-developer4.62Excellent1 162133
languagesgolang-pro4.88Excellent1 101129
languagesjava-architect4.88Excellent1 383138
languageskotlin-specialist4.88Excellent1 191121
languagesphp-pro4.88Excellent1 193138
languagespython-pro4.88Excellent1 139139
languagesrails-expert4.88Excellent1 232139
languagesrust-pro4.88Excellent1 211139
languagesswift-expert4.88Excellent1 201138
languagestypescript-pro4.88Excellent1 268132
mcpmcp-developer4.88Excellent1 384125
mcpmcp-security-auditor4.12Good1 28987
securitycompliance-auditor4.75Excellent1 805107
securitypenetration-tester4.62Excellent1 828137
securitysecurity-auditor4.25Good1 633104
securitysecurity-engineer4.25Good1 111109
securitysmart-contract-auditor4.75Excellent2 269126
webaccessibility4.50Excellent1 273107
webangular-architect4.25Good1 282125
webfullstack-developer4.62Excellent1 034103
webmobile-developer4.50Excellent1 223125
webnextjs-developer4.25Good1 201126
webreact-specialist4.88Excellent994104
webscreenshot-ui-analyzer4.25Good1 38099
webui-designer4.62Excellent1 131103
webvue-expert4.88Excellent1 094104

🎒 Packs

15 packs prédéfinis pour installer des groupes d'agents cohérents en une seule commande.

PackAgentsDescription
backendpostgres-pro, redis-specialist, database-architect, api-architect, python-pro, typescript-pro, debugger, test-automatorStack backend
frontendreact-specialist, nextjs-developer, typescript-pro, ui-designer, performance-engineer, test-automatorStack frontend
devopsdocker-specialist, kubernetes-specialist, terraform-specialist, aws-specialist, ci-cd-engineer, linux-admin, platform-engineer, incident-responderInfrastructure
fullstackfullstack-developer, typescript-pro, react-specialist, nextjs-developer, postgres-pro, api-architect, debugger, test-automator, code-reviewerFull stack
aiai-engineer, data-scientist, ml-engineer, llm-architect, prompt-engineer, search-specialistIA & ML
securitysecurity-auditor, penetration-tester, smart-contract-auditor, compliance-auditorSécurité
mcpmcp-developer, mcp-security-auditorMCP servers
qualitycode-reviewer, test-automator, debugger, performance-engineer, refactoring-specialist, legacy-modernizerQualité code
startupfullstack-developer, typescript-pro, nextjs-developer, postgres-pro, docker-specialist, product-manager, ui-designer, test-automatorKit startup
data-stackdata-engineer, data-analyst, data-scientist, database-architect, postgres-pro, sql-proStack données
ml-to-productiondata-scientist, ml-engineer, mlops-engineer, llm-architect, docker-specialist, kubernetes-specialistML en production
frontend-completereact-specialist, nextjs-developer, vue-expert, angular-architect, accessibility, ui-designerFrontend complet
ship-it-safelyci-cd-engineer, docker-specialist, kubernetes-specialist, sre-engineer, security-engineer, qa-expertDéploiement sûr
product-discoveryproduct-manager, ux-researcher, business-analyst, prd, ui-designerDécouverte produit
architecture-docsmicroservices-architect, api-architect, database-architect, diagram-architect, documentation-engineerArchitecture & docs

⚙️ CI / CD

Intégration continue (ci.yml)

Chaque push ou pull request sur main déclenche 4 jobs en parallèle :

JobDescription
testTests Python sur 3 versions (3.10, 3.12, 3.13)
test-cliTests Node.js sur 3 versions (20, 22, 23) — CLI, TUI, lock
lintSyntaxe Python/Node, shellcheck, validation du frontmatter YAML des agents, validation du manifest JSON
validate-agentsVérifie la cohérence du manifest avec les fichiers réels, détecte les champs dépréciés

Mises à jour des dépendances (dependabot.yml)

Dependabot surveille les SHA des GitHub Actions utilisées dans les workflows et ouvre automatiquement une PR chaque semaine si une mise à jour est disponible. Toutes les actions sont pinnées par SHA pour des raisons de sécurité.


🔄 Synchronisation des agents

Les agents proviennent de plusieurs sources : la majorité est issue de aitmpl.com (claude-code-templates), certains sont des créations originales du projet (aws-specialist, ci-cd-engineer, docker-specialist, linux-admin, redis-specialist, mcp-security-auditor, prd, screenshot-ui-analyzer), et le catalogue awesome-claude-code-subagents a servi de référence pour identifier les agents manquants. Tous les agents sont curés manuellement et passent par un processus de réécriture experte avant intégration — la synchronisation automatique hebdomadaire a été désactivée pour garantir un haut niveau de qualité.

Pourquoi pas de sync automatique ?

Les agents upstream (~133 disponibles) suivent un format générique (listes de compétences, métriques fictives). Les agents du projet suivent un format expert à 4 sections (identité, décisions, exemples, quality gate). La différence de qualité (3-4/10 vs 8-9/10) rend l'import automatique contre-productif.

Ajouter un nouvel agent

  1. Découverte — lister les agents upstream disponibles via le script local :
    python3 scripts/sync-agents.py --list --tier=extended
  2. Évaluation — vérifier que l'agent apporte une compétence non couverte par les 69 agents existants
  3. Dry-run upstream — lancer le workflow en mode discovery pour récupérer le frontmatter et les permissions sans modifier le repo :
    gh workflow run "Sync Agents" -f tier=core -f dry_run=true
  4. Réécriture — réécrire le body avec le template du projet (Identité → Decisions → Examples → Quality Gate)

Scripts disponibles

Ces scripts sont destinés à un usage manuel uniquement — il n'y a pas de synchronisation automatique.

ScriptDescription
scripts/sync-agents.pyTélécharge et convertit les agents depuis le dépôt upstream
scripts/update-manifest.pyFusionne le manifest de sync dans le manifest principal
scripts/sync_common.pyUtilitaires HTTP partagés, cache ETag, validation de frontmatter
scripts/generate_readme_scores.pyRégénère les tableaux de scores qualité dans les deux README. Mode --check pour la CI.

🚀 Releases & Changelog

Le changelog est généré automatiquement à partir de l'historique Git via git-cliff, orienté utilisateur avec des catégories claires.

Fonctionnement

  1. Tag push — pousser un tag v* (ex: git tag v8.0.0 && git push --tags)
  2. CI obligatoire — le workflow de release attend que lint, tests et validate-agents passent (ci.yml via workflow_call) avant de continuer
  3. Génération du changelog — git-cliff analyse les commits depuis le dernier tag et génère un changelog structuré
  4. GitHub Release — une release est créée automatiquement avec le changelog comme corps

Catégories du changelog

Préfixe commitCatégorie changelog
feat✨ Nouveautés
fix🐛 Corrections
perf⚡ Performance
docs📝 Documentation
refactor♻️ Refactoring
chore, ci, build, style, test🔧 Maintenance

Les commits avec BREAKING CHANGE sont préfixés BREAKING: dans leur catégorie respective.

Créer une release

# Bumper la version dans package.json, tagger et pousser
npm version major # ou minor, patch
git push --follow-tags
# Ou manuellement
git tag v8.0.0
git push --tags

🧪 Tests

814 tests (504 JS + 310 Python).

# Tous les tests JS (CLI + TUI)
node --test tests/cli.test.mjs tests/tui.test.mjs tests/lock.test.mjs
# Tous les tests Python
python3 tests/run_tests.py
# Tests spécifiques
python3 -m pytest tests/test_agents.py -v
python3 -m pytest tests/test_sync_script.py -v
python3 -m pytest tests/test_update_manifest.py -v

🤝 Contribuer

Les contributions sont les bienvenues ! Voir les issues ouvertes.

Modifier ou ajouter un agent

  1. Créer ou modifier le fichier dans agents/<catégorie>/<nom>.md
  2. Respecter le template 4 sections : Identity, Decisions, Examples, Quality Gate
  3. Régénérer les scores README :
    python3 scripts/generate_readme_scores.py
  4. Commiter les fichiers agent et les README mis à jour ensemble
  5. La CI vérifiera automatiquement que les scores sont à jour

Astuce : lancez python3 scripts/quality_scorer.py agents/<catégorie>/<nom>.md pour voir le score détaillé avant de mettre à jour les README.

Qualité minimale

Chaque agent doit atteindre le seuil de qualité : score moyen ≥ 3.5 et aucune dimension < 2. Consultez la section Qualité des agents pour le détail des dimensions.

Agents majoritairement sourcés depuis aitmpl.com (claude-code-templates), avec des créations originales et awesome-claude-code-subagents comme référence. Tous réécrits et curés manuellement.


📄 Licence

MIT

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Stars

7 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages