AI News HubLIVE
站内改写2 分钟阅读

Show HN:Fleet Deck – 在一面板上查看机器上所有 Claude Code 会话

Fleet Deck 是一个本地工具,可实时监控和管理所有正在运行的 Claude Code 会话。它提供一个看板,显示每个会话的状态、冲突提醒、需求队列,并支持任务分配、远程控制、会话恢复等功能。核心架构零模型调用,依靠钩子事件和确定性逻辑,确保安全与高效。

来源Hacker News AI作者: lacion

Fleet Deck 是一个专为管理多个 Claude Code 会话而设计的本地监控与控制面板。无论你是在同一个仓库的不同工作树中启动多个会话,还是临时创建几个辅助任务,Fleet Deck 都会将它们统一展示在一个浏览器看板上。每个会话都有一个独特的呼号(如 falcon-a3f2),并显示其实时状态:排队、工作中、验证中、需要你、空闲、离线。这些状态完全基于钩子遥测,而非会话自报,从而避免了“觉得自己快完成了”的乐观误导。

冲突检测是 Fleet Deck 的核心功能之一。当两个会话在 30 分钟内尝试编辑同一文件时,这两个会话都会收到一条“协调,不要覆盖”的上下文警告,同时看板上的相关卡片会闪红。该检测还支持工作树感知:如果在仓库的两个不同工作树中编辑同一个文件,它也能提前预测未来的合并冲突。

看板上的“需要你”轨道会收集所有来自会话的权限请求、选择题、MCP 表单以及“我应该用 bcrypt 还是 argon2?”这类问题,你可以直接从看板作答。终端甚至不再显示这些提示,而是直接打印“⎿ 已由 PermissionRequest 钩子允许”并继续执行。此外,Fleet Deck 还提供邮件功能,你可以向单个会话、整个仓库或所有会话发送消息。消息在下一个轮次边界送达,空闲会话通常会在几秒内收到通知。

Fleet Deck 还包含一个轻量级的编排器。你可以通过“assign auto: fix the flaky test”这样的指令让看板自动选择一个最佳候选会话(空闲、负载最低、仓库匹配)来执行任务,整个过程通过 SQL 查询完成,不调用任何模型。你的 Token 不会被额外消耗。看板上的“+ Spawn”按钮可以启动一个全新的交互式 Claude 会话,并在 tmux 窗口中运行,你可以实时观看其工作,也可以随时终止它。

高级功能包括批量生成:勾选“batch”后,可以在输入框中按行列出多个任务,每个任务会创建一个独立的 git 工作树和分支,互不干扰。3x 前缀可以让同一任务并行运行三次,以便竞速找出最佳结果。在启动前,表单会精确展示会话数量,让你对资源使用一目了然。

Fleet Deck 的设计强调零模型调用和失败开放。守护进程(fleetd)是一个 Node.js 后台程序,使用 SQLite 存储状态,默认只绑定本地回环地址 127.0.0.1,因此外部无法访问。即使守护进程崩溃,钩子会静默超时,会话照常运行,不影响工作。看板本身是基于 React 的单页应用,通过 WebSocket 与守护进程通信。

对于用户关心的安全性:Fleet Deck 的核心不做任何模型调用,只进行确定性逻辑处理。唯一的额外消耗是每次会话的 ~100 token 的简短报告和偶尔的提醒。远程控制功能允许通过 claude.ai 从手机操控会话,但默认绑定回环,只有设置 FLEETDECK_BIND=0.0.0.0 并配置令牌后才能从 LAN 访问。

Fleet Deck 还支持会话恢复(Revive)。当机器重启或 tmux 崩溃后,已丢失的终端不会丢失工作——git 工作树和会话记录仍在磁盘上。离线但工作树和记录完整的卡片会显示“⟲ revive”按钮,点击后使用 --resume 标志在原始工作树中重新启动会话,保留相同的呼号和完整历史,甚至会话 ID 也会延续。

安装方面,Fleet Deck 可以通过 Claude 插件市场安装:只需在终端中运行两条命令,然后任何新的 claude 启动都会自动向看板注册。它要求 Node 22.5+,无需额外的 npm 安装(守护进程作为单个捆绑文件提供),并支持 Linux、WSL2 和 macOS。tmux 是可选的,但启用后可以查看终端面板或生成工作线程。

总之,Fleet Deck 为 Claude Code 用户提供了一个强大的空中交通管制塔,帮助管理复杂的工作流程,减少冲突和混乱,同时保持极低的开销和极高的可靠性。