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](getting-started/comparison.en.md) pour plus de détails.
## Installation
Téléchargez l'installateur ou le binaire pour votre plateforme depuis [GitHub Releases](https://github.com/xichan96/dinotty/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 :
```bash
xattr -cr /Applications/Dinotty.app
```
**Installation Linux en une ligne** :
```bash
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** :
```bash
# systemd
systemctl start dinotty
systemctl enable dinotty # auto-démarrage au boot
# Conteneur Docker
nohup dinotty-server &
```
**Démarrage Windows** :
```powershell
# 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://:8999`. Utilisez `-p` pour spécifier un port personnalisé :
```bash
dinotty-server -p 3000
```
## Démarrage rapide
```bash
# Cloner le repo (shallow clone recommandé - plus rapide et plus petit)
git clone --depth 1 --single-branch -b dev git@github.com:xichan96/dinotty.git
cd dinotty
# Build du frontend
cd frontend && pnpm install && pnpm run build && cd ..
# Lancer le serveur
cargo run
```
Équivalent Windows PowerShell :
```powershell
git clone --depth 1 --single-branch -b dev git@github.com: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.
```bash
# Backend avec logging debug
RUST_LOG=debug cargo run
# Type-check du frontend
cd frontend && npx vue-tsc --noEmit
```
```powershell
# 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](getting-started/comparison.en.md) - différences vs ttyd/gotty/Wetty et autres solutions remote de AI coding
- [Guide de déploiement](getting-started/deployment.en.md) - systemd, Docker, exécution native Windows, build cross-platform, configuration
- [Guide de release](getting-started/releasing.en.md) - gestion unifiée des versions, PRs de version, promotion `dev` vers `main`, tags et GitHub Releases
- [Éditeur de fichiers](features/file-editor.en.md) - panneaux divisés, édition multi-curseur, sync cross-file de Cursor Group
- [Système de notifications](features/notifications.en.md) - HTTP API, intégration Claude Code, Open API
- [Système de plugins](plugins/plugins.en.md) - installation, manifeste, API, plugins intégrés
- [Développement de plugins](plugins/plugin-development.md) - guide complet de développement de plugins
- [API presse-papiers hôte](api/clipboard-api.md) - endpoint sensible authentifié utilisé par le paste hôte mobile
- [MCP Server](api/mcp-server.md) - serveur MCP JSON-RPC intégré pour que les assistants IA opèrent des sessions terminal
- [Système de permissions par token](internals/token-system.md) - contrôle d'accès fine-grained multi-token basé sur capabilities
- [Event Bus](internals/event-bus.md) - bus d'événements global pour le dispatch inter-modules
- [Audit Log et Webhook](internals/audit-webhook.md) - tracking d'usage API et notifications externes
- [Contribuer](getting-started/contributing.en.md) - stratégie de branches, convention de commits, style de code
## Contributeurs
Merci à toutes les personnes qui ont contribué à Dinotty !
## Star History

## Licence
MIT