xichan96/dinotty
xichan96/dinotty has 738 GitHub stars and 74 forks. Star changes are not measured yet. Last checked 2026-11-10 00:24 UTC. Last push 2026-11-04.
Multi-device terminal server for AI coding agents. Server-side VTE, session persistence, file browser, web preview, plugin system. Self-hosted.
What you can do
- Server-side virtual terminal — full VTE parser, server knows exact screen state, enables session recovery & screen snapshots
- Session persistence — PTY processes survive disconnection, auto-reconnect with exponential backoff, refresh page to restore
- Split pane & multi-tab — draggable split, multi-tab management with server-led pane lifecycle
- Workspace management — multi-workspace isolation, Mission Control overview, workspace-scoped plugin tabs
Crecimiento de estrellas medido
- in 24h
- Actualización retrasada
- in 7 days
- Actualización retrasada
- in 15 days
- Actualización retrasada
- in 1 month
- Actualización retrasada
Cambios netos en períodos que se solapan, no totales diarios. Los datos no disponibles se dejan en blanco. Las estrellas indican interés, no calidad.
docs/README.es.md
Original
Dinotty
中文 | English | Русский | Português | 한국어 | Español | Deutsch | Français
Un terminal para agentes de código.
Ejecuta Claude Code, opencode, Codex u OpenClaw en cualquier dispositivo -- simple, extensible, multidispositivo, nunca pierde una sesión.
Una sesión en móvil · iPad · escritorio
Empiezas en el ordenador, continúas en el móvil y vuelves al escritorio — todo sigue exactamente donde lo dejaste. La sesión sobrevive a las desconexiones y se restaura al recargar la página.
Todo es un panel — monta tu terminal como bloques de construcción
Terminal, plugins, archivos, SSH y vista previa web son todos paneles. Arrastra para armar tu propio espacio de trabajo.
Capturas de pantalla
Demostración de escritorio
El cliente de escritorio ofrece una experiencia profesional comparable a iTerm2:
Split Broadcast - División multinpanel arrastrable, escribe en un panel y ejecuta en todos simultáneamente:
Marcadores de comandos - Clic derecho en el texto del terminal para marcar, gestión de grupos, ejecución con un clic:
Conexión SSH y explorador de archivos - Cliente SSH integrado, sesiones remotas como si fueran locales, gestión completa de archivos por SFTP:
Gestión de workspaces y Mission Control - Aislamiento multi-workspace, vista general de Mission Control, cambio rápido:
Sistema de plugins - Plugins JS con recarga en caliente, incluye CC Switch, JSON Formatter y más:
Sistema unificado de layout - Terminal, plugin, explorador de archivos y vista previa web son todos paneles; división arrastrable, movimiento entre pestañas, extracción como nueva pestaña:
¿Por qué Dinotty?
Los agentes de código basados en terminal (Claude Code, opencode, Codex, OpenClaw, etc.) son potentes, pero están encerrados en una sola ventana de terminal. Dinotty te permite:
- Gestionar agentes desde cualquier dispositivo - trabajo profundo en escritorio, escanea un código QR en tu móvil al salir del escritorio para seguir monitorizando y gestionando el trabajo de tu agente sin interrupciones
- Sincronización multidispositivo, cambio sin interrupciones - empieza en el portátil, continúa en el móvil; vuelve al portátil y retoma exactamente donde lo dejaste
- Verificar la salida del agente directamente - diffs de código, páginas renderizadas, archivos generados, todo visible en el navegador integrado
- Nunca pierdas tu sesión - desconexión, bloqueo de pantalla, cambio de dispositivo - vuelve y todo está exactamente donde lo dejaste
Ligero - no es un escritorio remoto
| Dinotty | Escritorio remoto (VNC/RDP/Parsec) | |
|---|---|---|
| Datos transmitidos | Solo texto (JSON, bytes) | Píxeles completos de pantalla a 30-60 fps |
| Ancho de banda | ~1–10 KB/s típico | ~1–10 MB/s (100–1000x más) |
| Compatible con datos móviles | ✅ Funciona en 3G/4G sin lag | ❌ Entrecortado, alta latencia, consume datos |
| Tolerancia a señal débil | ✅ Reconexión automática, sin pérdida de frames | ❌ Pantalla congelada, lag de entrada |
| Consumo de batería | Bajo (renderizado de texto) | Alto (decodificación de video) |
| Adaptación de resolución | Texto nativo a cualquier tamaño | Bitmap escalado, borroso en móvil |
| Interacción | Touch nativo, teclado personalizado | Ratón simulado, UI de escritorio diminuta |
Características principales
- Terminal virtual en servidor - parser VTE completo, el servidor conoce el estado exacto de la pantalla, permite recuperación de sesión e instantáneas de pantalla
- Persistencia de sesión - los procesos PTY sobreviven a desconexiones, reconexión automática con backoff exponencial, refresca la página para restaurar
- División de paneles y multi-pestañas - división arrastrable, gestión multi-pestaña con ciclo de vida de panel liderado por servidor
- Gestión de workspaces - aislamiento multi-workspace, vista general de Mission Control, pestañas de plugin con scope de workspace
- Modo broadcast - entrada en un panel, ejecución simultánea en todos los paneles, gratis
- Marcadores de comandos - clic derecho en texto del terminal para marcar, gestión de grupos, ejecución con un clic
- Conexión SSH remota - cliente SSH integrado con auth por contraseña/clave, sesiones remotas como locales
- Gestión remota de archivos (SFTP) - se activa automáticamente en conexiones SSH, navegación/edición/subida/descarga completa de archivos
- Gestión multiservidor - registra varios servidores dinotty y cambia entre ellos desde Mission Control
- Diseño responsivo - vertical apila en pilas, horizontal lado a lado; botones optimizados para touch y redimensionado de paneles
- Teclado personalizable de atajos - añade Ctrl/Esc/teclas de función para móvil, soporta secuencias escape arbitrarias
- Explorador de archivos integrado - resaltado de código, renderizado Markdown, vista previa de documentos Office, reproducción de audio/vídeo
- Indicadores de cambios Git - marcas en el gutter para líneas añadidas/modificadas/eliminadas, diff inline, Stage/Revert
- Vista previa web - proxy inverso integrado para previsualizar servidores de desarrollo locales en iframe
- Sistema de notificaciones - detección de terminal bell/OSC, push por WebSocket, alertas sonoras configurables
- Monitor del sistema - gráficas en tiempo real de CPU/memoria/red
- Sistema de plugins - plugins JS + puente CLI, recarga en caliente; incluye CC Switch, JSON Formatter, gestor de conversaciones de Claude Code, etc.
- Open API - endpoint HTTP para control desde dispositivos externos (Stream Deck, Shortcuts, scripts de automatización)
- Paleta de comandos - lanzador de comandos de acceso rápido
- App de escritorio - cliente nativo opcional basado en Tauri
Diferenciadores clave
- Terminal virtual en servidor - no es un pipe WebSocket-a-PTY; el PTY sobrevive a la desconexión, refresca la página para restaurar la sesión
- Sincronización multidispositivo - sincronización basada en navegador, trabajo profundo en escritorio, toma el control desde el móvil
- Transporte ligero solo texto - ~1-10 KB/s, fluido en 3G/4G, 100-1000x menos ancho de banda que escritorio remoto
- Entorno autónomo - explorador de archivos integrado, vista previa web, cambios Git, SSH/SFTP, sistema de plugins
- Gratis y de código abierto - autohospedado, sin suscripción, sin tasas de relay
Ver comparación con otras soluciones para más detalles.
Instalación
Descarga el instalador o binario para tu plataforma desde GitHub Releases:
| Plataforma | Formato | Notas |
|---|---|---|
| macOS | .dmg |
Abrir y arrastrar a Applications |
| Linux | .deb |
sudo dpkg -i dinotty_*.deb |
| Windows | .exe / build desde fuente |
Ejecuta dinotty-server.exe desde PowerShell, o compila desde fuente |
También puedes compilar desde fuente, ver "Inicio rápido" más abajo.
Nota para macOS: Como la app no está firmada, macOS puede mostrar "Dinotty" está dañado y no se puede abrir. Ejecuta el siguiente comando después de la instalación para quitar la restricción:
xattr -cr /Applications/Dinotty.app
Instalación en una línea en Linux:
VERSION=$(curl -s https://api.github.com/repos/xichan96/dinotty/releases/latest | sed -n 's/.*"tag_name": *"\([^"]*\)".*/\1/p' | sed 's/^v//') && curl -LO "https://github.com/xichan96/dinotty/releases/download/v${VERSION}/dinotty-server_${VERSION}-1_amd64.deb" && sudo dpkg -i "dinotty-server_${VERSION}-1_amd64.deb"
Inicio en Linux:
# systemd
systemctl start dinotty
systemctl enable dinotty # auto-inicio en arranque
# Contenedor Docker
nohup dinotty-server &
Inicio en Windows:
# PowerShell
.\dinotty-server.exe -p 8999
# Opcional: sobreescribir el shell por defecto antes de la autodetección
$env:DINOTTY_SHELL = "pwsh.exe"
.\dinotty-server.exe
En Windows, el shell por defecto se detecta en este orden: DINOTTY_SHELL -> pwsh.exe -> powershell.exe -> %ComSpec% / cmd.exe.
El puerto por defecto es 8999. Después de iniciar, visita http://<tu-ip>:8999. Usa -p para especificar un puerto personalizado:
dinotty-server -p 3000
Inicio rápido
# Clonar repo (shallow clone recomendado - más rápido y pequeño)
git clone --depth 1 --single-branch -b dev [email protected]:xichan96/dinotty.git
cd dinotty
# Compilar frontend
cd frontend && pnpm install && pnpm run build && cd ..
# Ejecutar servidor
cargo run
Equivalente en Windows PowerShell:
git clone --depth 1 --single-branch -b dev [email protected]:xichan96/dinotty.git
cd dinotty
cd frontend
pnpm install
pnpm run build
cd ..
cargo run
Abre http://127.0.0.1:8999 en tu navegador.
# Backend con logging de depuración
RUST_LOG=debug cargo run
# Type-check del frontend
cd frontend && npx vue-tsc --noEmit
# Logging de depuración en Windows PowerShell
$env:RUST_LOG = "debug"
cargo run
Stack tecnológico
| Capa | Tecnología |
|---|---|
| Backend | Rust, Axum 0.7, Tokio, portable-pty, vte, russh, russh-sftp |
| Frontend | Vue 3, TypeScript, Vite, xterm.js 5 |
| Escritorio | Tauri |
Escrito en Rust · Un solo binario · Cero dependencias - Ejecuta una máquina de estados VT completa en el servidor, no un proxy que reenvía pipes, así las sesiones sobreviven a la desconexión.
Más documentación
- Comparación - diferencias vs ttyd/gotty/Wetty y otras soluciones remotas de AI coding
- Guía de despliegue - systemd, Docker, ejecución nativa en Windows, build multiplataforma, configuración
- Guía de release - gestión unificada de versiones, PRs de versión, promoción de
devamain, tags y GitHub Releases - Editor de archivos - paneles divididos, edición multicursor, sincronización cross-file de Cursor Group
- Sistema de notificaciones - HTTP API, integración con Claude Code, Open API
- Sistema de plugins - instalación, manifiesto, API, plugins integrados
- Desarrollo de plugins - guía completa de desarrollo de plugins
- API del portapapeles del host - endpoint sensible autenticado usado por el pegado desde host móvil
- MCP Server - servidor MCP JSON-RPC integrado para que asistentes IA operen sesiones de terminal
- Sistema de permisos por token - control de acceso fine-grained multi-token basado en capabilities
- Event Bus - bus de eventos global para dispatch entre módulos
- Audit Log y Webhook - tracking de uso de API y notificaciones externas
- Contribuir - estrategia de ramas, convención de commits, estilo de código
Contribuidores
¡Gracias a todas las personas que han contribuido a Dinotty!
Star History
Licencia
MIT
Explorar proyectos relacionados
codecrafters-io/build-your-own-x
Domina la programación recreando desde cero tus tecnologías favoritas.
561,689 estrellaspublic-apis/public-apis
Una lista colectiva de API gratuitas
498,082 estrellasmorluto/rea
Ingeniería inversa de cualquier cosa con agentes, desde el comportamiento de la aplicación hasta los binarios nativos.
451,080 estrellasopenclaw/openclaw
La IA que de verdad hace las cosas. Cualquier sistema operativo y cualquier plataforma. Al estilo langosta. 🦞
394,313 estrellas