Skip to content
Projets

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

Logo de Dinotty

Dinotty

Licence Rust Vue 3 Étoiles GitHub Téléchargements GitHub Issues GitHub Discord

中文 | 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

Claude Code sur mobile Disposition clavier complète avec htop Paramètres de thème

Clavier de raccourcis personnalisé Moniteur système Système de notifications

Tablette en paysage avec disposition niveau desktop

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 :

Démo Split Broadcast

Marque-pages de commandes - Clic droit sur le texte du terminal pour marquer, gestion de groupes, exécution en un clic :

Démo marque-pages de commandes

Connexion SSH et navigateur de fichiers - Client SSH intégré, sessions distantes comme en local, gestion complète des fichiers SFTP :

Démo connexion SSH et navigateur de fichiers

Gestion des workspaces et Mission Control - Isolation multi-workspace, vue d'ensemble Mission Control, bascule rapide :

Démo gestion des workspaces

Système de plugins - Plugins JS hot-reloadable, inclut CC Switch, JSON Formatter et plus :

Démo système de plugins

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 :

Démo système de layout unifié

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

Contributeurs

Merci à toutes les personnes qui ont contribué à Dinotty !

Star History

Star History

Licence

MIT

Explorer des projets similaires