miam
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. - Subagent
miam:delegue: agent dédié qui pilote la délégation des tâches vers MIAM. - Skill
deleguer: règles, pour l'agent principal, sur quand et comment déléguer une tâche à MIAM. - Skill
/miam:banc: banc d'essai des presets de MIAM pour évaluer les performances.
Prérequis
MIAM 2.5.0 ou plus lancé avec son serveur MCP démarré (interrupteur du dashboard, menu « Serveur MCP » du tray, ou --auto-start-mcp) ; Python 3.12 pour le banc.
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 » : ajouterhttps://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. |
| modele_subagent | haiku | Modèle Claude qui pilote MIAM pour l'agent principal (rédige la consigne, attend, vérifie). |
| preset_defaut | pre-16312f8b | Preset MIAM par défaut, démarré quand aucun modèle n'est chargé et que le banc n'a pas encore de résultats. |
Utilisation
L'agent principal lance le subagent miam:delegue ; celui-ci vérifie que MIAM répond (etat), démarre si aucun modèle n'est chargé le meilleur preset de la catégorie de la tâche d'après choix.json du banc (sinon le preset par défaut), ne remplace jamais un modèle déjà chargé sans demande, délègue, vérifie, et rend un compte rendu court.
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 une ligne
d'état sous le prompt (MIAM ▸ 2 délégation(s) · ~6,1k tokens évités · pilotage 1,5k · corrections 600 · net ~4k (cumul ~35k)),
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 du subagent
miam:delegue(lecture en cache comptée au dixième), à déduire. - 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
sortien'est pas vue (d'où l'intérêt de faire écrire les résultats par MIAM avecsortie).
Banc d'essai
Tâches fixes reprises de llm-banc (catégories code, texte, rapide ; pas de vision), lancé par /miam:banc dans une fenêtre PowerShell externe, résultats rapport.md et choix.json dans le dossier de données du plugin, critère de choix (meilleure note par catégorie ; à moins de 0,02 d'écart, la vitesse en tok/s départage). Le script lit le jeton dans %LOCALAPPDATA%\MIAM\config.json ou la variable MIAM_JETON.
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)
agents/
delegue.md # subagent miam:delegue
skills/
deleguer/SKILL.md # quand et comment déléguer
banc/SKILL.md # /miam:banc
hooks/
hooks.json
register.ts # compteur de tokens économisés (ligne d'état, notifications, /miam-economies)
economies.ts # calcul pur, testé
*.test.ts # 35 tests : claude plugin test plugins/miam
banc/
banc_miam.py # banc d'essai des presets via MIAM
mcp_http.py # client MCP minimal
taches.py # tâches et contrôles (repris de llm-banc)
verifier_controles.py
fichiers/ # données fixes du banc
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.jsonde projet qui déclare déjà le serveurmiam(celui de ce dépôt, celui de MIAM) fait doublon avec le plugin : le retirer une fois le plugin installé. - Le modèle du subagent réglé par modele_subagent s'applique quand il est lancé via la skill deleguer (sinon : haiku, défaut du fichier de l'agent).
Licence
MIT, voir LICENSE. Les fichiers du banc (banc/) reprennent ceux de llm-banc, du même auteur.