Files
plugin-claude-miam/plugins/miam
ange 7841bcd89f v0.8.0 : OpenCode dans le skill deleguer et mesure réelle du pilotage
- Le skill deleguer documente le choix d'OpenCode et la gestion des permissions
- Le plugin lit les tokens_cloud_* pour calculer les gains et afficher la notification
- Le pilotage est mesuré sur l'usage réel des requêtes de suivi, au prorata des outils
- Un diff rejeté retire le gain des tokens évités
2026-10-31 15:45:38 +01:00
..
2026-10-30 01:10:43 +01:00
2026-10-30 01:17:35 +01:00

miam

← Tous les plugins

Plugin Claude Code pour déléguer des tâches à un modèle local géré par MIAM (Mon IA Manager, orchestrateur llama.cpp), via son serveur MCP.

Contenu

  • Serveur MCP miam (http://127.0.0.1:{port}/mcp, jeton Bearer) : point d'entrée pour la communication avec le serveur MCP de MIAM.
  • Skill deleguer : règles, pour l'agent principal, sur quand et comment déléguer une tâche à MIAM, y compris à OpenCode (permissions, puis appliquer ou rejeter le diff).

Prérequis

MIAM 2.5.1 ou plus (type, seuil et l'outil modeles, champs offload à partir de 2.5.2) lancé avec son serveur MCP démarré (interrupteur du dashboard, menu « Serveur MCP » du tray, ou --auto-start-mcp).

Installation

Le plugin fait partie de la marketplace a2m-plugins (voir le README du dépôt pour l'ajout de la marketplace, les dépôts privés et les mises à jour).

  • VS Code : /plugins → onglet « Marketplaces » : ajouter https://a2msystemes-git.duckdns.org/ange/plugin-claude-miam.git (avec .git), puis onglet « Plugins » → miam → Install.
  • Terminal :
    /plugin marketplace add https://a2msystemes-git.duckdns.org/ange/plugin-claude-miam.git
    /plugin install miam@a2m-plugins
    

Portée conseillée : « Install for you » (tous les projets du poste). Mises à jour : augmenter version dans .claude-plugin/plugin.json à chaque publication.

Puis : à l'activation, Claude Code demande les réglages (voir section suivante) ; le jeton se copie depuis MIAM (« Copier la config Claude Code », la valeur après « Bearer »).

Réglages

Réglage Défaut Rôle
jeton (vide) Jeton Bearer du serveur MCP de MIAM, rangé dans le coffre d'identifiants.
port 8090 Port du serveur MCP de MIAM sur 127.0.0.1.
incitation oui Ajoute au prompt système une consigne de délégation (quelques centaines de tokens, en cache) et un rappel après une grosse lecture.
preset_defaut pre-16312f8b Preset MIAM par défaut, démarré quand aucun modèle n'est chargé et que MIAM n'a aucun test pour le type de la tâche.

Utilisation

L'agent principal appelle directement l'outil deleguer, avec type (code, texte, rapide) et seuil (0,8 par défaut), puis vérifie le résultat. Le subagent miam:delegue est mis de côté : son pilotage rendait les gains négatifs. Sa définition est gardée dans docs/agent-delegue.md du dépôt.

MIAM choisit le modèle d'après ses tests de qualité : il garde le modèle chargé s'il atteint le seuil, sinon il charge le meilleur preset, quitte à remplacer le modèle chargé (20 à 40 s) ; si aucun n'atteint le seuil, il prend le meilleur et le signale. L'agent principal peut imposer un preset ou demander de garder le modèle chargé. Contrat : docs/protocole-agents.md du dépôt MIAM.

Incitation à déléguer

Avec incitation (par défaut), l'agent principal reçoit une courte consigne dans son prompt système : déléguer par réflexe ce qui s'y prête, sans demander. Après une lecture de plus de 20 000 caractères (Read, Bash, PowerShell), il reçoit aussi un rappel, au plus toutes les 10 minutes et invisible pour l'utilisateur. Les subagents ne reçoivent ni l'une ni l'autre.

Délégation imposée

Avec imposer (par défaut), et tant que MIAM répond, l'agent principal ne peut plus consommer d'usage sur de longues lectures :

  • Read d'un fichier de 20 000 octets ou plus est refusé avant la lecture, sauf plage de 400 lignes au plus (offset, limit), image, PDF ou fichier écrit par une délégation ;
  • une sortie Bash ou PowerShell de 20 000 caractères ou plus est enregistrée dans .claude/miam-sorties/ du projet (dossier ignoré par git) et retenue : le modèle reçoit le chemin, à passer à deleguer. Une commande en erreur garde sa sortie et déclenche le rappel.

Les subagents ne sont pas concernés. Si MIAM ne répond pas, ou si la sortie ne peut pas être enregistrée, rien n'est bloqué. Si MIAM répond mais que la délégation échoue (/mcp à reconnecter, par exemple), la lecture par plages reste possible.

Ligne d'état : gains et usage Claude

Une seule ligne, sans coût en tokens (🟢 MIAM net ~4k (cumul ~35k)🟢 · 5 h 🟩🟩⬛⬛⬛ 42 % (1 h 53) · hebdo 🟩🟩🟩⬛⬛ 53 % (3 j 20 h)) :

  • le gain net, 🟢 s'il est positif, 🔴 s'il est négatif ;
  • l'usage Claude sur 5 h et sur la semaine : barre, pourcentage et temps avant la remise à zéro. La barre est verte, orange à partir de 70 %, rouge à partir de 90 %. Ces chiffres viennent de la dernière réponse de l'API : ils n'apparaissent qu'après un premier échange, et seulement avec un abonnement.

Tokens économisés

Après chaque délégation réussie, une notification (🟢 MIAM : ~6,1k tokens évités (5,2k lus, 900 écrits)) et la mise à jour de la ligne d'état, dans le terminal comme dans VS Code. /miam-economies donne le détail de la session et le cumul ; /miam-economies raz remet les compteurs à zéro. Le calcul se fait localement dans Claude Code : il ne coûte aucun token. Chaque estimation est aussi envoyée à MIAM (POST /economies, toutes les 5 s, hors des hooks ; gardée et renvoyée si MIAM ne répond pas) : contrat et modèle de données dans docs/token-summary-mod.md.

  • Évités : les fichiers lus et la réponse écrite par le modèle local (chiffres de MIAM), moins la consigne et ce que Claude relit (estimés à 4 caractères par token).
  • Pilotage : la consommation réelle d'un subagent qui délègue (lecture en cache comptée au dixième), ou l'usage réel des requêtes de l'agent principal qui suivent OpenCode, contexte relu et relecture du diff compris (lecture en cache au dixième), à déduire. Le gain d'OpenCode vaut les tokens du cloud moins la consigne ; un diff rejeté n'évite rien.
  • Corrections : ce que l'agent principal relit (Read) ou retouche (Edit, Write, NotebookEdit, Bash) dans un fichier écrit par une délégation (sortie), à déduire aussi. Celles du subagent sont déjà dans le pilotage.
  • Net = évités − pilotage − corrections.
  • Limites : le brief de l'agent principal et la lecture du compte rendu ne sont pas comptés ; un token de Haiku coûte moins qu'un token d'Opus, ce que le net ne pondère pas ; une reprise hors du fichier sortie n'est pas vue (d'où l'intérêt de faire écrire les résultats par MIAM avec sortie).

Tests des modèles

MIAM teste lui-même les presets, en travaux de fond (page Benchmarks) : le plugin n'a plus de banc. L'ancien dossier de données du plugin (banc/, rapport.md, choix.json) n'est plus lu.

Structure du plugin

.claude-plugin/
  plugin.json            # manifeste : nom, version, réglages (jeton, port, modèle, preset)
.mcp.json                # serveur MCP miam (http://127.0.0.1:<port>/mcp)
skills/
  deleguer/SKILL.md      # quand et comment déléguer
hooks/
  hooks.json
  register.tsx           # compteur de tokens, ligne d'état, incitation, /miam-economies
  economies.ts           # calcul pur, testé
  usage.ts               # usage Claude 5 h et hebdo : calcul pur, testé
  *.test.ts(x)           # tests : claude plugin test plugins/miam
LICENSE
README.md

Limites connues

  • Si MIAM est fermé puis relancé, Claude Code ne se reconnecte pas seul (/mcp → Reconnect sur plugin:miam:miam).
  • deleguer ne transmet que du texte (pas d'image).
  • Un .mcp.json de projet qui déclare déjà le serveur miam (celui de ce dépôt, celui de MIAM) fait doublon avec le plugin : le retirer une fois le plugin installé.

Licence

MIT, voir LICENSE.