Waku 将编码代理的命令行工具集成到本地原生桌面应用中

版本 0.1.0 使用 Rust、GPUI 和 Git 检查点来合并代理活动,无需 Waku 账户或云中介。

By · Published

Primary source: Waku

Why it matters

Coding agents are multiplying faster than their interfaces. Waku is betting the durable layer will be a local, provider-neutral record of agent work and code state.

Illustration of a 'Waku' control tower representing the native Waku desktop app unifying coding-agent CLIs with Rust, GPUI and Git checkpoints.

Waku 当前版本 0.1.0 是一个本地桌面控制平面,用于开发者已经运行的 coding-agent 命令行工具。Waku 使用 Rust 和 GPUI 构建,将会话、转录、工具活动和仓库检查点收集到一个本地应用中。

该构建者做了一个明确的产品押注。使用多个 coding agent 的开发者并不一定需要另一个 agent、模型或编辑器。他们需要的是一个可靠的地方来查看每个 agent 做了什么、中断它、继续对话以及在任务出错时恢复。

这个决策影响了 Waku 的几乎所有部分。它避免使用 Electron,将其工作数据存储在用户的机器上,并通过已有 agent CLI 的结构化接口进行连接。应用随后把这些不同的事件流转换为一个与提供者无关的模型。

Waku 桌面界面,显示 coding-agent 会话
Waku 将代理会话、项目状态和控制放在本地桌面界面中。图片:Waku.

一个置于 agents 之上的界面

Waku 的设计目标是驱动现有工具,而不是要求开发者采用新的 agent 运行时。根据其产品页面,该应用通过包括 stream-JSON、JSON-RPC 和 live events 在内的接口进行连接,为每个提供者选择最强的可用连接。

Waku 发布的截图似乎显示在底层驱动层中有 Amp、Claude Code、Codex、Cursor、OpenCode、Grok 和 Pi。其架构目标是让这些提供者在公共时间线上显示为会话,同时保留它们各自的认证和执行路径。

这种方法让 Waku 的开发者承担了与构建模型封装器不同的任务。每个受支持的 CLI 都可能独立更改其事件模式、会话格式和恢复行为。Waku 的价值将取决于其适配器吸收这些差异的能力,以及在提供者更新其工具时恢复速度的快慢。

界面以键盘为先。Waku 表示 Command-N 启动会话,Return 在 agent 工作时排队另一个提示,Command-Return 操控当前回合,Escape 停止它。这些控制将 agent 的工作视为需要监督的持续过程,而不是一系列孤立的聊天消息。

回滚是核心产品决策

Waku 最具影响力的功能位于转录之下。每个提示都会在一个隐藏的 Git 引用下为工作树创建一个检查点。开发者随后可以一起恢复仓库和关联的提供者对话。

这种配对很重要,因为单独的聊天记录并不能完整记录 agent 的工作。编码 agent 在多个回合中读取文件、运行命令并编辑仓库。仅重新打开旧消息而不恢复相应代码会导致对话与工作树不同步。

Waku 的构建者实际上将提示视为事务边界。每条指令将会话状态与仓库状态关联起来。当 agent 采取错误方法、做出过于广泛的更改或将项目置于难以诊断的状态时,这就提供了一条回退路径。

该机制也使 Waku 比通用的 agent 仪表盘具有更明确的角色。它成为本地记录:开发者所要求的内容、agent 报告的内容以及在当时代码中发生的更改。

原生软件是押注的一部分

选择 Rust 和 GPUI 对 Waku 的主张至关重要。GPUI 是由 Zed 背后的团队创建的 GPU 加速界面框架。

Waku 的主页称原生应用避免了 Electron,提供即时启动并能在长转录中实现平滑导航,虽然它并未公布独立的性能测量数据。

Waku 还表示项目、转录、会话和提供者标识符保留在磁盘上,不需要 Waku 帐户、遥测或托管中介。这种本地架构减少了 Waku 必须运营的基础设施数量,并使开发者直接掌控应用的记录。

这并不意味着底层的 coding agents 变成本地化。提示、代码和工具输出仍然受用户所选的 agent CLI 和模型提供者的行为与策略约束。Waku 控制其自身的存储层;它并不替代其下方的提供者。

在分发方面,Waku 表示该应用已签名并经过公证,使用 Sparkle 通过二进制差分处理自动更新。对于一个可能需要频繁修复其集成以应对 agent 供应商接口变化的新桌面产品,这一点很重要。

Coding-agent 控制平面正变得拥挤

OpenAI 推出了 Codex 桌面应用 于 2 月 2 日面向 macOS,并于 3 月 4 日增加了对 Windows 的支持。Codex 将多个 agent 组织到项目线程和隔离的工作树中,但仍以 OpenAI 的 agent 堆栈为中心。

Zed 的代理系统 支持其本地 agent、通过 Agent Client Protocol 连接的外部 agent 以及基于终端的 CLI 会话。它还允许开发者在编辑器内并行运行多个线程。

cmux,一个用于监督 coding agents 的原生 macOS 终端,以垂直选项卡、通知和 socket 控制 API 采取了另一种相邻的方法。

Waku 选择了一个更狭窄的独立角色。它既不是完整的编辑器,也不是第一方模型界面。开发者押注程序员会保留多个 agent 订阅和 CLI,从而对置于它们之上的中立桌面层产生需求。

0.1.0 版本必须在真实的提供者波动下证明这种中立性。只有当会话正确恢复、工具事件保留其含义且检查点恢复开发者期望的确切状态时,统一的时间线才有用。那些可靠性细节将决定 Waku 是成为日常基础设施,还是成为开发者只用于查看有趣演示的另一个界面。

主页上的那句 "YNot backed by Y Combinator," 是文字游戏而非融资声明。Waku 目前的论据依赖于产品本身:一个构建者试图将越来越多的 agent 终端工作堆整合成一个快速、可逆的工作流。

Reader comments

Conversation for this story loads after sign-in.