1 puntos por kimtaeyeong1229 4 시간 전 | 1 comentarios | Compartir por WhatsApp

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 claude ya 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 -it para lanzar claude → 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

 
thnet88 3 시간 전

Era justo la función que necesitaba, ¡me parece genial! haha