Skip to main content
📝 Claude Code

Hermes + Claude Code : mon VPS build system piloté par Discord

J’ai reconstruit mon dev workflow autour de Hermes Agent orchestrant Claude Code sur un VPS, piloté depuis Discord et deployed sur Vercel.

29 min

Temps de lecture

5,729

Mots

May 01, 2026

Publié

Engr Mejba Ahmed

Écrit par

Engr Mejba Ahmed

Partager l'article

Hermes + Claude Code : mon VPS build system piloté par Discord

Hermes + Claude Code : mon VPS build system piloté par Discord

Il était 23 h 51 un mardi lorsque j'ai tapé /build a Next.js task tracker with SQLite, deploy it to Vercel sur une chaîne Discord et que je suis parti préparer un café. Au moment où la bouilloire s'est éteinte, mon agent Hermes avait lancé Claude Code en tant que sub-agent sur mon Hostinger VPS, échafaudé le projet, poussé une validation initiale vers un nouveau dépôt GitHub et déclenché un déploiement Vercel.

Puis ça a échoué.

Pas catastrophique. Juste la manière spécifique et prévisible dont les applications Next.js échouent lorsque vous les envoyez à un runtime serverless contenant les hypothèses SQLite issues du développement local. La build est passée au vert. Le déploiement s'est terminé en 31 secondes. La première requête adressée à /api/tasks a renvoyé un 500 avec une erreur d'autorisation d'écriture du système de fichiers en lecture seule que Vercel remet à chaque Lambda. Je n'avais rien dit à Claude Code sur les contraintes d'exécution - j'avais juste dit "déployez-le". L'agent a fait exactement ce que j'avais demandé. La plateforme de déploiement avait d’autres idées.

Ce qui s'est passé ensuite est la partie dont je veux vous parler. Hermes a reçu le journal des échecs via le webhook Discord, l'a réinjecté dans Claude Code en tant que tâche de suivi, et Claude Code a passé les quatre minutes suivantes à refactoriser la couche de données pour utiliser Vercel KV au lieu de SQLite. Nouveau commit. Nouveau déploiement. Vert. Point de terminaison fonctionnel. Je suis revenu de la cuisine avec un message Discord qui disait, en substance, "rencontré un problème de système de fichiers serverless, échangé vers KV, redéployé. Démo ici". L’ensemble de la boucle – l’invite initiale au déploiement en production – a duré huit minutes et quarante-trois secondes. J'ai écrit zéro ligne de code.

C'est le système que je veux briser. Pas la version marketing. L'implémentation réelle, les commandes réelles et les parties qui m'ont mordu - y compris le compromis en matière de sécurité que la plupart des didacticiels ignorent et la question que je me pose chaque semaine : quand cette couche d'orchestration en vaut-elle réellement la peine, et quand est-ce que j'ajoute simplement des pièces mobiles ?

Pourquoi Hermes se trouve entre moi et Claude Code

Permettez-moi d'abord d'aborder la question sceptique évidente, car je l'ai posée moi-même pendant environ trois semaines avant de changer : si Claude Code peut déjà planifier, écrire, exécuter et déployer du code, pourquoi est-ce que je mets un autre agent par-dessus ?

La réponse courte est que Claude Code est une brillante session de terminal et Hermes est une brillante couche d'opérations. Ils résolvent différents problèmes.

La force de Claude Code réside dans la profondeur d’une seule tâche. Donnez-lui une base de code, un objectif et un terminal, et il planifiera, écrira, testera et itérera avec une qualité de raisonnement vraiment difficile à battre à l'heure actuelle. Mais Claude Code, à lui seul, ne fait pas naturellement le collage opérationnel désordonné. Il ne surveille pas ses propres déploiements et ne réagit pas aux échecs. Il n'accepte pas les commandes de Discord. Il ne s'exécute pas sur un VPS pendant que vous dormez, ne jongle pas avec trois projets en parallèle ou ne stocke pas les jetons API cryptés sur le disque afin que vous arrêtiez de les coller dans des boîtes de discussion. Vous pouvez construire tout cela autour de Claude Code avec des scripts shell et des tâches cron. J'ai essayé. Le résultat est un tas de colle fragile que vous devez entretenir vous-même.

Hermes Agent est la colle, mais une version auto-améliorée de celle-ci. Construit par Nous Research et publié le 25 février 2026, il a traversé 95 600 étoiles GitHub en sept semaines et se situe au nord de 103 000 au moment d'écrire ces lignes – le genre de trajectoire que l'on ne voit que lorsque quelque chose résout un problème que les gens ont réellement. Hermes est livré avec des intégrations natives pour WhatsApp, Telegram, Discord, Slack et maintenant QQBot, un stockage de jetons crypté via hermes config set, un système de plugins, un mode orchestrateur qui supervise sub-agents et une boucle d'apprentissage qui transforme les tâches ponctuelles en compétences réutilisables. Il est sous licence MIT et fonctionne sur un VPS à 5 $.

Lorsque Hermes traite Claude Code comme un sub-agent, vous obtenez le meilleur des deux. Claude Code effectue l'ingénierie proprement dite. Hermes gère l'orchestration : où le travail s'exécute, qui est autorisé à le déclencher, comment les échecs sont réessayés, où se trouvent les secrets et sur quelle plate-forme de messagerie vous vous trouvez lorsque vous souhaitez vérifier l'état. J'exécute mon orchestrateur sur le même modèle VPS que j'ai décrit dans [mon système à deux agents OpenClaw et Hermes] (/openclaw-hermes-multi-agent-workflow), et l'architecture a résisté à une charge réelle.

Il y a une raison plus profonde pour laquelle ce jumelage fonctionne : il s’agit de la discipline en matière de coûts. Claude Code sur une longue tâche autonome brûle des jetons. Hermes est heureux de fonctionner sur des modèles moins chers pour la couche d'orchestration - la plupart de mon trafic Hermes passe par OpenRouter sur des modèles plus légers, tandis que Claude Sonnet 4.6 (actuellement 3 $ par million de jetons d'entrée, 15 $ par million de jetons de sortie sur OpenRouter) gère uniquement le travail de codage réel. Cette répartition me permet d'économiser de l'argent réel sur chaque projet, et les économies s'accumulent à mesure que j'exécute des tâches plus parallèles.

Mais rien de tout cela n’a d’importance si vous ne parvenez pas à faire fonctionner le système en premier lieu. Alors connectons-le.

La Fondation VPS : pourquoi j'ai arrêté d'exécuter des agents localement

J'ai exécuté Claude Code localement sur mon Mac pendant les six premiers mois d'utilisation. Le modèle convenait au travail en solo, mais il s'est cassé au moment où je voulais trois choses : des tâches de longue durée qui me survivent à la fermeture de l'ordinateur portable, une adresse stable pour les webhooks Discord à atteindre et un endroit où plusieurs sessions d'agent parallèles pourraient s'exécuter sans rivaliser pour mon processeur pendant les appels vidéo. Un VPS résout les trois à la fois.

J'utilise Hostinger. Leur plan KVM 2 coûte actuellement 6,99 $ par mois de lancement (renouvelle environ 11,99 $ /month, ce qui est la partie sur laquelle les pages marketing sont silencieuses) et vous offre 2 processeurs virtuels, 8 Go de RAM, un stockage SSD NVMe et une IP dédiée. C'est largement suffisant pour orchestrer quelques sessions Claude Code en parallèle. Leur KVM 1 à 4,99 $ /month avec 4 Go de RAM fonctionne également si vous n'exécutez qu'un seul agent à la fois - Hermes lui-même est incroyablement léger en ressources, car la plupart des tâches lourdes se déroulent au sein des fournisseurs de modèles, et non sur la boîte.

Si vous êtes un utilisateur Hetzner ou DigitalOcean, ceux-ci fonctionnent également très bien. Les seules exigences importantes sont l'accès SSH, Ubuntu 22.04 ou version ultérieure, Node.js 18+ et l'accès réseau sortant à votre fournisseur de modèles. Je précise Hostinger car la console SSH via navigateur avec laquelle il est livré signifie que vous pouvez installer Hermes à partir de n'importe quelle machine, y compris l'iPad sur lequel j'écris ce paragraphe.

Une fois que vous avez le VPS, la commande d'installation est véritablement une ligne. Connectez-vous en SSH, puis exécutez :

curl -fsSL https://hermes-agent.dev/install.sh | bash

Cela démarre Node, installe Hermes globalement, crée un répertoire de configuration ~/.hermes et vous dépose dans un assistant de première exécution qui vous demande les clés de votre fournisseur de modèle. Je choisis toujours OpenRouter à ce stade au lieu d'aller directement vers Anthropic. La raison est simple : OpenRouter me permet d'échanger des modèles par tâche sans changer de configuration, ce qui est important lorsque j'achemine le travail de planification vers un modèle bon marché et l'exécution vers Claude Sonnet 4.6 ou Opus 4.7.

Définissez la clé OpenRouter avec :

hermes config set OPENROUTER_API_KEY <your-key-here>

Cette commande stocke la clé chiffrée dans ~/.hermes/secrets.enc, et non en texte brut, ce qui compte plus que les gens ne le pensent. J'ai audité trop de tutoriels dans lesquels quelqu'un vous dit de export ANTHROPIC_API_KEY=sk-... dans votre .bashrc et l'appelle bien. Cette clé se trouve désormais dans l'historique de votre shell, dans votre défilement tmux et dans toute sauvegarde de votre répertoire personnel. Le magasin crypté de Hermes le maintient hors des trois endroits.

Maintenant, la partie qui m'a pris le plus de temps pour réussir : installer Claude Code en tant que sub-agent sur le même VPS.

Claude Code en tant que sous-agent Hermes

Claude Code est une application Node.js, distribuée via npm sous @anthropic-ai/claude-code. L'installation standard sur le VPS est simple :

sudo apt update && sudo apt install -y nodejs npm
npm install -g @anthropic-ai/claude-code
claude-code --version

La vérification de la version est importante. Si vous voyez quelque chose en dessous de 1.4.x en mai 2026, il vous manque les améliorations sub-agent arrivées plus tôt cette année, et le reste de ce flux de travail ne se comportera pas comme je le décris.

La partie intéressante consiste à authentifier Claude Code sans bureau interactif. La première fois que vous exécutez claude-code sur un nouveau VPS, il imprimera une URL OAuth et attendra que vous terminiez le flux dans un navigateur. Sur un VPS sans tête, c'est légèrement ennuyeux mais pas bloquant : l'URL fonctionne depuis n'importe quel appareil. Ouvrez-le sur votre ordinateur portable, effectuez la négociation OAuth et Claude Code stocke le jeton dans ~/.config/claude-code/credentials.json sur le VPS. À partir de ce moment, votre VPS dispose d'un Claude Code connecté qui survit aux redémarrages.

Vous câblez maintenant Claude Code à Hermes en tant que sub-agent enregistré. La configuration Hermes pour cela se trouve sur ~/.hermes/agents.toml :

[agents.claude_code]
type = "subagent"
command = "claude-code"
args = ["--print", "--no-interactive"]
working_dir = "/home/mejba/projects"
allowed_tools = ["Read", "Write", "Edit", "Bash", "Glob", "Grep", "WebSearch"]
max_concurrent = 3
timeout_seconds = 1800

La max_concurrent = 3 est la ligne sur laquelle je souhaite attirer votre attention. Il contrôle le nombre de sessions Claude Code parallèles que Hermes est autorisée à générer. J'ai commencé à 13 heures et j'ai progressé. A 3 heures, ma box KVM 2 tourne chaude mais stable. À 5 ans, j'ai vu Node OOM sous charge lorsque les trois sessions ont atteint npm install au même moment. Ajustez-le à votre VPS, et non à ce que montre l'exemple de la documentation.

La valeur timeout_seconds = 1800 signifie que Hermes tuera toute tâche Claude Code qui s'exécute pendant plus de trente minutes. Cela semble agressif jusqu'à ce que vous ayez vu Claude Code se coincer dans une boucle infinie de plan-exécution-replanification sur une vague invite. Mieux vaut échouer rapidement et faire ressortir le problème que de laisser un agent bloqué brûler des jetons du jour au lendemain.

Intégration GitHub sans coller de jetons dans le chat

C'est la section où la plupart des tutoriels me perdent. Ils vous demandent de coller votre jeton d'accès personnel GitHub directement dans la fenêtre de discussion de l'agent afin qu'il puisse cloner les dépôts et envoyer des validations. C'est une recette pour une fuite accidentelle de jetons - dans les journaux de discussion, dans l'historique du fournisseur de modèles, dans les captures d'écran que vous prenez lors du débogage.

Hermes gère cela différemment. Vous générez un jeton d'accès personnel précis à partir des paramètres de développement de GitHub : limitez-le aux référentiels spécifiques que vous souhaitez que l'agent touche et accordez uniquement Contents: read/write, Pull requests: write et Metadata: read. Stockez-le ensuite via la même commande de configuration chiffrée :

hermes config set GITHUB_TOKEN <your-fine-grained-token>

Dans votre répertoire de travail Claude Code, vous dites à git d'utiliser le jeton via l'injection d'environnement de Hermes plutôt que de l'intégrer dans une URL distante. Ma configuration git sur le VPS ressemble à ceci :

git config --global credential.helper '!f() { echo "username=mejba"; echo "password=$GITHUB_TOKEN"; }; f'

Cette petite fonction shell extrait le jeton de l'environnement que Hermes injecte au moment de l'exécution, de sorte que vos URL distantes restent propres (https://github.com/user/repo.git, pas d'informations d'identification intégrées), votre jeton n'apparaît jamais dans la sortie git config --list et la rotation du jeton est à une ligne de hermes config set.

La pièce symbolique à grain fin est importante. J'ai vu des développeurs accorder à leur automatisation un jeton d'accès personnel classique avec une portée repo complète, qui donne à l'agent un accès en écriture à chaque référentiel privé de son compte, y compris le travail client et les projets parallèles. Ne fais pas ça. Générez un jeton précis distinct par projet, limité au référentiel de ce projet uniquement. Si l'agent devient malveillant ou si le VPS est compromis, votre rayon d'explosion est un dépôt, et non l'intégralité de votre présence GitHub.

Le robot Discord qui pilote tout

La couche Discord est ce qui donne à ce flux de travail un aspect de science-fiction plutôt que de tâches cron. Je peux être en réunion, dans le train, sur mon canapé (partout où Discord est ouvert) et envoyer du code en tapant un langage naturel à un robot.

La configuration prend environ dix minutes la première fois. Parcourez ceci exactement :

  1. Ouvrez le Portail des développeurs Discord, cliquez sur « Nouvelle application », nommez-la comme vous le souhaitez. 2. Dans le menu de gauche, cliquez sur « Bot ». Sur cette page, faites défiler jusqu'à Intentes de passerelle privilégiée et activez Intention de contenu du message. C’est celui que la plupart des tutoriels oublient. Sans cela, votre robot peut lire qu'un message existe mais ne peut pas lire son contenu. Vous passerez une heure à déboguer « pourquoi mon bot m'ignore » avant de trouver cette case à cocher. 3. Pendant que vous êtes sur la page du Bot, cliquez sur « Réinitialiser le jeton » et copiez le jeton immédiatement : Discord ne l'affiche qu'une seule fois. 4. Accédez à « OAuth2 » → « Générateur d'URL ». Sous Portées, cochez bot et applications.commands. Sous Autorisations du robot, cochez Send Messages, Read Message History, Use Slash Commands et Attach Files. Discord génère une URL d'invitation en bas de la page. 5.

Ouvrez cette URL, choisissez le serveur sur lequel vous souhaitez installer le bot, autorisez-le. Il apparaîtra hors ligne car nous n'avons pas encore commencé le processus.

De retour sur le VPS, stockez le jeton du bot dans Hermes :

hermes config set DISCORD_BOT_TOKEN <token-you-just-copied>

Activez ensuite le transport Discord dans ~/.hermes/transports.toml :

[transports.discord]
enabled = true
allowed_channel_ids = ["1198347...your-channel-id"]
allowed_user_ids = ["29384...your-discord-user-id"]
command_prefix = "/"

Les allowed_channel_ids et allowed_user_ids constituent la couche de sécurité que personne ne semble mettre en évidence dans le billet de blog. Sans ces listes autorisées, toute personne pouvant envoyer un SMS à votre bot peut piloter Claude Code sur votre VPS. Avec eux, le bot ne vous obéit que dans les canaux que vous avez explicitement autorisés. Obtenez votre ID utilisateur Discord en activant le mode développeur dans les paramètres Discord, puis cliquez avec le bouton droit sur votre nom d'utilisateur → Copier l'ID utilisateur.

Redémarrez Hermes (hermes restart) et le bot se met en ligne. Tapez /status dans votre canal autorisé. Si vous voyez une réponse, la boucle est fermée. À partir de maintenant, chaque commande que vous tapez dans Discord va à Discord → Hermes → Claude Code → revient à Discord. Vous pilotez des versions de production à partir d'une application de chat.

Vercel Déploiement automatique : le dernier kilomètre

Vercel est la cible de déploiement par défaut pour tout Next.js ou static-frontend, et l'intégration est incroyablement ennuyeuse une fois configurée. Connectez votre compte GitHub à Vercel, donnez-lui accès au référentiel vers lequel Claude Code va pousser et configurez Vercel pour qu'il se déploie automatiquement lors du push vers main. Fait.

Le plan Hobby est celui sur lequel je mène le plus d'expériences, et les limites valent la peine d'être connues car elles vous mordent de manière spécifique. Depuis mai 2026, Hobby vous offre 100 Go de bande passante par mois, 1 million de requêtes Edge et 100 000 appels de fonctions serverless. Le délai d'expiration de la fonction est limité à 60 secondes et la bande passante n'a pas d'option de dépassement : atteignez 100 Go et vos déploiements s'arrêtent jusqu'au prochain cycle de facturation. Pour l’expérimentation et les démos, tout va bien. Pour tout ce qui concerne réellement la disponibilité, passez à Pro avant de vous heurter au mur, pas après.

La pièce Vercel ajoute un tour supplémentaire à la boucle : je tape /build dans Discord → Hermes achemine vers Claude Code → Claude Code valide et pousse vers GitHub → Le webhook GitHub déclenche Vercel → Vercel construit et déploie → Hermes interroge l'URL de déploiement de Vercel et renvoie à Discord l'état. De bout en bout, un déploiement propre atterrit en une trentaine de secondes. La première fois que vous regardez cette boucle se fermer sur un projet que vous avez élaboré à partir d'un seul message de discussion, il est difficile de ne pas rire.

L'erreur SQLite : un didacticiel expliquant pourquoi l'architecture sans serveur mord

Passons maintenant à l’échec que j’ai décrit dans l’ouverture, car ce sont les cinq minutes les plus utiles de tout cet article.

Lorsque Claude Code a échafaudé mon outil de suivi des tâches Next.js, il a fait quelque chose de parfaitement raisonnable : il a choisi SQLite pour le stockage. SQLite est la bonne réponse pour presque tous les petits projets Node.js. Il n'a aucune configuration, est livré sous forme de fichier unique et supprime toute l'étape "faire tourner une base de données". Si j'avais déployé cette application sur un Hostinger VPS ou un conteneur de longue durée, cela aurait fonctionné à merveille.

Vercel n'est pas un conteneur de longue durée. Vercel est serverless. Chaque route API s'exécute dans une fonction AWS Lambda, et Lambda a des règles : le système de fichiers est en lecture seule, à l'exception de /tmp, qui est éphémère et n'est pas partagé entre les appels. SQLite doit écrire dans son fichier de base de données. Le fichier de base de données de mon projet résidait dans ./data/tasks.db. Lorsque Lambda a essayé d'ouvrir ce fichier en écriture, le runtime a renvoyé EROFS: read-only file system, ma route API a renvoyé un 500 et le déploiement a « réussi » tout en étant complètement non fonctionnel.

Il s'agit du mode de défaillance spécifique que vous devez internaliser avant de laisser un agent autonome expédier du code aux plates-formes serverless : l'agent ne connaît pas la topologie d'exécution de votre cible à moins que vous ne le lui disiez. Claude Code connaissait Next.js. Il connaissait SQLite. Par défaut, il ne savait pas que ce déploiement Vercel particulier interdisait les écritures du système de fichiers en dehors de /tmp.

Le correctif produit par la boucle de nouvelle tentative de Hermes était correct : remplacez SQLite par un magasin de valeurs-clés géré compatible avec les démarrages à froid de serverless. Vercel KV (ou Upstash Redis, qui le soutient sous le capot) vous offre un stockage persistant qui fonctionne lors des invocations de fonctions, avec un niveau gratuit qui gère confortablement le trafic de démonstration. Claude Code a refactorisé la couche de données en quatre minutes environ, le redéploiement est passé au vert et l'application a fonctionné.

Mais voici la leçon la plus profonde, et c'est celle que j'intègre désormais dans chaque invite Hermes que j'écris pour les déploiements en production : indiquez à l'agent les contraintes d'exécution dès le départ. Mon modèle d'invite par défaut actuel comprend un paragraphe spécifique à la cible pour les projets Vercel :

Déploiement cible : Vercel serverless. Contraintes : aucun système de fichiers n'écrit en dehors de /tmp, délai d'attente de la fonction 60 secondes, pas de travailleurs en arrière-plan de longue durée, préférez Vercel KV ou des services gérés externes pour l'état. Utilisez le runtime Edge lorsque la latence est sensible.

Ce bloc unique de contexte, ajouté à toute tâche ciblée par Vercel, a entièrement éliminé la catégorie d'échec SQLite-on-serverless. L'agent n'est pas médium. Dites-lui ce qu'exige l'environnement de production.

La conversation sur la sécurité La plupart des didacticiels sont ignorés

Je vais être direct ici parce que la version légère « regardez comme c'est facile » de cet article serait irresponsable. Lorsque vous accordez à Hermes un accès complet au terminal sur un VPS — et c'est exactement ce que vous faites lorsque vous le laissez générer Claude Code avec Bash dans sa liste d'outils autorisés — vous créez un agent automatisé qui peut exécuter des commandes shell arbitraires sur une machine qui contient votre jeton GitHub, vos clés de fournisseur de modèles et un accès en écriture à vos déploiements de production.

Trois choses devraient vous faire réfléchir avant d’appuyer sur cet interrupteur.

Premièrement, l’injection rapide est réelle et non théorique. Si votre bot Discord est configuré pour lire les messages et que votre agent a accès au terminal, toute personne pouvant convaincre votre agent d'exécuter une commande malveillante via une entrée contrefaite dispose d'un accès équivalent à la racine à votre VPS. La liste blanche allowed_user_ids dans votre configuration Hermes Discord est votre défense la plus importante ici. Si un inconnu peut envoyer un DM à votre bot, vous avez déjà perdu. Verrouillez durement la chaîne et les listes d'autorisation des utilisateurs.

Deuxièmement, un VPS compromis est un tout compromis. Traitez le VPS de la même manière que vous traiteriez n'importe quel serveur de production. Désactivez le mot de passe SSH (clé uniquement). Activer un pare-feu – ufw enable && ufw allow 22 && ufw default deny incoming est le minimum absolu. Exécutez des mises à niveau sans surveillance pour les correctifs de sécurité. Gardez votre ~/.hermes/secrets.enc sauvegardé crypté et effectuez une rotation des clés tous les trimestres. Rien de tout cela n’est paranoïaque. Il s'agit du coût de base lié à l'exécution d'un agent automatisé capable d'intervenir sur les choses.

Troisièmement, définissez délibérément les outils de l'agent. Le tableau allowed_tools dans ma configuration Hermes est ["Read", "Write", "Edit", "Bash", "Glob", "Grep", "WebSearch"]. Remarquez ce qui n'est pas là : tout ce qui pourrait exfiltrer des données en dehors des canaux approuvés. Je ne donne pas au sub-agent l'accès aux fonctionnalités HTTP POST arbitraires, aux clients de messagerie ou aux CLI du fournisseur de cloud qui ne sont pas pertinents pour le projet. Plus la surface de l'outil est étroite, plus le rayon de souffle est petit en cas de problème.

Pour le travail client en particulier, j'exécute un VPS distinct par projet à haute confiance. Le coût est de douze dollars par mois pour deux boîtes au lieu d'une, et l'isolement signifie qu'un seul projet compromis ne peut pas contaminer les autres. C'est une police d'assurance bon marché.

Le résumé honnête est le suivant : ce workflow confère à un agent AI une puissance opérationnelle significative. Les gains de productivité sont réels, mais ils s'accompagnent de risques qui doivent être gérés activement. Si vous ne souhaitez pas effectuer le travail de sécurité, exécutez Claude Code localement et acceptez les limitations.

Quand l'orchestration Hermes en vaut-elle vraiment la peine ?

Je veux répondre directement parce que c’est la question que l’on me pose le plus souvent, et la réponse n’est pas « toujours ».

L'orchestration Hermes en vaut la peine lorsque vous disposez de deux des éléments suivants :

  • Vous souhaitez piloter le travail de codage depuis votre téléphone ou depuis des applications de messagerie lorsque vous êtes loin de votre machine de développement.
  • Vous exécutez plusieurs sessions d'agent en parallèle (trois projets, quatre projets) et vous avez besoin d'un superviseur qui répartit le travail et signale les échecs en un seul endroit.
  • Vous effectuez des tâches d'agent planifiées ou récurrentes (génération de contenu nocturne, éraflures horaires du marché, surveillance du déploiement) pour lesquelles une exécution Hermes gérée par cron est plus fiable que la réouverture de Claude Code localement.
  • Vous avez besoin d'une gestion des secrets chiffrés parce que vous faites tourner les jetons client, que vous travaillez sur plusieurs organisations GitHub ou que vous êtes paranoïaque à propos de l'hygiène des informations d'identification.
  • Vous créez une automatisation qui doit réagir à des événements externes (webhooks, échecs de déploiement, déclencheurs de planification) sans que vous soyez assis au clavier.

L'orchestration Hermes est excessive lorsque :

  • Vous travaillez sur un seul projet, à votre bureau, avec des horaires de travail raisonnables. Ouvrez simplement Claude Code dans un terminal. La couche d'orchestration ajoute une complexité opérationnelle dont vous ne bénéficierez pas.
  • Vous n'avez aucun des besoins en matière de tâches parallèles ou de contrôle à distance ci-dessus. Le coût de l'infrastructure (VPS, temps passé à apprendre la configuration Hermes, maintenance de la sécurité) dépasse les gains de commodité.
  • Vous êtes au début de votre parcours Claude Code. Apprenez d'abord bien Claude Code, puis superposez Hermes une fois que vous avez identifié les points de friction spécifiques qu'il résoudrait. Ne commencez pas par la couche d'orchestration, vous ne saurez pas quoi lui demander.

Pour moi personnellement, le moment où Hermes a gagné sa place a été lorsque j'ai commencé à exécuter Claude Code sur trois projets clients en parallèle et que j'avais besoin de quelque chose pour me rappeler quelle session était laquelle, acheminer les bons messages Discord vers le bon canal de projet et garder les journaux de déploiement séparés. Avant cela, j'ajoutais simplement des pièces mobiles.

Les chiffres de vitesse, honnêtement

Le didacticiel de David Andre, j'ai appris ce flux de travail, revendique des gains de vitesse de développement de 4 à 8 fois. Je veux être prudent avec ce chiffre car la façon dont vous le mesurez est importante.

Pour les nouveaux projets où le travail consiste à « échafauder une application CRUD et à l'expédier à un niveau gratuit » – oui, l'accélération est réelle. Ce qui me prenait autrefois une soirée de configuration, d'échafaudage et de débogage de déploiement prend désormais moins de quinze minutes entre l'invite et l'URL de travail. Cela équivaut à une compression 10x sur cette catégorie spécifique de travail.

Pour les travaux de projet où le goulot d'étranglement réside dans les décisions de conception, le jugement sur le produit ou la compréhension du domaine, l'accélération est beaucoup plus faible, peut-être de 1,5 à 2 fois. L'agent n'est pas plus rapide que moi pour décider quoi construire. C'est plus rapide pour les parties de frappe et de colle. Lorsque la contrainte se déplace vers la réflexion, la couche d’orchestration n’aide pas beaucoup.

Pour la maintenance et la refactorisation des bases de code existantes, les gains se situent quelque part entre les deux. Peut-être 3x. Plus rapide que manuel, plus lent que greenfield car l'agent doit charger et raisonner sur davantage de contexte existant, et parce que j'examine plus attentivement le code de production.

Le composite, dans l'ensemble des travaux que j'effectue réellement, a représenté une augmentation de débit d'environ 2,5 fois depuis que je suis passé à cette pile. Réel, mais pas le titre 8x.

Où je vais prendre ça ensuite

Le modèle que j'expérimente actuellement est piloté par la voix plutôt que par le texte. Hermes prend en charge le transport de notes vocales Telegram et j'ai commencé à enregistrer des mémos vocaux rapides décrivant ce que je veux construire pendant que je marche ou conduis. Whisper transcrit, Hermes achemine la tâche transcrite vers Claude Code sur le VPS, et au moment où je m'assois devant un vrai clavier, le travail d'échafaudage est terminé. Cela ressemble moins à commander un outil qu’à parler à un ingénieur junior qui ne dort jamais.

J'écrirai celui-là une fois que j'aurai éliminé les aspérités. Pour l'instant, c'est le système. Hermes sur un VPS à 7 $. Claude Code en tant que sub-agent effectuant le codage proprement dit. Discord comme cockpit. GitHub et Vercel comme rails. Jetons cryptés, utilisateurs sur liste blanche, accès limité aux outils. Une boucle de nouvelle tentative qui apprend de ses erreurs.

Si vous comptez essayer cela, commencez petit. Ne câblez pas toute la pile dès le premier jour. Lancez le VPS, installez Hermes, faites fonctionner une seule commande Discord /status. Ajoutez ensuite Claude Code en tant que sub-agent et exécutez une tâche triviale : "créez une application hello-world Express et validez-la". Ajoutez ensuite le déploiement automatique Vercel. Chaque couche possède ses propres modes de défaillance et vous souhaitez les apprendre de manière isolée avant qu'ils ne s'aggravent.

Il y a une question qui mérite d'être posée lorsque vous décidez de construire ceci : dans douze mois, quelle part du travail d'ingénierie actuellement en cours dans votre éditeur sera plutôt stockée dans une fenêtre de discussion ? Mon pari honnête est le suivant : plus que vous ne le pensez. Maîtrisez ce modèle dès maintenant, alors que le prix à payer en cas d'erreur n'est qu'une soirée d'expérimentation. Maîtrisez-le couramment plus tard et vous paierez les frais de scolarité dans les délais impartis aux clients.

Questions fréquemment posées

Que fait Hermes Agent que Claude Code ne peut pas faire seul ?

Hermes gère la couche d'orchestration autour de Claude Code : intégrations de plateforme de messagerie (Discord, Telegram, WhatsApp, Slack), stockage de jetons cryptés, supervision parallèle sub-agent, exécution de tâches planifiées et notifications multiplateformes. Claude Code reste le cerveau de l'ingénierie ; Hermes est la couche des opérations. Pour la description complète de l'architecture, consultez la section ci-dessus expliquant pourquoi Hermes se situe entre vous et Claude Code.

Combien coûte l'exécution de Hermes plus Claude Code sur un VPS ?

Une configuration réalisable coûte environ 7 $ à 12 $ par mois pour le VPS (tarif de lancement de Hostinger KVM 2), plus l'utilisation de votre modèle sur OpenRouter ou la facturation directe Anthropic. Claude Sonnet 4.6 coûte actuellement 3 $ par million de jetons d'entrée et 15 $ par million de jetons de sortie via OpenRouter, donc les coûts par tâche varient en fonction de la complexité. La plupart du temps, je dépense entre 2 $ et 5 $ en frais de modèle sur l'ensemble de la pile Hermes.

Est-il sécuritaire de donner à un agent AI l'accès au terminal sur mon VPS ?

C’est gérable, mais pas sans risque. Verrouillez le canal Discord et les listes autorisées d'utilisateurs, utilisez des jetons GitHub précis limités à chaque référentiel, exécutez un pare-feu, désactivez le mot de passe SSH et effectuez une rotation des clés tous les trimestres. La section sur les compromis de sécurité ci-dessus couvre les contrôles spécifiques que j'exécute. Considérez le VPS comme une infrastructure de production et non comme un bac à sable.

Pourquoi le déploiement de SQLite a-t-il échoué sur Vercel ?

Vercel exécute chaque route API sur AWS Lambda, où le système de fichiers est en lecture seule en dehors de /tmp. SQLite doit écrire dans un fichier de base de données, le runtime renvoie donc EROFS: read-only file system à chaque écriture. Le correctif consiste à utiliser un magasin géré comme Vercel KV ou Upstash Redis. Transmettez toujours les contraintes d'exécution à l'agent dans l'invite initiale - voir la section SQLite pour le modèle d'invite exact que j'utilise actuellement.

Quand dois-je ignorer Hermes et simplement utiliser Claude Code directement ?

Si vous travaillez sur un seul projet à votre bureau pendant les heures de travail, ignorez Hermes : ouvrez simplement Claude Code dans un terminal. La couche d'orchestration s'avère payante lorsque vous avez besoin d'agents parallèles, d'un contrôle à distance basé sur le chat, de tâches planifiées ou d'une gestion multi-jetons cryptée. Pour la plupart des développeurs solo au cours de leur premier mois avec Claude Code, le terminal local est la bonne réponse.

Travaillons ensemble

Vous cherchez à créer des systèmes AI, à automatiser les flux de travail ou à faire évoluer votre infrastructure technologique ? J'aimerais aider.

Coffee cup

Vous avez apprécié cet article ?

Votre soutien m'aide à créer davantage de contenu technique approfondi, d'outils open source et de ressources gratuites pour la communauté des développeurs.

Sujets connexes

Engr Mejba Ahmed

À propos de l'auteur

Engr Mejba Ahmed

Engr. Mejba Ahmed builds AI-powered applications and secure cloud systems for businesses worldwide. With 10+ years shipping production software in Laravel, Python, and AWS, he's helped companies automate workflows, reduce infrastructure costs, and scale without security headaches. He writes about practical AI integration, cloud architecture, and developer productivity.

Discussion

Comments

0

No comments yet

Be the first to share your thoughts

Leave a Comment

Your email won't be published

6  x  4  =  ?

Continuer l'apprentissage

Articles connexes

Tout parcourir

Comments

Leave a Comment

Comments are moderated before appearing.

Learning Resources

Expand Your Knowledge

Accelerate your growth with structured courses, verified certificates, interactive flashcards, and production-ready AI agent skills.

Sample Certificate of Completion

Sample certificate — complete any course to earn yours

Engr Mejba Ahmed

Engr Mejba Ahmed

Claude Code Expert · Online

👋

Hey there!

Quick Actions

WhatsApp Instant reply

Chat on WhatsApp

+880 1723 741224 · Instant reply

Popular Questions

Engr Mejba Ahmed is connected
Engr Mejba Ahmed is typing...
Engr Mejba Ahmed avatar

✉ Want me to follow up? Drop your email

Engr Mejba Ahmed avatar

📞 Connect Directly

Choose how you'd like to reach me

WhatsApp

+880 1723 741224

Email

[email protected]

✓ Details sent! I'll get back to you shortly.

Powered by OpenAI

335+

Blog Posts

25

AI Courses

63

Projects

Services & Expertise

Pricing & Process

Learning & Resources

Connect & Support