claudeVPS — Claude Code sur un serveur, avec tout ce qui lui manque
Domaine : IA / Agents / Administration système / Auto-hébergement
Période : 2026 - aujourd'hui
Client : Projet personnel — infrastructure de l'atelier Lab 77

Contexte
Je travaille au quotidien avec des agents IA : ils gèrent mon ERP, mes notes, mes publications, et même l'infrastructure de mes serveurs. Je voulais que ces agents tournent en permanence sur un serveur, et pouvoir leur parler depuis mon téléphone, où que je sois.
Deux outils existaient, chacun avec ses limites :
- Claude Desktop est confortable : interfaces pour les connecteurs, les extensions, les tâches planifiées. Mais il tourne sur un ordinateur de bureau, pas sur un serveur sans écran.
- OpenClaw, une passerelle d'agents tierce et auto-hébergée, m'apportait plusieurs agents, une mémoire long terme, des canaux de discussion et des automatisations. Mais elle réutilise l'abonnement Claude d'une manière que les conditions d'Anthropic encadrent de plus en plus strictement : un risque que je ne voulais plus prendre.
Restait Claude Code, l'outil officiel d'Anthropic en ligne de commande. Il est puissant, il fonctionne sur un serveur, et avec Remote Control on peut piloter ses sessions depuis l'app Claude. Mais sur un serveur sans écran, il lui manque presque tout le confort de Desktop.
Problème
Objectif : rester 100 % sur les outils officiels d'Anthropic et dans le cadre de l'abonnement, sans passerelle tierce ni chat fait maison, tout en retrouvant ce que Desktop et OpenClaw apportaient.
Les lacunes de Claude Code sur un serveur :
- Aucune interface pour gérer les serveurs MCP, les plugins, les skills et les agents : tout se fait dans des fichiers
- Pas de vraies tâches planifiées : les boucles et rappels sont liés à une session et expirent
- Rien ne survit à un redémarrage du serveur
- Remote Control exige un vrai terminal, absent d'un service en arrière-plan
- Pas de vue d'ensemble des sessions, pas de terminal accessible depuis un navigateur
- Pas de mémoire partagée entre les sessions et les projets, pas de supervision du serveur
Solution
claudeVPS ne remplace pas Claude Code : il ajoute autour de lui la couche d'expérience qui manque. Le principe : trois portes, chacune avec son rôle.
- Porte 1 — les apps officielles Claude (mobile, desktop, web) pour discuter avec les sessions, via Remote Control. Pas de chat maison, par choix.
- Porte 2 — un portail web d'administration, accessible uniquement par VPN, qui pilote les outils officiels et donne une interface à tout le reste.
- Porte 3 — le terminal SSH, pour l'administration avancée.
Ce que Claude Desktop avait et que claudeVPS rend au serveur
| Besoin | Claude Code seul sur un serveur | Ce qu'apporte claudeVPS |
|---|---|---|
| Serveurs MCP | Fichiers JSON et commandes | Onglet MCP : formulaire guidé ou JSON, trois familles affichées (locaux, connecteurs du compte, apportés par un plugin) |
| Plugins | Pas de gestionnaire sur un serveur | Onglet Plugins : catalogue officiel, installation, activation, composants embarqués |
| Skills et agents | Fichiers Markdown à la main | Onglet Skills & Agents : création et édition, avec l'origine de chaque skill |
| Tâches planifiées | Boucles liées à une session, qui expirent | Onglet Cron : le prompt est injecté dans une session vivante, au rythme voulu |
| Persistance | Tout s'arrête au redémarrage | Services systemd utilisateur, relance automatique, session de secours au démarrage |
| Sessions multiples | Aucune vue d'ensemble | Onglet Sessions : création, santé et activité, arrêt, lien direct vers l'app |
| Terminal | Seulement en SSH | Terminal web dans le navigateur, attaché aux sessions |
| Mémoire | Par projet, cloisonnée | Synchronisation vers un graphe de connaissances Cognee, consultable par toutes les sessions |
| Supervision | Aucune | Onglet Monitoring multi-serveurs, alertes, mises à jour Docker validées à la main |
Ce qu'OpenClaw apportait, en version 100 % officielle
| OpenClaw | Équivalent dans claudeVPS |
|---|---|
| Plusieurs agents spécialisés | Plusieurs sessions Claude Code et des sous-agents, gérés dans le portail |
| Canaux de discussion (Mattermost, Matrix, webchat) | Les apps officielles Claude, via Remote Control |
| Mémoire long terme | Mémoire native de Claude Code + graphe Cognee synchronisé |
| Réveils périodiques (heartbeat) | Cron qui injecte un prompt dans une session vivante |
| Automatisations (mails, recherches) | Skills et outils en ligne de commande locaux, partagés entre les moteurs |
| Agent sur un modèle GPT | Codex CLI comme second moteur, géré dans le même portail et accessible depuis l'app ChatGPT |
| Observabilité | Onglets Monitoring et Logs |
Résultat : OpenClaw n'est plus nécessaire. Le portail permet de le neutraliser en un clic, en attendant sa suppression.
Comment ça marche
- Chaque session Claude Code tourne dans un tmux, qui lui fournit le terminal dont Remote Control a besoin pour apparaître dans l'app.
- Des services systemd utilisateur relancent tout au démarrage et surveillent les sessions, avec une limite de tentatives pour éviter les boucles.
- Une session « system » de secours démarre la première et ne dépend de rien d'autre : c'est elle qui répare le reste.
- Le portail (SvelteKit) appelle uniquement les commandes officielles
claudeetcodex, tmux, crontab et les fichiers de configuration. Il ne lance jamais de modèle de lui-même : l'IA ne tourne que lorsqu'on le demande. - La mémoire repose sur trois étages : un fichier de contexte par projet, un instantané de reprise après incident et les mémoires de Claude Code, synchronisés vers Cognee. Les chantiers sont suivis dans des issues GitHub.
- Le tout est trilingue (français, anglais, espagnol), sous licence MIT, avec un script d'installation : un ami l'a déjà déployé sur un autre hébergeur.
Technologies
- Claude Code (Remote Control, sous-agents, skills, plugins, MCP) et Codex CLI
- Portail SvelteKit 5, TypeScript, Node, xterm.js pour le terminal web
- Linux, systemd, tmux, cron, WireGuard, Caddy, Docker
- Cognee (graphe de connaissances), Prometheus, Grafana, Loki
- Serveurs hébergés en Suisse chez Infomaniak
Leçons apprises
- « Envoyé » ne veut pas dire « reçu ». Un outil de messagerie entre sessions peut répondre « succès » alors que le message est perdu. La seule preuve est côté destinataire. Pour ce qui compte : un fichier déposé.
- « Connecté » ne veut pas dire « vivant ». Une session peut s'afficher connectée sans pouvoir travailler. Le bon indicateur est la présence de son processus de travail.
- Chaque réveil d'un agent coûte. Un relais qui appelait un modèle à chaque message a été retiré. Principe : aucune exécution d'IA déclenchée par le produit lui-même.
- Le natif ne survit pas toujours au redémarrage. Pour du « toujours allumé », il faut sa propre couche de services et de relance.
- Le filet de sécurité ne doit dépendre de rien de ce qu'il est censé réparer.
- Dupliquer une configuration la fait dériver. Des copies par projet ont gardé pendant des semaines un service résilié. Une seule source de vérité.
- Une métrique vaut mieux qu'un message. Deux conclusions fausses en une soirée, faute d'avoir regardé la courbe. Et une note d'incident périmée est pire que pas de note.
- Une valeur absente s'affiche « — », jamais 0 : un faux zéro se lit comme une mesure.
Résultat
Livrable :
- Des sessions Claude Code toujours disponibles sur un serveur, pilotables depuis l'app Claude sur téléphone ou ordinateur
- Un portail d'administration de 12 onglets, en service au quotidien
- Deux moteurs, Claude Code et Codex, dans la même interface
- La passerelle tierce OpenClaw remplacée par des briques officielles
Ce projet démontre :
- La capacité à combler les manques d'un outil sans le contourner : tout passe par les commandes officielles
- Une architecture souveraine et résiliente : auto-hébergée, persistante, auto-réparatrice
- Une pratique quotidienne du travail avec des agents IA, et des règles tirées des incidents réels
Les fonctions de Claude Code sur lesquelles repose claudeVPS, comme Remote Control, sont récentes et peuvent évoluer.
Tags : lab, Claude Code, agents IA, Remote Control, auto-hébergement, VPS, MCP, OpenClaw, Codex, SvelteKit