返回博客

我们为什么要做 Beadbox

现在你可以同时运行 10 个 AI 编程智能体。打开一个 tmux session,给每个智能体分配任务,让它们通过 beads 进行协调。这套方案可以工作。我们每天都在用。

但有一个没人讨论的问题:你看不到任何正在发生的事情。

可见性缺失

beads 解决了记忆问题。在 beads 出现之前,智能体在不同 session 之间会忘掉所有内容。它们反复处理 markdown todo 文件,在上下文压缩后丢失信息,同一个 bug 发现了三次。beads 给了它们持久化、结构化、Git 原生的记忆。这是一个突破。

但 beads 是一个 CLI 工具。它是为智能体设计的,不是为监督它们的人类设计的。当你想了解项目的状态时,你运行 bd list,得到一个扁平的 issue 列表。你运行 bd show bb-abc 来查看某一个,然后再看下一个。接着运行 bd dep list 来了解什么阻塞了什么。你在脑海中一块一块地拼凑出全貌。

五个 issue 还行。五十个就不行了。当你有 10 个智能体在实时创建、更新和关闭 issue 时,CLI 跟不上你的节奏,更别说跟上它们了。

我们做了什么

Beadbox 是 beads 之上的可视化层。它监听你的 .beads/ 目录变化,在毫秒级延迟内将所有信息渲染到原生桌面应用中。当智能体在终端中更新一个 issue 时,你在 Beadbox 中看到的时间比 shell 提示符返回还要快。

无需账号。无需云端。无需同步。你的数据留在你的机器上,存储在智能体已经在使用的那个 .beads/ 目录中。Beadbox 只是读取它,让你看到正在发生什么。

在实际使用中是这样的:

带进度条的 Epic 树。 你的顶层 Epic 显示 12 个子任务中有 7 个已完成。展开它,你可以看到哪些子任务被阻塞、哪些在 QA 阶段、哪个智能体在处理什么。一眼就能替代十几条 bd show 命令。

实时同步。 我们通过文件系统监听数据库变化。当智能体提交状态变更时,Beadbox 通过文件监听管道捕获变化,并通过 WebSocket 推送到 UI。不需要轮询,不需要刷新按钮。

多工作区支持。 如果你同时处理多个项目,可以通过下拉菜单在不同 beads 数据库之间切换。每个工作区会记住自己的筛选器和视图状态。

依赖可见性。 每个 issue 上都会显示阻塞关系标签。你一眼就能看到 bb-q3l 正在等待 bb-f8o,不需要运行任何命令。

我们如何构建 Beadbox

我们使用 beads 和 Beadbox 来构建 Beadbox。这不是噱头。我们的日常工作流运行 10 个以上的 Claude Code 智能体,由一个 supervisor 智能体统一协调。工程、QA、产品、市场、发布,全部作为 bead 追踪在同一个数据库中。Nelson 通过 Beadbox 监控整个运作,智能体则负责创建 issue、认领工作、推送代码和汇报进展。

我们发布的每个功能都先在自己的工作流上测试。如果 Epic 树在你有 50 个活跃 issue 分布在 6 个智能体上时不好用,我们会在其他人遇到这个问题之前修复它。

技术栈有意选择了成熟方案:Next.js 做 UI,Tauri 做原生壳,bd CLI 作为唯一的数据源。我们从不直接读取数据库。每个操作都通过 bd 执行,这意味着 Beadbox 的显示永远和你的终端一致。

未来方向

今天,Beadbox 是一个仪表盘。你观察智能体工作、分类 issue、跟踪 Epic 进度。

明天,它将成为控制平面。我们正在朝着这样一个目标迈进:你可以从一个窗口向智能体派发工作、审查它们的产出、管理整个集群。终端仍然是智能体的主场。Beadbox 将成为你的主场。

我们在 beta 阶段,所以它是免费的。试试看。