dinotty

by xichan96Verified

Multi-device terminal server for AI coding agents. Server-side VTE, session persistence, file browser, web preview, plugin system. Self-hosted.

578
Stars
59
Forks
TypeScript
Language
8/23/2026
Added
View on GitHubDownload ZIP

⚠️ Third-Party Software Notice

This skill is third-party open-source software developed and hosted independently on GitHub. SkillTip is an informational directory and does not control or maintain the underlying repository. Any security checks displayed are automated and limited in scope. Review the source code before installing.

Read the Terms of Service

Installation

Add to your Claude Code skills directory:

# Add to your Claude Code skills
git clone https://github.com/xichan96/dinotty

Getting Started

Guides for using skills like dinotty.

Security Report

Verified

Last scanned: —

{
  "status": "PASSED",
  "issues": []
}

README.md

Dinotty Logo

Dinotty

License Rust Vue 3 Docs GitHub Stars GitHub Downloads GitHub Issues

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


A terminal built for coding agents.

Run Claude Code, opencode, Codex, or OpenClaw on any device -- simple, extensible, multi-device, never lose a session.

One session across phone · iPad · desktop

Stop mid-task on your computer, continue on your phone, then return to your desktop and pick up exactly where you left off. Sessions survive disconnects and restore on refresh.

Everything is a pane — build your terminal like building blocks

Terminals, plugins, files, SSH, and web previews are all panes. Drag them around to assemble your own workspace.

Screenshots

Running Claude Code on mobile Full keyboard layout with htop Theme settings

Custom shortcut keyboard System monitor Notification system

Tablet landscape desktop-class layout

Desktop Demo

The desktop client delivers a professional experience comparable to iTerm2:

Split Broadcast — Draggable multi-pane split, type in one pane and execute in all panes simultaneously:

Split broadcast demo

Command Bookmarks — Right-click terminal text to bookmark, group management, one-click execution:

Command bookmarks demo

SSH Connection & File Browser — Built-in SSH client, remote sessions feel just like local, full SFTP file management:

SSH connection and file browser demo

Workspace Management & Mission Control — Multi-workspace isolation, Mission Control overview, quick switching:

Workspace management demo

Plugin System — Hot-reloadable JS plugins with built-in CC Switch, JSON Formatter, and more:

Plugin system demo

Unified Layout System - Terminal, plugin, file browser, and web preview are all panes; draggable split, cross-tab move, extract as new tab:

Unified layout system demo

Philosophy

Terminal coding agents - Claude Code, opencode, Codex, OpenClaw - are powerful, yet confined to a single window. Dinotty sets them free. One terminal. Every device. Every possibility.

Sync everywhere

Half-done on your laptop. Pick up your phone, keep going. Back to your laptop, exactly as you left it.

Endless extensibility

JS plugins with hot reload. CC Switch, JSON Formatter, Claude Code dialog management - built in. Custom commands, terminal interaction, event subscriptions, CLI integration - the API is ready.

Everything is a pane

Terminal, files, web preview, Git changes, SSH remote. Drag to split, move across tabs. All in one flow.

Never drops

Server-side VTE. PTY survives disconnects. Refresh the page, you're back where you were.

Free and open

Self-hosted. No subscriptions. No relay. Your data stays on your machine.

Lightweight — Not a Remote Desktop

DinottyRemote Desktop (VNC/RDP/Parsec)
Data transmittedText only (JSON, bytes)Full screen pixels at 30-60 fps
Bandwidth~1–10 KB/s typical~1–10 MB/s (100–1000x more)
Mobile data friendly✅ Works on 3G/4G without lag❌ Choppy, high latency, burns data
Weak signal tolerance✅ Auto-reconnect, no frame loss❌ Frozen screen, input lag
Battery consumptionLow (text rendering)High (video decoding)
Resolution adaptationNative text at any sizeScaled bitmap, blurry on phone
InteractionNative touch, custom keyboardSimulated mouse, tiny desktop UI

Key Features

  • 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
  • Broadcast mode — input in one pane, execute in all panes simultaneously, free
  • Command bookmarks — right-click terminal text to bookmark, group management, one-click execution
  • SSH remote connection — built-in SSH client with password/key auth, remote sessions feel just like local
  • Remote file management (SFTP) — auto-enabled over SSH connections, full file browse/edit/upload/download
  • Server list — manage multiple remote servers, quick switch connections
  • Responsive layout — portrait stacks vertically, landscape side-by-side; touch-optimized buttons & pane resizing
  • Customizable shortcut keyboard — add Ctrl/Esc/function keys for mobile, supports arbitrary escape sequences
  • Built-in file browser — code highlighting, Markdown rendering, Office document preview, audio/video playback
  • Git change indicators — gutter marks for added/modified/deleted lines, inline diff, Stage/Revert
  • Web preview — built-in reverse proxy to preview local dev servers in iframe
  • Notification system — terminal bell/OSC detection, WebSocket push, configurable sound alerts
  • System monitor — real-time CPU/memory/network charts
  • Plugin system — JS plugins + CLI bridge, hot-reload; ships with CC Switch, JSON Formatter, Claude Code conversation manager, etc.
  • Open API — HTTP endpoint for external device control (Stream Deck, Shortcuts, automation scripts)
  • Command palette — quick-access command launcher
  • Desktop app — optional Tauri-based native client

Key Differentiators

  • Server-side virtual terminal - Not a WebSocket-to-PTY pipe; PTY survives disconnect, refresh page to restore session
  • Multi-device sync - Browser-based sync, deep coding on desktop, take over from mobile
  • Lightweight text-only transport - ~1-10 KB/s, smooth on 3G/4G, 100-1000x less bandwidth than remote desktop
  • Self-contained environment - Built-in file browser, web preview, Git changes, SSH/SFTP, plugin system
  • Free & open source - Self-hosted, no subscription, no relay fees

See comparison with other solutions for details.

Installation

Download the installer or binary for your platform from GitHub Releases:

PlatformFormatNotes
macOS.dmgOpen and drag to Applications
Linux.debsudo dpkg -i dinotty_*.deb
Windows.exe / source buildRun dinotty-server.exe from PowerShell, or build from source

You can also build from source, see "Quick Start" below.

macOS Note: Since the app is unsigned, macOS may show "Dinotty" is damaged and can't be opened. Run the following command after installation to remove the restriction:

xattr -cr /Applications/Dinotty.app

Linux one-liner install:

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 startup:

# systemd
systemctl start dinotty
systemctl enable dinotty  # auto-start on boot

# Docker container
nohup dinotty-server &

Windows startup:

# PowerShell
.\dinotty-server.exe -p 8999

# Optional: override the default shell before auto-detection
$env:DINOTTY_SHELL = "pwsh.exe"
.\dinotty-server.exe

On Windows, the default shell is detected in this order: DINOTTY_SHELLpwsh.exepowershell.exe%ComSpec% / cmd.exe.

Default port is 8999. After starting, visit http://<your-ip>:8999. Use -p to specify a custom port:

dinotty-server -p 3000

Quick Start

# Clone repo (shallow clone recommended — faster and smaller)
git clone --depth 1 --single-branch -b dev git@github.com:xichan96/dinotty.git
cd dinotty

# Build frontend
cd frontend && pnpm install && pnpm run build && cd ..

# Run server
cargo run

Windows PowerShell equivalent:

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

Open http://127.0.0.1:8999 in your browser.

# Backend with debug logging
RUST_LOG=debug cargo run

# Frontend type-check
cd frontend && npx vue-tsc --noEmit
# Windows PowerShell debug logging
$env:RUST_LOG = "debug"
cargo run

Verification Code Login

In addition to the default "Token" login, dinotty supports "Verification Code" login as a mutually exclusive alternative: when selected in "Security & Access", remote users receive a 6-digit code generated server-side and pushed to you via a notifier plugin (e.g. feishu-notify). Entering the code on the login page creates a session. Codes are valid for 5 minutes, single-use, and invalidated after 5 wrong attempts. This removes the static token from the remote login path, mitigating XSS / screenshot / device theft / social engineering risks to the token itself.

Before enabling, install a messaging notifier plugin and keep it subscribed to the auth.verification_code event - otherwise the option is disabled in the UI. While login_method=verification_code, uninstalling a plugin currently subscribed to that event is rejected with 409 to prevent accidental lockout.

Emergency Recovery

If verification code login is stuck (notifier plugin uninstalled, subscription lost, or IM/email not arriving), edit ~/.dinotty/settings.json (Windows: %APPDATA%\dinotty\settings.json) on the server host, set auth.login_method back to "token", and restart the dinotty service. This path is only writable by the server host's local user; remote login users cannot modify it.

Tech Stack

LayerTechnology
BackendRust, Axum 0.7, Tokio, portable-pty, vte, russh, russh-sftp
FrontendVue 3, TypeScript, Vite, xterm.js 5
DesktopTauri

Written in Rust · Single binary · Zero dependencies — Runs a full VT state machine on the server, not a pipe-forwarding proxy, so sessions survive disconnection.

More Documentation

  • Comparison — differences vs ttyd/gotty/Wetty and other AI coding remote solutions
  • Deployment Guide — systemd, Docker, Windows native run, cross-platform build, configuration
  • Release Guide — unified version management, version PRs, dev to main promotion, tags, and GitHub Releases
  • File Editor — split panes, multi-cursor editing, Cursor Group cross-file sync
  • Notification System — HTTP API, Claude Code integration, Open API
  • Plugin System — installation, manifest, API, built-in plugins
  • Plugin Development — full plugin development guide (Chinese)
  • Host Clipboard API — sensitive authenticated endpoint used by mobile host paste
  • MCP Server — built-in MCP JSON-RPC server for AI assistants to operate terminal sessions
  • Token Permission System — capability-based multi-token fine-grained access control (Chinese)
  • Event Bus — global event bus for inter-module event dispatch (Chinese)
  • Audit Log & Webhook — API usage tracking and external notifications (Chinese)
  • Contributing — branch strategy, commit convention, code style

Contributors

Thanks to all the people who have contributed to Dinotty!

Star History

Star History

License

MIT

Frequently Asked Questions

What is dinotty?

dinotty is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by xichan96. Multi-device terminal server for AI coding agents. Server-side VTE, session persistence, file browser, web preview, plugin system. Self-hosted. It has 578 GitHub stars.

Is dinotty safe to use?

Yes. dinotty passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.

How do I install dinotty?

Clone the repository with "git clone https://github.com/xichan96/dinotty" and add it to your Claude Code skills directory (see the Installation section above).

What programming language is dinotty written in?

dinotty is primarily written in TypeScript. It is open-source under xichan96 on GitHub, so you can review or fork the full source.

Are there alternatives to dinotty?

Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh dinotty against similar tools.

Comments (0)

No comments yet. Be the first to share your thoughts!

ECC

by affaan-m

10

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

242,21936,702JavaScript
AI Agentsai-agentsanthropicclaude-code
View details
15

An agentic skills framework & software development methodology that works.

234,96620,863Shell
AI Agentsai-agentsbrainstorming
View details

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

185,94028,768JavaScript
AI Agentsai-agentsanthropicclaude-code
View details

cc-switch

by farion1231

3

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

128,8688,826Rust
AI Agentsclaude-codeai-tools
View details

claude-code

by anthropics

Claude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explaining complex code, and handling git workflows - all through natural language commands.

120,03119,897Shell
AI Agents
View details

Developers Also Liked

Based on votes and bookmarks from developers who liked this skill

ECC

by affaan-m

10

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

242,21936,702JavaScript
AI Agentsai-agentsanthropicclaude-code
View details
15

An agentic skills framework & software development methodology that works.

234,96620,863Shell
AI Agentsai-agentsbrainstorming
View details

n8n

by n8n-io

12

Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.

201,88160,308TypeScript
MCP Serversapisai-tools
View details

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

185,94028,768JavaScript
AI Agentsai-agentsanthropicclaude-code
View details

cc-switch

by farion1231

3

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

128,8688,826Rust
AI Agentsclaude-codeai-tools
View details