Hotline
在你自己机器上为 AI 智能体团队搭一个房间:任一模型、自带 harness、各有独立电脑。
- Star 数
- ★ 12
- 最近更新
- 今天
- License
- Apache-2.0
- 主语言
- Rust
- FA 评分
- 63/100 · 存在缺口
30 秒速览
- 可在哪里用
- 通用 · 跨平台Codex · Claude Code · OpenAI API · Claude API
- 开始前需要
- 典型场景
- 独立开发者希望一个 agent 写代码、另一个 agent 做 review,并在同一聊天窗口中同时看到两者的进展。
- 主要局限
- 模型费用与密钥需自备,实际使用成本取决于所接入的供应商与用量。
- 源码审查
- 63/100 · 存在缺口
这个 Agent 能做什么,适合哪些场景?
Hotline 是一个开源、自托管的 AI 智能体协作房间,用 Rust 编写并以 Tauri 外壳承载 Web 界面,提供 macOS、Windows、Linux 桌面应用以及面向任意 Linux 机器的无头服务器模式。它把多名具名“队友”放在同一个房间里,每个队友拥有自己的项目目录和持续对话,可以互相查看状态、直接发消息、请求审查或交接任务。队友既可以是 Hotline 内置智能体(接 Anthropic、OpenAI、Google、OpenRouter 或 Ollama,使用你自己的密钥或订阅),也可以是 Claude Code、Codex、opencode 等通过 ACP 接入的外部 harness。一个开关即可为队友在容器中分配完整 Linux 桌面(Docker、Podman 或 Apple container),提供屏幕、浏览器与 shell。对话记录与文件保存在本机磁盘,无账户、无云端中转;手机应用处于 beta,可与桌面端配对,并支持将多台 desk 互联。
Hotline 运行一个本地的“desk”,在其中维护一份具名队友名册;每个队友绑定独立的工作目录和一条不会因你离开而中断的会话。内置智能体可调用 Anthropic、OpenAI、Google、OpenRouter 或 Ollama 的模型;外部 harness 通过 ACP 协议作为队友接入,包括 Claude Code、Codex 与 opencode。队友之间可以感知房间成员与其当前任务,并直接互发消息以提问、请求 review 或移交任务。开启“电脑”开关后,Hotline 通过 Docker、Podman 或 Apple container 为队友启动 Linux 桌面容器,内含屏幕、浏览器和 shell,你可旁观或在被请求时接管。交互支持文本、图片粘贴与语音。桌面端与无头服务器模式提供同一套房间能力,手机应用可与 desk 配对,多台 desk 可链接后让各自的队友像在同一房间内协作,但权限仍按各自 desk 的授权执行。
- 独立开发者希望一个 agent 写代码、另一个 agent 做 review,并在同一聊天窗口中同时看到两者的进展。
- 小团队想把 agent 运行在自有服务器上,通过无头 desk 长期运行,不依赖任何云端账户。
- 需要在隔离容器里让 agent 操作浏览器或 shell 完成任务,并在关键时刻人工接管的安全敏感场景。
- 已习惯 Claude Code 或 Codex 的用户,想把这些 harness 与其他模型放进同一个房间并行协作。
- 经常离开工位、希望用手机查看或继续与桌面端 agent 对话的开发者。
- 有多台机器(如笔记本与服务器)的团队,希望通过链接 desk 让两边的 agent 共享一个房间。
如何安装或部署这个 Agent?
macOS 或 Linux 桌面应用,一条命令安装:
curl -fsSL https://hotline.dev/install | sh在服务器上安装无头 desk:
curl -fsSL https://hotline.dev/install | sh -s -- --serverWindows 用户,或需要 .deb、.rpm 与 Intel Mac 构建时,从 GitHub Releases 下载最新版本:
# 在浏览器打开 https://github.com/1broseidon/hotline/releases/latest若要让队友拥有独立 Linux 桌面,宿主机需要可用的 Docker、Podman 或 Apple container 运行时;模型侧需自备 Anthropic、OpenAI、Google、OpenRouter 或 Ollama 的密钥或订阅。
如何使用这个 Agent?
安装后启动桌面应用,或在服务器上启动无头 desk,即可进入房间。随后为每名队友命名并指定其项目目录,选择模型:可直接使用内置智能体,也可将 Claude Code、Codex、opencode 等 ACP harness 作为队友接入。
给需要操作系统的队友打开“电脑”开关,Hotline 会在容器中为其分配 Linux 桌面:
# 需宿主机已安装 Docker、Podman 或 Apple container
# 在 Hotline 界面中为队友开启 computer 开关之后在房间中与队友对话,可粘贴截图、使用语音或在需要时接管其桌面;队友之间可直接互发消息。手机端可按文档说明与桌面 desk 配对:
# 参考 https://hotline.dev/docs/phone/ 完成手机配对进一步配置、协议与设计细节见 docs/design.md、docs/wire.md 与 docs/computer.md。
这个 Agent 有哪些优点和局限?
- 同一房间内可混用多家模型(Anthropic、OpenAI、Google、OpenRouter、Ollama),避免单一供应商锁定。
- 通过 ACP 支持 Claude Code、Codex、opencode 等外部 harness 作为队友,保留既有工作流。
- 可为单个队友分配容器化 Linux 桌面(屏幕、浏览器、shell),适合需要图形界面或真实环境操作的任务。
- 对话记录与文件保存在本机,无账户、无云端中转,自托管与数据边界清晰。
- 同时提供桌面应用、面向 Linux 的无头服务器模式与 beta 手机应用,并支持多 desk 互联。
- 模型费用与密钥需自备,实际使用成本取决于所接入的供应商与用量。
- 为队友提供 Linux 桌面依赖宿主机的 Docker、Podman 或 Apple container,容器运行时成为额外运维负担。
- 手机应用仍处于 beta,移动端功能与稳定性可能受限。
- 产品在 0.13.0 前名为 Toad,0.14.0 起改名,且 README 说明该项目在 2026-09-08 以全新构建替换了此仓库上的 Electrobun 版本,早期资料与现有版本可能不一致。
- 从源码构建需 Rust 工具链与 Tauri 相关环境,非桌面安装路径的配置步骤在 README 中未展开。
这个 Agent 与同类方案有什么区别?
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| Hotline 当前 | 63 · 存在缺口 | — | ★ 12 | 今天 | Rust | Codex · Claude Code · OpenAI API · Claude API |
| Vicoa | 52 · 缺口较多 | 桌面应用免费 + 模型费 | ★ 523 | 3 天前 | Python | Codex · Claude Code |
| OpenTeams | 56 · 缺口较多 | 桌面应用免费 + 模型费 | ★ 581 | 14 天前 | TypeScript | Codex · Claude Code |
| OtoDock | 77 · 表现良好 | 自托管服务免费版 + 付费版 | ★ 193 | 1 天前 | Python | Codex · Claude Code |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
docs/security.md 对最小权限做了少见的细致处理:reach、mcpPolicy、allowedSenders、backgroundWork、computer、folders 各自独立、默认拒绝、旧记录有迁移,且明确说明模型输出不是执行点,强制在核心层完成(least_privilege=3)。但同一文档明确写着“调用时不询问用户、没有审批卡、没有按路径 ACL”,确认只在设置里一次性给出,属于有意的常设同意而非逐次确认(user_confirmation=2)。数据流方面说明了网络在所有 reach 下都开启、workspace 内容可外发、语音/图像请求发往哪些厂商域名,透明度尚可,但没有面向用户的统一数据流清单(data_flow_transparency=2)。敏感数据处理有 0600/0700 文件存储、密钥脱敏、图像结果不含密钥,但文档自己承认无自有加密层、root 或磁盘副本可读全部密钥(sensitive_data_handling=2)。依赖安全证据最强:CI 跑 cargo-deny advisories/licenses、cargo machete、bun audit,Cargo.toml 对 sherpa-onnx-sys 的 RUSTSEC-2026-0367/0368/0369 做了带理由的 patch,语音引擎与模型按 SHA-256 固定(dependency_security=3)。外部副作用方面文档承认“已派发的副作用在撤销后仍会存活”,且无撤销/回滚机制(external_effects=1)。回滚同样薄弱:只有撤销 lease 与重建 computer,没有版本回滚或状态恢复说明(rollback=1)。来源归属有 LICENSE-MIT/LICENSE-APACHE、发布流程与更新签名,但发布者身份未经 FollowAgents 验证,归属仅到仓库层面(source_attribution=2)。
仓库内部一致性较好:Cargo.toml 版本 0.43.0、发布工作流校验 tag 与 Cargo.toml/tauri.conf.json 一致、README 说明 Toad→Hotline 更名与 Electrobun 版本替换,叙述自洽(self_consistency=2)。依赖可得性有 Cargo.lock、bun --frozen-lockfile、固定工具版本与自托管 runner 回退,但 sherpa-onnx-sys 依赖上游 git commit 与外部脚本下载二进制,存在外部可得性风险(dependency_availability=2)。失败信息在安装脚本测试中体现得较具体(版本不匹配、校验和不符、用户不存在等),但产品运行时错误处理只能从文档推断(failure_messages=2)。
README 明确面向多模型、多 harness、桌面/服务器/手机多场景,受众清晰(audience_and_scenarios=2)。能力边界写得非常细:workspace 与 machine reach、ACP 外部托管、computer 不扩大 reach、Windows 无受限 shell(capability_boundaries=3)。触发精度方面,产品是常驻房间而非按触发词调用的 Agent,仓库未给出触发/路由规则的可评估证据(trigger_precision=1)。环境适配覆盖 macOS/Windows/Linux、headless server、容器运行时三选一,但 Windows 无 shell 沙箱、macOS 无 namespace、Apple container 不保留卷,平台差异明显(environment_fit=2)。
README 结构清晰并链接 docs/design、development、wire、sessions、computer 等,信息架构良好(information_architecture=2)。安装说明给出 curl 安装、server 模式与各平台包,但依赖外部站点脚本,仓库内细节有限(install_notes=2)。命名稳定性有 Toad→Hotline 更名与 ELECTROBUN_ 前缀遗留,虽已解释仍属变动(naming_stability=2)。示例与 FAQ 在可见文件中较少,主要是文档链接(examples_and_faq=1)。已知限制写得异常充分,含接受风险、平台差异、残余风险(known_limitations=3)。许可证为 MIT OR Apache-2.0 双许可,文件与元数据一致(license=3)。版本号存在,但可见文件中没有 CHANGELOG 内容,仅发布流程引用(versioning_changelog=1)。维护责任方面文档提到“George 的产品决策”,但无 CONTRIBUTING、SECURITY 联系方式或维护者声明,发布者亦未验证(maintenance_responsibility=1)。
输出可用性方面,产品形态(桌面+手机房间、多 Agent 协作)明确,但可见文件未展示实际输出样例或 UI 流程(output_usability=2)。边际价值在于多 Agent 同室协作、自带 harness、容器化计算机,相对单聊天工具有差异化,但同类产品竞争激烈且价值依赖配置(marginal_value=2)。成本收益方面,自托管需 Docker/Podman、模型密钥自付、语音模型半 GB 下载、构建链复杂(Rust+Tauri+bun+外部二进制),对普通用户成本偏高(cost_benefit=1)。
claim_traceability:安全文档为多数断言给出具体文件与测试名(如 wire::tests::voice_is_owner_only_through_the_real_handler),可追溯性较好,但部分断言仅文字描述(claim_traceability=2)。cross_source_corroboration:README、security.md、CI 工作流、Cargo.toml 之间在依赖固定、平台支持、许可证上互相印证(cross_source_corroboration=2)。fact_inference_separation:文档明确区分已实现与计划中、接受风险与缺陷,并标注“需设备验证”,分离较清楚(fact_inference_separation=2)。
- 安全模型依赖“设置时一次性授权”,运行时不逐次确认;一旦授予 machine reach 或 MCP 网关,Agent 可在无人复核下执行外部副作用。
- 文档明确承认网络在所有 reach 下开启,workspace 内可读数据可外发,且已派发的副作用在撤销后无法召回。
- 自托管服务器模式下密钥以 0600 文件存放且无自有加密层,root 或磁盘/备份副本可读取全部密钥。
- 安装依赖 curl 管道执行外部站点脚本,且构建链依赖上游 git commit 与外部二进制下载,供应链面较大。
- 发布者身份未经 FollowAgents 验证,维护责任与安全联系方式在可见文件中不明确。
- Windows 无受限 shell、macOS 无 namespace、Apple container 不保留卷,跨平台安全与持久性不一致。