by xichan96
Multi-device terminal server for AI coding agents. Server-side VTE, session persistence, file browser, web preview, plugin system. Self-hosted.
# Add to your Claude Code skills
git clone https://github.com/xichan96/dinottyLast scanned: 6/26/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-06-26T07:52:01.037Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}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 526 GitHub stars.
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.
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).
dinotty is primarily written in Rust. It is open-source under xichan96 on GitHub, so you can review or fork the full source.
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.
No comments yet. Be the first to share your thoughts!
为 Coding Agent 场景打造的终端。
在任意设备上运行 Claude Code、opencode、Codex 或 OpenClaw -- 简洁、可拓展、多端同步,会话永不丢失。
手机 · iPad · 桌面,一个会话
电脑上写到一半,掏出手机继续,回到桌面一切原样。断网不丢,刷新即回。
一切皆 pane,像搭积木一样
终端、插件、文件、SSH、网页预览 —— 每个面板都是一块积木,拖拽拼装出你的专属工作台。
桌面端同样专业好用,媲美 iTerm2 的终端体验:
分屏广播 — 可拖拽的多面板分屏,一个 pane 输入,多个 pane 同步执行:
命令收藏 — 右键终端文本直接收藏,分组管理,一键执行:
SSH 连接与文件浏览器 — 内建 SSH 客户端,远程会话与本地体验一致,SFTP 文件管理全覆盖:
工作区管理与 Mission Control — 多工作区隔离,Mission Control 概览,快速切换:
插件系统 — JS 插件热重载,内置 CC Switch、JSON Formatter 等:
统一布局系统 - 终端、插件、文件浏览器、网页预览皆为 pane,可拖拽分屏、跨 Tab 移动、提取为新 Tab:
终端 Coding Agent —— Claude Code、opencode、Codex、OpenClaw —— 功能强大,却总被束缚在单一窗口里。Dinotty 把它解放出来。一个终端,所有设备,所有可能。
电脑上写到一半,掏出手机继续。回到电脑,一切原样。
JS 插件热重载。CC Switch、JSON Formatter、Claude Code 对话管理开箱即用。自定义命令、终端交互、事件订阅、CLI 集成 —— API 皆已就位。
终端、文件、网页预览、Git 变更、SSH 远程。拖拽分屏,跨 Tab 移动,浑然一体。
服务端 VTE,PTY 断网存活。刷新页面,回到原处。
自托管。无订阅。无中继。数据,始终在你手中。
| Dinotty | 远程桌面 (VNC/RDP/Parsec) | |
|---|---|---|
| 传输数据 | 纯文本(JSON,字节流) | 全屏像素流,30-60 fps |
| 带宽消耗 | 通常 ~1–10 KB/s | ~1–10 MB/s(多 100–1000 倍) |
| 移动网络友好 | ✅ 3G/4G 下流畅无延迟 | ❌ 卡顿、高延迟、流量消耗大 |
| 弱信号容忍度 | ✅ 自动重连,无画面丢失 | ❌ 画面冻结、输入延迟 |
| 电量消耗 | 低(文本渲染) | 高(视频解码) |
| 分辨率适配 | 任意尺寸下原生文本渲染 | 位图缩放,手机上模糊 |
| 交互方式 | 原生触控 + 自定义键盘 | 模拟鼠标,桌面 UI 在手机上很小 |
完整方案对比见 方案对比。
前往 GitHub Releases 下载对应平台的安装包或二进制:
| 平台 | 格式 | 说明 |
|---|---|---|
| macOS | .dmg |
双击打开,拖入 Applications 即可 |
| Linux | .deb |
sudo dpkg -i dinotty_*.deb |
| Windows | .exe / 源码构建 |
在 PowerShell 中运行 dinotty-server.exe,也可从源码构建 |
也可以从源码构建,见下方「快速开始」。
macOS 注意事项:由于应用未签名,macOS 可能会提示 "Dinotty" is damaged and can't be opened。安装后请在终端执行以下命令解除限制:
xattr -cr /Applications/Dinotty.app
Linux 一键下载安装:
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 启动方式:
# systemd
systemctl start dinotty
systemctl enable dinotty # 开机自启
# Docker 容器
nohup dinotty-server &
Windows 启动方式:
# PowerShell
.\dinotty-server.exe -p 8999
# 可选:指定默认 shell(优先级高于自动检测)
$env:DINOTTY_SHELL = "pwsh.exe"
.\dinotty-server.exe
Windows 默认 shell 检测顺序为 DINOTTY_SHELL → pwsh.exe → powershell.exe → %ComSpec% / cmd.exe。
默认监听端口 8999,启动后访问 http://<your-ip>:8999。可通过 -p 参数指定端口:
dinotty-server -p 3000
# 克隆仓库(推荐 shallow clone,体积小速度快)
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
Windows 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
在浏览器中打开 http://127.0.0.1:8999 。
# 带调试日志运行
RUST_LOG=debug cargo run
# 前端类型检查
cd frontend && npx vue-tsc --noEmit
# Windows PowerShell 带调试日志运行
$env:RUST_LOG = "debug"
cargo run
除默认的「令牌登录」外,dinotty 支持「验证码登录」作为互斥替代选项:在「安全与访问」设置中选择后,远程用户登录时由后端生成 6 位验证码并通过消息通知插件(如 feishu-notify)推送到你本人,登录页输入验证码即可建会话。验证码 5 分钟有效、一次性消费、5 次错误后失效。这种方式不依赖静态 token,可降低 token 被 XSS / 截图 / 设备被盗 / 社工后的风险。
启用前需先安装一个消息通知类插件并保持对 auth.verification_code 事件的订阅,否则切换选项会置灰。login_method=verification_code 时卸载当前订阅了该事件的插件会被后端 409 拒绝,防止误操作导致远程无法登录。
如果验证码登录被卡住(通知插件被卸载、订阅丢失、邮件/IM 收不到消息),可在服务端主机上编辑 ~/.dinotty/settings.json(Windows 下为 %APPDATA%\dinotty\settings.json),将 auth.login_method 改回 "token",然后重启 dinotty 服务即可恢复令牌登录。该路径只对服务端主机本机用户可写,远程登录用户无权修改。
| 层级 | 技术 |
|---|---|
| 后端 | Rust, Axum 0.7, Tokio, portable-pty, vte, russh, russh-sftp |
| 前端 | Vue 3, TypeScript, Vite, xterm.js 5 |
| 桌面端 | Tauri |
Rust 编写 · 单二进制 · 零依赖部署 — 服务端跑完整 VT 状态机,不是管道转发,断线会话不丢失。
dev 到 main 晋升、Tag 与 GitHub Release感谢所有为 Dinotty 做出贡献的人!
MIT