Ne touchez plus à votre clavier. Bâtissez l'usine qui le fait tourner.
Les réseaux sociaux s'épuisent en démonstrations cosmétiques où un chatbot génère un composant React dans un bac à sable fermé. Dans la vraie vie, une architecture agentique industrielle doit compiler des binaires Go, manipuler des dépôts Git lourds, administrer des serveurs dédiés bare-metal via SSH, persister son état à travers les coupures réseau et livrer en production. Finis les frameworks d'orchestration obèses et les abonnements SaaS à mille dollars. Voici l'anatomie complète d'un harnais distribué et souverain : deux stations de travail Apple Silicon de pointe, une sentinelle locale basse consommation, une myriade de serveurs distants, et POSTERM comme système nerveux central.
Blueprint de Production
Un job d'agent n'est rien d'autre qu'un terminal qui tourne tout seul. Si un job est un terminal, le meilleur gestionnaire de tâches est l'outil qui préserve les processus et leur écran vivant depuis un quart de siècle : tmux. Le meilleur visualiseur est le terminal lui-même (xterm.js), et l'état du job est simplement ce qui s'affiche à l'écran.
Tout le setup repose sur cette vérité nue : un binaire statique Go unique, zéro dépendance, aucun démon tiers et un mur de supervision universel.
La flotte hétérogène : répartir le muscle, le relais et l'armature
Vouloir tout exécuter sur une machine isolée conduit à l'asphyxie thermique et au blocage des contextes. Déporter ses agents sur des conteneurs managés distants détruit l'accès natif aux fichiers, aux shells interactifs et aux profils locaux. La réponse réside dans une répartition stricte des rôles matériels :
Ces deux machines constituent le cœur cognitif et créatif du dispositif. L'iMac M4 (24 Go de mémoire unifiée) gère les contextes larges, le poste fixe et l'hébergement du hub local lorsque vous êtes à l'atelier. Le MacBook Pro M1 Max (32 Go de RAM unifiée, bande passante mémoire de 400 Go/s) absorbe les runs massifs en mobilité, le multitâche lourd et les contextes volumineux. Les agents y opèrent directement dans leur $SHELL -lic interactif avec accès complet à la chaîne d'outils (Go, Node, Git, scripts de déploiement) sans couche de virtualisation parasitaire.
Le vétéran de la flotte. Avec ses 8 Go de mémoire, il ne tente aucun exploit LLM local. Il tourne 24/7 en headless, silencieux et ultra-sobre. Il sert de relais de persistance locale, exécute les scripts de veille, les synchronisations de fichiers peer-to-peer (Syncthing) et maintient une instance posterm spoke toujours joignable sur le réseau domestique pour surveiller les services internes et exécuter des tâches asynchrones légères.
Parc hétérogène de serveurs dédiés sous Linux pur (pour les compilations lourdes, les tests d'intégration, les clusters de données) et de VPS de production exposés derrière Caddy / Nginx et reverse-proxy durci. C'est ici que tournent les conteneurs applicatifs et les binaires de prod. Chaque serveur distant héberge un binaire posterm configuré en spoke ou en hub, permettant aux agents locaux d'administrer les machines distantes sans jamais exposer de ports SSH directs sur le web public.
POSTERM : tmux comme Job Queue, yamux comme Maillage
Le problème des flottes agentiques distribuées réside dans la friction de supervision. Vous lancez cinq agents Claude Code, Codex ou Crush sur différentes machines : l'un attend une confirmation [y/N], l'autre a fini sa boucle, le troisième a crashé. Vous passez votre vie à jongler entre des terminaux fantômes et des fenêtres SSH orphelines.
POSTERM (posterm.sh) résout cette équation en revenant à la physique du terminal Unix :
Un binaire compilé en Go pur (CGO_ENABLED=0), sans runtime externe, avec toute l'interface Web embarquée via //go:embed. Il joue tous les rôles : posterm démarre le hub avec le mur visuel ; posterm join [hub-url] raccorde une machine satellite ; posterm lab <dir> [cmd] lance une tâche depuis le shell ; posterm state émet un signal d'état explicite.
Les satellites (spokes) ne se mettent jamais en écoute sur un port réseau. Que votre MacBook M1 Max soit sur un Wi-Fi public à Lisbonne ou que votre iMac soit derrière le NAT d'une box résidentielle, chaque spoke émet une unique connexion WebSocket sortante vers le Hub (Authorization: Bearer <token>). Le Hub et le Spoke encapsulent ce lien dans une session yamux. Le Hub devient le client yamux qui interroge l'Engine du Spoke en HTTP pur à travers le tunnel. Aucun port entrant, aucun trou dans le pare-feu, traversée de NAT native.
Chaque "lab" est une session tmux isolée sur un serveur tmux privé dédié (socket dans $POSTERM_DATA/tmux.sock). Si votre navigateur crashe, si votre connexion saute ou si le Hub redémarre, le process tmux continue son exécution. Grâce à remain-on-exit on, un lab terminé conserve son dernier écran et son code de sortie (post-it gris). Un appel capture-pane régulier lit l'état réel sans surcoût.
Le Mur POSTERM : La couleur comme indicateur cognitif
Plutôt que d'inonder l'opérateur de logs bruts ou de générer des résumés par un énième LLM halluciné, POSTERM modélise chaque job sous forme d'un post-it visuel catégorisé par couleur :
L'écran défile. Le compilateur tourne, l'agent réfléchit. Laissez-le travailler.
L'écran est figé sur un prompt ou un choix. L'agent attend votre arbitrage.
Silence complet, rien n'est demandé. Tâche terminée ou attente de nouvelles directives.
Processus éteint. Le code de sortie s'affiche sur le post-it pour autopsie immédiate.
Pour forcer un état sans passer par des devinettes heuristiques, les agents peuvent appeler directement le binaire depuis l'intérieur du lab :
posterm state question "Appliquer les migrations sur la base PostgreSQL ?"
posterm state idle
Zéro requête réseau, zéro token d'authentification : la commande écrit directement un fichier atomique sur le disque local que l'Engine POSTERM lit lors de sa boucle de scrutation.
La clôture des secrets : zéro clé API en clair dans les terminaux
Lorsque vos agents opèrent directement dans votre shell natif (indispensable pour bénéficier des environnements Go, Rust ou Node configurés dans vos profils utilisateurs), laisser traîner des fichiers .env non chiffrés avec vos clés d'API (OpenAI, Anthropic, tokens SSH de production) est suicidaire. Une injection de prompt indirecte nichée dans un commit ou une issue GitHub pourrait ordonner à l'agent d'exfiltrer ces clés.
L'isolation s'opère par injection dynamique via un Secret Broker centralisé (Infisical ou coffre chiffré local) :
1. Aucun secret de production n'est écrit sur le disque dur des machines de dev.
2. Chaque instance POSTERM ou script d'agent s'exécute avec une identité machine à privilèges minimaux.
3. Pour builder ou déployer, l'agent invoque la commande enveloppée : infisical run --env=prod -- make deploy.
4. Les variables sensibles sont injectées uniquement dans la mémoire vive du sous-processus sans jamais apparaître dans l'historique shell ni dans les logs tmux.
Si un agent est compromis ou part en boucle infinie, son token d'accès au broker est révoqué en une seconde sans impacter les secrets maîtres ni forcer la rotation des clés sur l'ensemble de votre infrastructure.
Supervision mobile : Le terminal sous les doigts depuis n'importe où
L'un des apports majeurs de POSTERM est son architecture web épurée : aucun build JavaScript, aucun framework lourd. Du Vanilla JS et un xterm.js vendé embarqués dans le binaire Go.
-
[APPLICATION PWA & NOTIFICATIONS WEB PUSH]
Installé sur votre smartphone via « Ajouter à l'écran d'accueil », le mur POSTERM devient une PWA native. Dès qu'un lab passe en état
question(jaune) ou se termine (vert), une notification Web Push réveille le téléphone. -
[RÉPONSE DIRECTE DEPUIS LA NOTIFICATION]
La notification intègre un champ Reply. Si un agent vous demande
« Lancer les tests e2e ? (y/n) », vous tapezydans la notification et envoyez. La réponse est injectée directement dans le stdin de la session tmux sans même ouvrir l'application. -
[BASH COMPAGNON & BROADCAST UNIVERSEL]
Chaque lab ouvert dispose d'un deuxième shell bash à sa base, pointant exactement dans le répertoire de travail. Pendant que l'agent code au-dessus, vous pouvez vérifier un
git diffou glisser-déposer des fichiers. Mieux : le bouton Broadcast permet de cocher dix labs en simultané et d'envoyergit commit -am "fix" && git pushà la flotte entière en une frappe.
Spécifications de mise en route du maillage POSTERM
Voici les configurations réelles pour déployer le Hub et raccorder vos machines satellites en quelques minutes.
# Installation en une ligne (Linux ou macOS)
curl -fsSL https://posterm.sh/install | sh
# Démarrage du Hub (génère un token d'authentification unique au premier run)
export POSTERM_PORT=8206
posterm
# Le Hub écoute sur 127.0.0.1:8206.
# À placer derrière Caddy avec terminaison TLS et filtrage IP ou Cloudflare Access.
# Connexion sortante vers le Hub via tunnel WebSocket / Yamux
# Aucun port d'écoute nécessaire sur la machine locale !
posterm join https://hub.mon-domaine.sh --token="VOTRE_TOKEN_OPERATEUR"
# Pour persister sous macOS (LaunchAgent) :
# Configurer LaunchAgent avec AbandonProcessGroup=true pour que
# les sessions tmux survivent aux fermetures de session.
# Créer un lab sur un projet Go avec lancement d'un agent Claude Code
posterm lab ~/src/mon-api-go "claude"
# Créer un lab dédié à la supervision d'infrastructure sur un serveur dédié
posterm lab /srv/infra "htop"
# Le lab apparaît instantanément sur le mur web sous forme de post-it interactif.
Cartographie du flux opérationnel distribué
+-------------------------------------------------------------------------------------------------------------------------+
| ARCHITECTURE MAÎTRESSE DE L'USINE AGENTIQUE DISTRIBUÉE |
+-------------------------------------------------------------------------------------------------------------------------+
[ OPÉRATEUR NOMADE ] ──> Smartphone (PWA POSTERM • Web Push • Reply direct) • Clavier Nomade
│
▼ (HTTPS / TLS Reverse Proxy)
+───────────────────────────────────────────────────────────────────────────────────────────────────+
| LE HUB POSTERM (posterm) |
| |
| • Mur Visuel des Labs (xterm.js vendé, Vanilla JS, Zéro Build) |
| • Authentification unique par Token Opérateur |
| • Routeur Reverse-Proxy /m/<machine>/... |
| • Client Yamux : multiplexage des flux HTTP & terminaux WebSockets vers les satellites |
+───────────────────────────────────────────────────────────────────────────────────────────────────+
▲ ▲ ▲
│ │ │
│ (Tunnel Yamux sortant) │ (Tunnel Yamux sortant) │ (Tunnel Yamux sortant)
│ Spoke dials out │ Spoke dials out │ Spoke dials out
+────┴──────────────────────+ +──────┴─────────────────────+ +───────┴──────────────────────+
| MACHINE 1 : iMac M4 24 Go | | MACHINE 2 : M1 Max 32 Go | | MACHINE 3 : Mac M1 8 Go |
| (Poste Sédentaire Lourd) | | (Poste Portable Nomade) | | (Sentinelle Réseau Headless) |
| | | | | |
| • posterm join Engine | | • posterm join Engine | | • posterm join Engine |
| • Serveur privé tmux | | • Serveur privé tmux | | • Serveur privé tmux |
| • Labs Claude / Codex | | • Labs Build / Analyse | | • Tâches de fond / Relais|
| • Contexte large & GPU | | • 32 Go Unified RAM | | • Faible conso 24/7 |
+───────────────────────────+ +────────────────────────────+ +──────────────────────────────+
▲
│ (SSH LAN ou WAN)
▼
+──────────────────────────────+
| PARC SERVEURS & VPS DISTANTS |
| |
| • Serveurs Dédiés Linux |
| • VPS de Production Caddy |
| • Spoke POSTERM embarqué |
| • Docker & Binaires Go |
+──────────────────────────────+
▲
│ (Injection sécurisée)
+──────────────┴───────────────+
| SECRET BROKER : INFISICAL |
| Zéro clé d'API en clair |
+──────────────────────────────+
L'autonomie agentique n'est pas une question d'intelligence du prompt : c'est un problème de tuyauterie système, de robustesse des processus et de discipline matérielle.
• Le terminal est le seul protocole universel : En utilisant tmux comme moteur de persistance et posterm comme surface de projection, vos agents conservent leur environnement natif, leurs outils et leurs shells sans dépendance à des architectures propriétaires.
• L'architecture sortante bat tous les tunnels : En faisant composer vos spokes vers l'extérieur via des WebSockets yamux, aucune machine de votre flotte n'expose de port au monde extérieur. Vos portables changent de réseau sans rompre le lien opérationnel.
• L'attention humaine est le goulot d'étranglement : Avec les post-its colorés de POSTERM et les réponses interactives dans les notifications Push, vous arbitrez les points de blocage en cinq secondes depuis votre poche, sans jamais vous perdre dans des dizaines d'onglets de terminaux.