plugin-claude-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:/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
Depuis le dépôt Git (Gitea), dans Claude Code :
/plugin marketplace add https://<gitea>/<utilisateur>/plugin-claude-miam.git
/plugin install miam@miam-local
Dépôt privé : Claude Code clone avec les identifiants Git du poste, sans jamais les demander. En SSH
(git@<gitea>:<utilisateur>/plugin-claude-miam.git), l'hôte doit être dans known_hosts et la clé utilisable sans
saisie de phrase de passe (agent SSH) ; en HTTPS, le gestionnaire d'identifiants de Git. Depuis une copie locale :
/plugin marketplace add E:\0000WorkTechnique\0002dev\plugin-claude-miam.
Portée, choisie à l'installation (le terminal et l'extension VS Code partagent les mêmes réglages) :
- pour toi (user), recommandé : le plugin sert dans tous les projets du poste (
~/.claude/settings.json) ; - pour ce dépôt, tous les collaborateurs (project) :
.claude/settings.json, versionné ; - pour toi, dans ce dépôt seulement (local) :
.claude/settings.local.json.
La marketplace, le code du plugin et ses réglages (jeton, port…) sont toujours propres au compte : ajoutés une fois, quelle que soit la portée.
Mises à jour : version de plugins/miam/.claude-plugin/plugin.json fige la version installée ; l'augmenter à chaque
publication, puis /plugin marketplace update miam-local.
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 dépôt
.claude-plugin/
marketplace.json
plugins/
miam/
.claude-plugin/
plugin.json
.mcp.json
agents/
delegue.md
hooks/
hooks.json
register.ts # compteur de tokens économisés (ligne d'état, notifications, /miam-economies)
economies.ts # calcul pur, testé (claude plugin test plugins/miam)
*.test.ts # 35 tests
skills/
deleguer/
SKILL.md
banc/
SKILL.md
banc/
banc_miam.py
mcp_http.py
taches.py
verifier_controles.py
fichiers/
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 (plugins/miam/banc/) reprennent ceux de llm-banc, du même auteur.