Terminal web multisesión para Claude CLI que no se cae aunque cierres la laptop
(github.com/kimtaeyeong1229)Creé un terminal web que ejecuta varias sesiones de Claude CLI al mismo tiempo en pestañas del navegador.
Las sesiones corren como PTY en el servidor y el navegador solo muestra la pantalla, así que el trabajo sigue aunque cierres el navegador o bajes la tapa de la laptop. Incluso si apagas y vuelves a encender la PC, la sesión se restaura automáticamente con --resume.
Características principales
- Multisesión — con UI de pestañas/barra lateral para cambiar y administrar N instancias de Claude CLI en una sola pantalla
- Persistencia de sesiones — guardado automático en
~/.claude-web-terminal/sessions.json, con restauración automática al reiniciar el servidor o la PC - Contenedores Docker — además del host, permite elegir una carpeta dentro de un contenedor en ejecución y lanzar Claude ahí (
docker exec -it -w <path> <container> claude) - Detección de procesos externos de Claude — se conecta a procesos
claudeya abiertos en otras terminales (Linux/proc) - Restauración del scrollback al reconectar — buffer de 200KB
- Frontend en un solo archivo — Vanilla HTML/CSS/JS, XTerm.js + unas 2,400 líneas
- Backend en un solo archivo — Python aiohttp + PTY + WebSocket, unas 500 líneas
Stack
- Backend: Python 3.10+ / aiohttp / PTY / WebSocket
- Frontend: Vanilla HTML·CSS·JS, XTerm.js 5.5, FitAddon, WebLinksAddon
- Autenticación: no tiene — se recomienda enlazar a 127.0.0.1 (si se expone en LAN, usar reverse proxy + basic auth)
Ejecución automática
- macOS: LaunchAgent plist (README incluye una plantilla)
- Linux: servicio de usuario de systemd +
loginctl enable-linger
Instalación en una línea
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
En el navegador, http://127.0.0.1:8080.
Motivo de creación
- Me gusta Claude CLI y lo uso seguido, pero es incómodo abrir N ventanas de terminal
- No me gusta que se muera al cerrar la laptop o que la sesión se corte si se cae la conexión SSH → lo separé con PTY del lado del servidor
- Cada vez daba flojera entrar al entorno Docker y hacer
docker exec -itpara lanzarclaude→ lo integré en la UI
Limitaciones
- No tiene autenticación — asume uso local o en una red de confianza
- La detección de procesos externos solo funciona en Linux (macOS no tiene
/proc) - No hay separación multiusuario ni por cuentas — es una herramienta para un solo usuario
Se agradecen comentarios e issues.
1 comentarios
Era justo la función que necesitaba, ¡me parece genial! haha