Skip to content

多端同步与 Mission Control

Dinotty 的核心能力是多端同步:在桌面、手机、网页任意一端操作,其他端实时看到同样的画面;切换设备时会话不丢失。Mission Control 是多端同步的概览模式,集中管理所有工作区。

三端连接

连接方式适用场景
桌面端Tauri 原生客户端,启动时连接服务端本地或局域网开发,需要原生体验
网页端浏览器访问 http://<server>:8999临时使用、跨平台
移动端手机浏览器访问 + PWA 安装离开工位后查看 agent 进度

三端连接同一个服务端时,所有 pane 的输出会广播到每一端,输入由当前聚焦的端发送。

Mission Control 概览

Mission Control 是工作区级别的概览模式:

  • 进入方式:快捷键或工具栏按钮触发
  • 展示内容:所有工作区的缩略图、当前活动 pane、各端连接状态
  • 快速跳转:点击任意工作区缩略图直接进入
  • 多端状态可视化:能看到其他设备是否正在操作某个工作区

设备切换

切换设备时无需手动保存

  1. 在桌面端写代码到一半
  2. 掏出手机,打开 PWA
  3. 手机自动连接到同一个服务端
  4. 看到的画面与桌面端完全一致,光标位置、滚动位置、未提交的输入都保留
  5. 在手机上继续输入,桌面端实时看到变化

会话恢复

断网/息屏/刷新页面后:

  • WebSocket 自动重连:指数退避,无需手动刷新
  • PTY 进程存活:服务端的 shell 进程不受前端断开影响,agent 任务继续执行
  • 屏幕快照恢复:重连后服务端发送完整屏幕快照,前端无需 replay
  • 未提交输入保留:断网前在输入框打字但未回车的内容,重连后仍在

服务端虚拟终端

Dinotty 在服务端运行完整的虚拟终端仿真器(VTE),掌握精确的屏幕状态。这是其他 Web 终端(ttyd/gotty/Wetty)做不到的--它们只是 WebSocket 到 PTY 的透传管道,断网即丢失画面。

硬件键盘多端同步

多个设备同时连接时,硬件键盘事件会同步:

  • 选中状态同步:在某端选中一段文本,其他端也会高亮同样位置
  • 打开状态同步:在某端打开文件,其他端的文件树同步展开
  • 输入协调:同一时刻只有一个端能输入,避免冲突

详细设计见 Hardware Keyboard Design

通知推送

服务端检测到终端 bell / OSC 133 等事件时,会通过 WebSocket 推送通知到所有连接的端。即使手机在后台,PWA 也能收到推送(依赖浏览器/系统的通知权限)。

详见 通知系统

下一步

Released under the MIT license