Dinotty Logo

Dinotty

Lizenz Rust Vue 3 GitHub Stars GitHub Downloads GitHub Issues Discord

中文 | English | Русский | Português | 한국어 | Español | Deutsch | Français

--- Ein Terminal für Coding-Agenten. Claude Code, opencode, Codex oder OpenClaw auf jedem Gerät -- schlicht, erweiterbar, geräteübergreifend, verliert nie eine Session. **Eine Session für Handy · iPad · Desktop** Am Computer angefangen, auf dem Handy weiter, zurück am Desktop — alles ist wie vorher. Die Session überlebt Trennungen und wird beim Neuladen wiederhergestellt. **Alles ist ein Pane — baue dein Terminal wie aus Bauklötzen** Terminal, Plugins, Dateien, SSH und Web-Vorschau sind alles Panes. Ziehe sie und stelle deinen eigenen Arbeitsbereich zusammen. ## Screenshots

Claude Code auf dem Handy Vollständige Tastaturbelegung mit htop Theme-Einstellungen

Custom Shortcut-Tastatur Systemmonitor Benachrichtigungssystem

Tablet im Querformat mit Desktop-Level-Layout

## Desktop-Demo Der Desktop-Client bietet ein professionelles Erlebnis vergleichbar mit iTerm2: **Split Broadcast** - Ziehbare Multi-Pane-Aufteilung, tippe in einem Pane und führe in allen gleichzeitig aus:

Split Broadcast Demo

**Command Bookmarks** - Rechtsklick auf Terminaltext zum Bookmarken, Gruppenverwaltung, Ein-Klick-Ausführung:

Command Bookmarks Demo

**SSH-Verbindung und Dateibrowser** - Eingebauter SSH-Client, Remote-Sessions fühlen sich lokal an, vollständiges SFTP-Dateimanagement:

SSH-Verbindung und Dateibrowser Demo

**Workspace-Management und Mission Control** - Multi-Workspace-Isolation, Mission Control-Übersicht, schnelles Wechseln:

Workspace-Management Demo

**Plugin-System** - Hot-Reload-fähige JS-Plugins, inklusive CC Switch, JSON Formatter und mehr:

Plugin-System Demo

**Einheitliches Layout-System** - Terminal, Plugin, Dateibrowser und Web-Vorschau sind alles Panes; ziehbare Aufteilung, Tab-übergreifendes Verschieben, als neues Tab extrahieren:

Einheitliches Layout-System Demo

## Warum Dinotty? Terminalbasierte Coding-Agenten (Claude Code, opencode, Codex, OpenClaw usw.) sind mächtig, aber in einem einzelnen Terminalfenster eingesperrt. Dinotty ermöglicht dir: - **Agenten von jedem Gerät verwalten** - tiefes Arbeiten am Desktop, scanne einen QR-Code auf dem Handy wenn du den Schreibtisch verlässt, um die Arbeit deines Agenten ohne Unterbrechung weiter zu überwachen und zu steuern - **Multi-Gerät-Sync, nahtloser Wechsel** - starte auf dem Laptop, fahre auf dem Handy fort; kehre zum Laptop zurück und mach genau da weiter, wo du aufgehört hast - **Agenten-Output direkt verifizieren** - Code-Diffs, gerenderte Seiten, generierte Dateien, alles im eingebauten Browser sichtbar - **Verliere nie deine Session** - Verbindungsabbruch, Bildschirmsperre, Gerätewechsel - komme zurück und alles ist genau da, wo du es verlassen hast ### Leichtgewichtig - kein Remote-Desktop | | Dinotty | Remote-Desktop (VNC/RDP/Parsec) | |---|---|---| | **Übertragene Daten** | Nur Text (JSON, Bytes) | Vollständige Bildschirmpixel bei 30-60 fps | | **Bandbreite** | ~1–10 KB/s typisch | ~1–10 MB/s (100–1000x mehr) | | **Mobildaten-freundlich** | ✅ Funktioniert auf 3G/4G ohne Lag | ❌ Ruckelig, hohe Latenz, verbraucht Daten | | **Toleranz bei schwachem Signal** | ✅ Auto-Reconnect, kein Frame-Verlust | ❌ Eingefrorener Bildschirm, Input-Lag | | **Akkuverbrauch** | Niedrig (Text-Rendering) | Hoch (Video-Decodierung) | | **Auflösungsanpassung** | Nativer Text in jeder Größe | Skaliertes Bitmap, unscharf auf dem Handy | | **Interaktion** | Natives Touch, custom Tastatur | Simulierte Maus, winzige Desktop-UI | ## Hauptfunktionen - **Serverseitiges virtuelles Terminal** - vollständiger VTE-Parser, Server kennt exakten Bildschirmzustand, ermöglicht Session-Recovery und Bildschirm-Snapshots - **Session-Persistenz** - PTY-Prozesse überleben Verbindungsabbruch, Auto-Reconnect mit exponentiellem Backoff, Seite aktualisieren zum Wiederherstellen - **Pane-Aufteilung und Multi-Tabs** - ziehbare Aufteilung, Multi-Tab-Verwaltung mit servergeführtem Pane-Lebenszyklus - **Workspace-Management** - Multi-Workspace-Isolation, Mission Control-Übersicht, Workspace-scoped Plugin-Tabs - **Broadcast-Modus** - Eingabe in einem Pane, gleichzeitige Ausführung in allen Panes, kostenlos - **Command Bookmarks** - Rechtsklick auf Terminaltext zum Bookmarken, Gruppenverwaltung, Ein-Klick-Ausführung - **Remote SSH-Verbindung** - eingebauter SSH-Client mit Passwort/Key-Auth, Remote-Sessions fühlen sich lokal an - **Remote-Dateiverwaltung (SFTP)** - automatisch aktiviert bei SSH-Verbindungen, vollständiges Datei-Browsen/Editieren/Upload/Download - **Serverliste** - mehrere Remote-Server verwalten, schnelles Wechseln der Verbindungen - **Responsives Layout** - Hochformat stapelt vertikal, Querformat nebeneinander; touch-optimierte Buttons und Pane-Resizing - **Anpassbare Shortcut-Tastatur** - füge Ctrl/Esc/Funktionstasten für Mobile hinzu, unterstützt beliebige Escape-Sequenzen - **Eingebauter Dateibrowser** - Code-Highlighting, Markdown-Rendering, Office-Dokument-Vorschau, Audio/Video-Wiedergabe - **Git-Änderungsindikatoren** - Gutter-Markierungen für hinzugefügte/geänderte/gelöschte Zeilen, Inline-Diff, Stage/Revert - **Web-Vorschau** - eingebauter Reverse-Proxy zum Vorschauen lokaler Dev-Server in iframe - **Benachrichtigungssystem** - Terminal-Bell/OSC-Erkennung, WebSocket-Push, konfigurierbare Sound-Alerts - **Systemmonitor** - Echtzeit-CPU/Speicher/Netzwerk-Charts - **Plugin-System** - JS-Plugins + CLI-Bridge, Hot-Reload; liefert CC Switch, JSON Formatter, Claude Code Conversation Manager usw. - **Open API** - HTTP-Endpoint für externe Gerätesteuerung (Stream Deck, Shortcuts, Automatisierungs-Skripte) - **Befehlspalette** - Schnellzugriff-Befehls-Launcher - **Desktop-App** - optionaler nativer Client auf Tauri-Basis ## Hauptunterschiedsmerkmale - **Serverseitiges virtuelles Terminal** - keine WebSocket-zu-PTY-Pipe; PTY übersteht Verbindungsabbruch, Seite aktualisieren zum Wiederherstellen der Session - **Multi-Gerät-Sync** - browserbasierte Sync, tiefes Arbeiten am Desktop, vom Mobile übernehmen - **Leichtgewichtiger Text-only-Transport** - ~1-10 KB/s, flüssig auf 3G/4G, 100-1000x weniger Bandbreite als Remote-Desktop - **Selbst-contained-Umgebung** - eingebauter Dateibrowser, Web-Vorschau, Git-Änderungen, SSH/SFTP, Plugin-System - **Kostenlos und Open Source** - selbst gehostet, kein Abo, keine Relay-Gebühren Siehe [Vergleich mit anderen Lösungen](getting-started/comparison.en.md) für Details. ## Installation Lade den Installer oder Binary für deine Plattform von [GitHub Releases](https://github.com/xichan96/dinotty/releases) herunter: | Plattform | Format | Hinweise | |----------|--------|-------| | **macOS** | `.dmg` | Öffnen und in Applications ziehen | | **Linux** | `.deb` | `sudo dpkg -i dinotty_*.deb` | | **Windows** | `.exe` / Source-Build | Starte `dinotty-server.exe` aus PowerShell, oder baue aus dem Source | > Du kannst auch aus dem Source bauen, siehe "Schnellstart" unten. **macOS-Hinweis**: Da die App nicht signiert ist, zeigt macOS möglicherweise **"Dinotty" ist beschädigt und kann nicht geöffnet werden**. Führe nach der Installation den folgenden Befehl aus, um die Beschränkung zu entfernen: ```bash xattr -cr /Applications/Dinotty.app ``` **Linux Ein-Zeilen-Installation**: ```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" ``` **Linux-Start**: ```bash # systemd systemctl start dinotty systemctl enable dinotty # Auto-Start beim Booten # Docker-Container nohup dinotty-server & ``` **Windows-Start**: ```powershell # PowerShell .\dinotty-server.exe -p 8999 # Optional: Default-Shell vor der Auto-Detection überschreiben $env:DINOTTY_SHELL = "pwsh.exe" .\dinotty-server.exe ``` Unter Windows wird die Default-Shell in dieser Reihenfolge erkannt: `DINOTTY_SHELL` -> `pwsh.exe` -> `powershell.exe` -> `%ComSpec%` / `cmd.exe`. Default-Port ist **8999**. Öffne nach dem Start `http://:8999`. Verwende `-p` für einen benutzerdefinierten Port: ```bash dinotty-server -p 3000 ``` ## Schnellstart ```bash # Repo klonen (Shallow Clone empfohlen - schneller und kleiner) git clone --depth 1 --single-branch -b dev git@github.com:xichan96/dinotty.git cd dinotty # Frontend bauen cd frontend && pnpm install && pnpm run build && cd .. # Server starten cargo run ``` Windows PowerShell Äquivalent: ```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 ``` Öffne http://127.0.0.1:8999 in deinem Browser. ```bash # Backend mit Debug-Logging RUST_LOG=debug cargo run # Frontend Type-Check cd frontend && npx vue-tsc --noEmit ``` ```powershell # Windows PowerShell Debug-Logging $env:RUST_LOG = "debug" cargo run ``` ## Tech-Stack | Schicht | Technologie | |-------|-----------| | Backend | Rust, Axum 0.7, Tokio, portable-pty, vte, russh, russh-sftp | | Frontend | Vue 3, TypeScript, Vite, xterm.js 5 | | Desktop | Tauri | **In Rust geschrieben · Single Binary · Zero Dependencies** - Führt eine vollständige VT-Zustandsmaschine auf dem Server aus, kein Pipe-Forwarding-Proxy, sodass Sessions Verbindungsabbruch überleben. ## Weitere Dokumentation - [Vergleich](getting-started/comparison.en.md) - Unterschiede vs ttyd/gotty/Wetty und andere AI-Coding-Remote-Lösungen - [Deployment-Guide](getting-started/deployment.en.md) - systemd, Docker, Windows-Native-Run, Cross-Platform-Build, Konfiguration - [Release-Guide](getting-started/releasing.en.md) - einheitliches Versionsmanagement, Versions-PRs, `dev`-zu-`main`-Promotion, Tags und GitHub Releases - [Datei-Editor](features/file-editor.en.md) - Pane-Aufteilung, Multi-Cursor-Editing, Cursor Group Cross-File-Sync - [Benachrichtigungssystem](features/notifications.en.md) - HTTP API, Claude Code-Integration, Open API - [Plugin-System](plugins/plugins.en.md) - Installation, Manifest, API, eingebaute Plugins - [Plugin-Entwicklung](plugins/plugin-development.md) - vollständiger Plugin-Entwicklungs-Guide - [Host-Zwischenablage-API](api/clipboard-api.md) - sensibler authentifizierter Endpoint für Mobile-Host-Paste - [MCP Server](api/mcp-server.md) - eingebauter MCP JSON-RPC-Server für AI-Assistenten zum Operieren von Terminal-Sessions - [Token-Berechtigungssystem](internals/token-system.md) - Capability-basierte Multi-Token-Fine-Grained-Access-Control - [Event Bus](internals/event-bus.md) - globaler Event Bus für modulübergreifenden Event-Dispatch - [Audit Log und Webhook](internals/audit-webhook.md) - API-Nutzungs-Tracking und externe Benachrichtigungen - [Contributing](getting-started/contributing.en.md) - Branch-Strategie, Commit-Konvention, Code-Stil ## Mitwirkende Danke an alle, die zu Dinotty beigetragen haben! ## Star History ![Star History](public/images/star-history.svg) ## Lizenz MIT