多机器管理
Cloud 与自托管
账户关联的多机器管理(包括你自己网络之外的机器)在 Cloud 版本中提供。自托管版本也可以把能互相直接访问的多台机器(同一网络或 Tailscale)连在一起,无需账户 —— 参见下文“无需账户配对机器(自托管)”。
ADHDev Cloud 让一个账户从单个仪表板中跟踪多台开发机器。
它为你提供什么
- 面向你的笔记本、台式机、工作机或远程服务器的单一仪表板
- 跨 IDE 和 CLI 工作流的机器感知会话可见性
- 一个带有启动控件、提供方设置、日志和 session-host 恢复的机器详情页
- 本地网络之外的云端访问
这是云端与自托管之间最清晰的差异之一。云端是账户关联的控制平面。自托管是主机上的本地仪表板,可以接纳处于可互通网络中的已配对机器。
工作原理
每台机器都运行自己的 ADHDev 守护进程,认证到同一个云账户:
npm install -g adhdev
adhdev setup
adhdev daemon一旦机器在同一账户下连接,它们会一起显示在仪表板中。
Repo Mesh(守护进程间编排)
Repo Mesh 协调同一账户的多个守护进程,使一个协调者会话可以跨多台机器或 git 工作树驱动工作。它运行在直接的守护进程到守护进程 P2P DataChannel(通过 node-datachannel)之上;云服务器 WebSocket 仅中继 SDP offer/answer/ICE 信令,并授权两个守护进程属于同一账户。这是守护进程协调 —— 它不是仪表板命令的回退。仪表板命令/数据流量仍然只使用仪表板↔守护进程 P2P 通道。
云端仪表板在 Repo Mesh 页面(/mesh)中呈现 mesh。
核心概念:
- Node —— 参与 mesh 的工作区:一个代理可以在其中运行的仓库检出或隔离的 git 工作树。
- Mission —— 一个目标,把为其工作的任务分组在一起,并作为持久记录保留。
- Task —— 节点上的代理执行的一个工作单元,经历
pending → assigned → completed/failed。 - Queue —— 守护进程本地的等待任务列表,空闲节点自主认领。队列以本地为先且具有权威性;Cloud/D1 只保存轻量的成员/信令元数据。
- Ledger —— 跨节点已发生事件的仅追加 mesh 审计日志(历史,而非待办列表)。通过有界的 P2P 账本切片在守护进程之间对齐。
- Refinery —— 把工作树分支收敛回其基线的过程:验证 → 合并 → 推送 → 清理。
协调者守护进程持有聚合的 mesh_status 快照。工作会话由协调者分派,默认自动批准。完成是基于证据的(git 状态/检查点、账本事件),而非 LLM 自我报告。Repo Mesh 工具在 mesh 模式下通过 MCP 服务器暴露给协调者会话 —— 参见 MCP 服务器。
要了解完整图景 —— 基于拉取的编排、工作树隔离的仓库协作、Refinery 收敛,以及交叉验证 —— 请参见专门的 Repo Mesh 指南。
Machines
Machines 页面是机器级概览。它是你快速查看以下内容的地方:
- 哪些机器在线
- 某个会话属于哪台机器
- 连接和运行时状态
- 你想要打开详情的机器
机器详情
打开一台机器会给你一个比主仪表板更具操作性的视图:
- 面向当前 IDE 和 CLI 会话的 Workspace
- 面向托管 CLI 运行时诊断与恢复的 Hosted Runtimes
- 面向机器/提供方设置的 Providers
- 面向机器健康的 System
- 面向运行时和守护进程日志的 Logs
当高层仪表板告诉你出了问题,但你需要机器专属上下文时,就使用这个页面。
典型用途
多机器云配置在你有以下需求时尤其有用:
- 让一台机器专注于后台代理工作
- 分开个人设备和工作设备
- 想要对在其他地方运行的会话进行移动端批准
- 需要在你未实际使用的机器上恢复某个 CLI 运行时
套餐限制
| 套餐 | 最大机器数 |
|---|---|
| Free | 1 |
| Pro | 2 |
| Ultra | 5 |
| Enterprise | 无限 |
当你达到机器上限时,额外的机器注册会被拒绝,直到你移除一台或升级。
自托管差异
自托管不会把机器合并到账户关联的托管仪表板中。
当你想要仅本地的仪表板(需要时可包含可互通网络中的已配对机器)时,请使用自托管。当你想要跨设备和跨网络的账户关联机器可见性时,请使用云端。
无需账户配对机器(自托管)
自 1.0.76 起(1.0.77 修复为端到端可用),免费的 standalone 守护进程可以跨多台机器工作。能够互相直接访问的机器(同一网络或 Tailscale)可在 mesh 界面中通过地址和一次性代码完成配对。主机负责把任务分派给其他机器,并显示它们的会话。无需云端账户。
- 让主机监听其他机器能访问到的地址。 默认是
127.0.0.1(仅本机),其他机器无法连接。请使用adhdev standalone --host 0.0.0.0 --token <some-secret>,或绑定局域网或 Tailscale 的 IP。如果守护进程仅监听回环地址,配对卡片会显示警告,提示用--host 0.0.0.0(或局域网/Tailscale IP)重新启动。 - 在主机上生成配对码。 打开 mesh 界面,找到 连接另一台机器 卡片,停留在 主机 标签页,点击 创建配对码。卡片会显示 地址(本机的局域网或 Tailscale IP 加端口,默认
3847)和 配对码。配对码只显示一次并带有过期时间,可用 复制 复制。 - 在另一台机器上加入。 在该机器上为同一仓库创建(或打开)一个 mesh,在 mesh 界面的同一卡片中打开 成员 标签页,以
host:port的形式输入主机地址(例如100.64.0.2:3847)和配对码,然后点击 连接。卡片会确认配对完成,并在连接建立之前显示 等待连接。 - 在主机上管理。 已配对的机器列在 主机 标签页的 已连接的机器 下,可用 断开连接 移除。
配对之后,助手也可以把你的请求转交给托管在另一台机器上的项目,并把结果带回它的聊天中。
安全
Mesh 对等端不使用仪表板令牌。每台机器在 /ws/mesh 上使用自己的配对密钥进行认证(HMAC 握手)。在没有仪表板令牌或密码的情况下绑定 0.0.0.0,会让该网络上的任何人都能访问仪表板,服务器启动时会打印警告 —— 详见 Standalone。
仍然仅限 Cloud 的功能:
- 访问你自己网络之外的机器(云端 P2P 加 TURN)
- 推送通知
- 托管的 REST API 与 API 密钥
- 机器之间的项目文件传输(standalone 无法打开 WebRTC 文件链路)
命名机器
一旦你连接了不止一台机器,友好的机器名称就变得重要。
机器昵称贯穿整个仪表板,有助于消歧某个会话实际运行在哪里。
