xichan96/dinotty
xichan96/dinotty has 738 GitHub stars and 74 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-11 15:54 UTC. Last push 2026-11-04.
Comment ces chiffres sont mesurés
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
Progression mesurée des étoiles
- in 24h
- 0
- in 7 days
- Historique en cours
- in 15 days
- Historique en cours
- in 1 month
- Historique en cours
Variations nettes sur des périodes qui se chevauchent, pas des totaux quotidiens. Les mesures absentes restent vides. Les étoiles indiquent l’intérêt, pas la qualité.
docs/README.fr.md
Original
Dinotty
中文 | English | Русский | Português | 한국어 | Español | Deutsch | Français
Un terminal pour agents de code.
Lancez Claude Code, opencode, Codex ou OpenClaw sur n'importe quel appareil -- simple, extensible, multi-appareils, ne perd jamais une session.
Une seule session sur mobile · iPad · bureau
Commencez sur l'ordinateur, continuez sur le téléphone, revenez au bureau — tout est exactement là où vous l'aviez laissé. La session survit aux déconnexions et se restaure au rechargement de la page.
Tout est un panneau — assemblez votre terminal comme des blocs
Terminal, plugins, fichiers, SSH et aperçu web sont tous des panneaux. Faites glisser pour composer votre propre espace de travail.
Captures d'écran
Démo desktop
Le client desktop offre une expérience professionnelle comparable à iTerm2 :
Split Broadcast - Division multi-panneaux déplaçable, tapez dans un panneau et exécutez dans tous simultanément :
Marque-pages de commandes - Clic droit sur le texte du terminal pour marquer, gestion de groupes, exécution en un clic :
Connexion SSH et navigateur de fichiers - Client SSH intégré, sessions distantes comme en local, gestion complète des fichiers SFTP :
Gestion des workspaces et Mission Control - Isolation multi-workspace, vue d'ensemble Mission Control, bascule rapide :
Système de plugins - Plugins JS hot-reloadable, inclut CC Switch, JSON Formatter et plus :
Système de layout unifié - Terminal, plugin, navigateur de fichiers et aperçu web sont tous des panneaux ; division déplaçable, déplacement inter-onglets, extraction comme nouvel onglet :
Pourquoi Dinotty ?
Les agents de code basés sur terminal (Claude Code, opencode, Codex, OpenClaw, etc.) sont puissants, mais enfermés dans une seule fenêtre de terminal. Dinotty vous permet de :
- Gérer les agents depuis n'importe quel appareil - travail approfondi sur desktop, scannez un QR code sur votre mobile en quittant votre bureau pour continuer à surveiller et gérer le travail de votre agent sans interruption
- Sync multi-appareils, bascule sans interruption - commencez sur le laptop, continuez sur le mobile ; retournez au laptop et reprenez exactement où vous étiez
- Vérifier la sortie de l'agent directement - diffs de code, pages rendues, fichiers générés, tout visible dans le navigateur intégré
- Ne perdez jamais votre session - déconnexion, verrouillage d'écran, changement d'appareil - revenez et tout est exactement où vous l'avez laissé
Léger - pas un bureau distant
| Dinotty | Bureau distant (VNC/RDP/Parsec) | |
|---|---|---|
| Données transmises | Texte uniquement (JSON, octets) | Pixels complets de l'écran à 30-60 fps |
| Bande passante | ~1–10 KB/s typique | ~1–10 MB/s (100–1000x plus) |
| Compatible données mobiles | ✅ Fonctionne sur 3G/4G sans lag | ❌ Saccadé, latence élevée, consomme des données |
| Tolérance au signal faible | ✅ Reconnexion auto, sans perte de frames | ❌ Écran figé, lag d'entrée |
| Consommation batterie | Faible (rendu texte) | Élevée (décodage vidéo) |
| Adaptation résolution | Texte natif à toute taille | Bitmap mis à l'échelle, flou sur mobile |
| Interaction | Touch natif, clavier personnalisé | Souris simulée, UI desktop minuscule |
Fonctionnalités principales
- Terminal virtuel côté serveur - parser VTE complet, le serveur connaît l'état exact de l'écran, permet la récupération de session et les instantanés d'écran
- Persistance de session - les processus PTY survivent à la déconnexion, reconnexion auto avec backoff exponentiel, rafraîchir la page pour restaurer
- Division de panneaux et multi-onglets - division déplaçable, gestion multi-onglets avec cycle de vie des panneaux piloté par le serveur
- Gestion des workspaces - isolation multi-workspace, vue d'ensemble Mission Control, onglets de plugin à portée workspace
- Mode broadcast - entrée dans un panneau, exécution simultanée dans tous les panneaux, gratuit
- Marque-pages de commandes - clic droit sur le texte du terminal pour marquer, gestion de groupes, exécution en un clic
- Connexion SSH distante - client SSH intégré avec auth par mot de passe/clé, sessions distantes comme en local
- Gestion distante des fichiers (SFTP) - activée automatiquement sur les connexions SSH, navigation/édition/upload/download complet des fichiers
- Gestion multi-serveurs - enregistrer plusieurs serveurs dinotty et basculer entre eux depuis Mission Control
- Layout responsive - portrait empile verticalement, paysage côte à côte ; boutons optimisés touch et redimensionnement des panneaux
- Clavier de raccourcis personnalisable - ajoutez Ctrl/Esc/touches de fonction pour mobile, supporte des séquences escape arbitraires
- Navigateur de fichiers intégré - coloration syntaxique, rendu Markdown, aperçu de documents Office, lecture audio/vidéo
- Indicateurs de changements Git - marques de gouttière pour lignes ajoutées/modifiées/supprimées, diff inline, Stage/Revert
- Aperçu web - reverse proxy intégré pour prévisualiser les dev servers locaux en iframe
- Système de notifications - détection terminal bell/OSC, push via WebSocket, alertes sonores configurables
- Moniteur système - graphiques temps réel CPU/mémoire/réseau
- Système de plugins - plugins JS + pont CLI, hot-reload ; livré avec CC Switch, JSON Formatter, gestionnaire de conversations Claude Code, etc.
- Open API - endpoint HTTP pour contrôle par appareils externes (Stream Deck, Shortcuts, scripts d'automatisation)
- Palette de commandes - lanceur de commandes à accès rapide
- App desktop - client natif optionnel basé sur Tauri
Différenciateurs clés
- Terminal virtuel côté serveur - pas un pipe WebSocket-vers-PTY ; le PTY survit à la déconnexion, rafraîchir la page pour restaurer la session
- Sync multi-appareils - sync basée navigateur, travail approfondi sur desktop, prise de contrôle depuis le mobile
- Transport léger texte uniquement - ~1-10 KB/s, fluide sur 3G/4G, 100-1000x moins de bande passante que le bureau distant
- Environnement autonome - navigateur de fichiers intégré, aperçu web, changements Git, SSH/SFTP, système de plugins
- Gratuit et open source - auto-hébergé, sans abonnement, sans frais de relais
Voir comparaison avec d'autres solutions pour plus de détails.
Installation
Téléchargez l'installateur ou le binaire pour votre plateforme depuis GitHub Releases :
| Plateforme | Format | Notes |
|---|---|---|
| macOS | .dmg |
Ouvrir et glisser dans Applications |
| Linux | .deb |
sudo dpkg -i dinotty_*.deb |
| Windows | .exe / build depuis source |
Lancez dinotty-server.exe depuis PowerShell, ou compilez depuis source |
Vous pouvez aussi compiler depuis source, voir « Démarrage rapide » ci-dessous.
Note macOS : L'app n'étant pas signée, macOS peut afficher « Dinotty » est endommagé et ne peut pas être ouvert. Exécutez la commande suivante après l'installation pour lever la restriction :
xattr -cr /Applications/Dinotty.app
Installation Linux en une ligne :
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"
Démarrage Linux :
# systemd
systemctl start dinotty
systemctl enable dinotty # auto-démarrage au boot
# Conteneur Docker
nohup dinotty-server &
Démarrage Windows :
# PowerShell
.\dinotty-server.exe -p 8999
# Optionnel : surcharger le shell par défaut avant l'auto-détection
$env:DINOTTY_SHELL = "pwsh.exe"
.\dinotty-server.exe
Sur Windows, le shell par défaut est détecté dans cet ordre : DINOTTY_SHELL -> pwsh.exe -> powershell.exe -> %ComSpec% / cmd.exe.
Le port par défaut est 8999. Après démarrage, visitez http://<votre-ip>:8999. Utilisez -p pour spécifier un port personnalisé :
dinotty-server -p 3000
Démarrage rapide
# Cloner le repo (shallow clone recommandé - plus rapide et plus petit)
git clone --depth 1 --single-branch -b dev [email protected]:xichan96/dinotty.git
cd dinotty
# Build du frontend
cd frontend && pnpm install && pnpm run build && cd ..
# Lancer le serveur
cargo run
Équivalent 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
Ouvrez http://127.0.0.1:8999 dans votre navigateur.
# Backend avec logging debug
RUST_LOG=debug cargo run
# Type-check du frontend
cd frontend && npx vue-tsc --noEmit
# Logging debug Windows PowerShell
$env:RUST_LOG = "debug"
cargo run
Stack technique
| Couche | Technologie |
|---|---|
| Backend | Rust, Axum 0.7, Tokio, portable-pty, vte, russh, russh-sftp |
| Frontend | Vue 3, TypeScript, Vite, xterm.js 5 |
| Desktop | Tauri |
Écrit en Rust · Binaire unique · Zéro dépendance - Exécute une machine d'états VT complète sur le serveur, pas un proxy de transfert de pipes, donc les sessions survivent à la déconnexion.
Plus de documentation
- Comparaison - différences vs ttyd/gotty/Wetty et autres solutions remote de AI coding
- Guide de déploiement - systemd, Docker, exécution native Windows, build cross-platform, configuration
- Guide de release - gestion unifiée des versions, PRs de version, promotion
devversmain, tags et GitHub Releases - Éditeur de fichiers - panneaux divisés, édition multi-curseur, sync cross-file de Cursor Group
- Système de notifications - HTTP API, intégration Claude Code, Open API
- Système de plugins - installation, manifeste, API, plugins intégrés
- Développement de plugins - guide complet de développement de plugins
- API presse-papiers hôte - endpoint sensible authentifié utilisé par le paste hôte mobile
- MCP Server - serveur MCP JSON-RPC intégré pour que les assistants IA opèrent des sessions terminal
- Système de permissions par token - contrôle d'accès fine-grained multi-token basé sur capabilities
- Event Bus - bus d'événements global pour le dispatch inter-modules
- Audit Log et Webhook - tracking d'usage API et notifications externes
- Contribuer - stratégie de branches, convention de commits, style de code
Contributeurs
Merci à toutes les personnes qui ont contribué à Dinotty !
Star History
Licence
MIT
Explorer des projets similaires
codecrafters-io/build-your-own-x
Maîtrisez la programmation en recréant de zéro vos technologies préférées.
561,883 étoilespublic-apis/public-apis
Une liste collective d'API gratuites
498,256 étoilesmorluto/rea
Rétro-ingénierie de n'importe quoi avec des agents, du comportement des applications jusqu'aux binaires natifs.
452,827 étoilesopenclaw/openclaw
L'IA qui fait vraiment les choses. Tout système d'exploitation, toute plateforme. À la manière du homard. 🦞
394,365 étoiles