1 points par kimtaeyeong1229 4 시간 전 | 1 commentaires | Partager sur WhatsApp

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 claude dé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.1 recommandé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 -it pour entrer dans un environnement Docker et y lancer claude é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 /proc sur macOS)
  • Pas de multi-utilisateur ni de séparation par compte — outil mono-utilisateur

Les retours et les issues sont les bienvenus.

1 commentaires

 
thnet88 3 시간 전

C’était exactement la fonctionnalité dont j’avais besoin, ça a l’air vraiment bien ! haha