À propos du projet

AgentPod est un centre de commande portable pour les runtimes d'agents IA — un endroit unique pour gérer les environnements où vivent les agents, où qu'ils s'exécutent. Pour chaque runtime, il gère le système de fichiers, les journaux, le terminal, la configuration, la santé, le cycle de vie, le nettoyage et le provisionnement, à travers les machines, les harnesses et les frontières réseau. Il est attach-first : vous le pointez vers des runtimes que vous exécutez déjà, ou vous le laissez en provisionner de nouveaux. L'architecture comporte trois niveaux. La console destinée à l'opérateur est une SPA statique SvelteKit qui communique avec le hub via HTTPS et WSS. Le hub est construit sur Bun, Hono et Postgres (via Drizzle) et agit comme registre de nœuds/stations, courtier de connexions, service d'inscription et d'authentification (Better Auth), journal d'audit et d'activité, et hôte de pilotes de provisionnement. Le node-agent est un binaire Go statique installé sur chaque hôte qui établit une connexion sortante vers le hub via WSS, ce qui lui permet de fonctionner derrière NAT et CGNAT sans ouvrir de ports entrants. Chaque node-agent exécute des descripteurs de harness et exécute les verbes de contrat localement. AgentPod fournit des descripteurs pour plusieurs harnesses d'agents — Hermes, OpenClaw, Claude Code, Codex, OpenCode et Pi — enregistrés dans apps/node-agent/cmd/agentpod-node/registry.go. Chaque descripteur enveloppe la CLI ou l'API native du harness pour énumérer les runtimes, localiser la configuration, les journaux et l'espace de travail, et implémenter les opérations du cycle de vie sans réinventer l'introspection de chaque harness. Le déploiement est simple : exécutez le hub avec Postgres et Bun (migration automatique au premier démarrage), compilez la console avec pnpm et déployez la sortie statique sur Cloudflare Pages ou tout hôte statique sur un sous-domaine du domaine enregistrable du hub (afin que le cookie de session Better Auth reste same-site), puis enregistrez les node-agents sur les hôtes cibles avec un script d'installation piped via curl qui installe un service systemd. Des binaires précompilés pour linux/darwin × amd64/arm64 sont publiés à chaque tag v* via GitHub Actions. Le statut est mono-opérateur : un seul compte administrateur, l'inscription se ferme après le premier utilisateur, les versions sont taguées v0.1.x. La frontière d'isolation des locataires (tenants) est en place — une table tenants, tenant_id sur chaque table scopée, et une aide tenantScope() qui refuse de construire une requête sans elle, verrouillée par des tests unitaires. Tout fonctionne aujourd'hui sous le locataire d'amorçage unique fleet_00000000000000000000 ; ce qui reste est ce qui utilise cette frontière : organisations, principaux et facturation. Le produit précédent basé sur OpenCode est figé au tag v0.0.4-opencode avec des docs archivées dans docs/archive/. Sous licence MIT.