Un terminal web multi-session pour Claude CLI qui survit même quand on referme son laptop
(github.com/kimtaeyeong1229)J’ai créé un terminal web dans lequel plusieurs sessions Claude CLI peuvent tourner en même temps dans des onglets du navigateur.
Les sessions s’exécutent côté serveur dans des PTY, et le navigateur ne fait qu’en afficher l’écran. Résultat : le travail continue même si vous fermez le navigateur ou refermez votre laptop. Même après avoir éteint puis rallumé le PC, les sessions sont restaurées automatiquement via --resume.
Principales caractéristiques
- Multi-session — interface à onglets/barre latérale pour basculer et gérer N instances de Claude CLI sur un seul écran
- Persistance des sessions — sauvegarde automatique dans
~/.claude-web-terminal/sessions.json, restauration automatique au redémarrage du serveur/PC - Conteneurs Docker — possibilité de choisir un dossier non seulement sur l’hôte mais aussi dans un conteneur en cours d’exécution, puis d’y lancer Claude (
docker exec -it -w <path> <container> claude) - Détection de processus Claude externes — connexion à un
claudedéjà lancé dans un autre terminal (Linux/proc) - Restauration du scrollback à la reconnexion — buffer de 200KB
- Frontend en un seul fichier — Vanilla HTML/CSS/JS, XTerm.js + environ 2 400 lignes
- Backend en un seul fichier — Python aiohttp + PTY + WebSocket, environ 500 lignes
Stack
- Backend : Python 3.10+ / aiohttp / PTY / WebSocket
- Frontend : Vanilla HTML·CSS·JS, XTerm.js 5.5, FitAddon, WebLinksAddon
- Authentification : aucune — liaison à
127.0.0.1recommandée (en cas d’exposition sur le LAN : reverse proxy + basic auth)
Lancement automatique
- macOS : LaunchAgent plist (modèle inclus dans le README)
- Linux : service utilisateur systemd +
loginctl enable-linger
Installation en une ligne
git clone https://github.com/kimtaeyeong1229/claude-web-terminal
cd claude-web-terminal && pip install -r requirements.txt
python3 server.py --host 127.0.0.1 --port 8080
Dans le navigateur : http://127.0.0.1:8080.
Pourquoi je l’ai créé
- J’aime beaucoup Claude CLI et je l’utilise souvent, mais ouvrir N fenêtres de terminal est pénible
- Je n’aimais pas voir les sessions se couper quand on referme son laptop ou quand la connexion ssh tombe → séparation via des PTY côté serveur
- La procédure
docker exec -itpour entrer dans un environnement Docker et y lancerclaudeétait fastidieuse à répéter → intégrée directement dans l’interface
Limites
- Pas d’authentification — pensé pour un usage local ou sur un réseau de confiance
- La détection des processus externes fonctionne uniquement sous Linux (pas de
/procsur macOS) - Pas de multi-utilisateur ni de séparation par compte — outil mono-utilisateur
Les retours et les issues sont les bienvenus.
1 commentaires
C’était exactement la fonctionnalité dont j’avais besoin, ça a l’air vraiment bien ! haha