dinotty  by xichan96

Self-hosted terminal server for AI coding agents

Created 1 month ago
334 stars

Top 81.9% on SourcePulse

GitHubView on GitHub
Project Summary

Dinotty addresses the challenge of managing AI coding agents across multiple devices by providing a self-hosted, synchronized terminal server. It targets developers and researchers who leverage AI coding assistants and require seamless workflow continuity, enhanced productivity, and flexible access from any device, offering a robust, persistent, and feature-rich environment.

How It Works

Dinotty distinguishes itself by running a complete Virtual Terminal Emulator (VTE) server-side, rather than merely proxying PTY output over WebSockets. This server-centric approach enables precise control over the terminal's state, facilitating advanced features like session persistence, screen snapshots, and reliable recovery across network disruptions or device changes. The architecture supports sophisticated terminal management, including multi-panel splitting, tabbed interfaces, and a unique broadcast mode for synchronized input.

Quick Start & Requirements

  • Installation: Pre-built binaries available for macOS (.dmg) and Linux (.deb). Docker support is provided. Source builds require the Rust toolchain.
  • Prerequisites: Rust toolchain for building from source. Tauri is used for the optional desktop client.
  • Running: Default port is 8999; configurable via -p flag. Linux systems can use systemd for service management.
  • Documentation: Detailed guides for deployment, notifications, plugins, and contribution are available within the repository's docs/ directory.

Highlighted Details

  • Session Persistence: PTY processes remain active during network outages, with automatic reconnection and exponential backoff, allowing sessions to be restored by simply refreshing the browser.
  • Multi-Device Synchronization: Seamlessly switch between desktop and mobile devices, with all work and state preserved.
  • Integrated File Browser & Previews: Features code highlighting, Markdown rendering, Office document previews, and media playback within the terminal interface.
  • Web Preview: A built-in reverse proxy allows direct previewing of local development servers within an iframe.
  • Plugin System: Extensible via JavaScript plugins with hot-reloading, supporting custom tools and integrations like CC Switch and JSON Formatter.
  • Broadcast Mode: Enables synchronized input across multiple panes for parallel command execution.
  • Git Change Indicators: Visual cues for staged/unstaged changes directly in the editor gutter and inline diffs.

Maintenance & Community

The project acknowledges its contributors and features a star history. Specific community channels (e.g., Discord, Slack) or a public roadmap are not detailed in the README.

Licensing & Compatibility

Dinotty is released under the permissive MIT License, which generally permits commercial use and integration into closed-source projects without significant restrictions.

Limitations & Caveats

The macOS binary requires manual permission adjustments (xattr -cr) due to being unsigned. A planned relay service is not yet implemented. The project's README indicates development on the dev branch, suggesting potential for ongoing changes and instability.

Health Check
Last Commit

1 day ago

Responsiveness

Inactive

Pull Requests (30d)
72
Issues (30d)
12
Star History
244 stars in the last 30 days

Explore Similar Projects

Starred by Patrick Kidger Patrick Kidger(Core Contributor to JAX ecosystem), Chip Huyen Chip Huyen(Author of "AI Engineering", "Designing Machine Learning Systems"), and
7 more.

vibetunnel by amantus-ai

0.2%
5k
Turn any browser into your terminal
Created 1 year ago
Updated 1 day ago
Feedback? Help us improve.