这个项目能做什么
Swarm 是一个本地优先的控制平面,专为同时运行多个 AI 编码代理的开发者设计。它作为你机器上的单个守护进程运行,读取 Claude Code、Codex CLI、Gemini CLI、Grok、Aider 和 opencode 等代理已生成的钩子、转录和会话日志——无需对你的仓库进行任何仪器化更改。所有状态都存储在 ~/.swarm/ 中,仪表板绑定到 127.0.0.1,因此没有任何数据离开你的机器,无需账户,且可离线工作。
核心价值在于可观测性和协调性。Fleet 视图实时显示每个项目中所有会话:哪个代理在运行、在哪个分支上、当前正在做什么、模型、输出令牌、上下文大小、成本和年龄。重复失败命令的会话会获得 Stuck 徽章和桌面通知。Session 视图实时流式显示代理的推理和工具调用,包括每轮成本、缓存命中率、思考占比和工具直方图。Replay 可逐步回放工具调用,包含完整输入和输出,已结束的会话可从其停止处恢复。
Board 作为项目的协调账本。它跟踪来自 Markdown 待办事项、GitHub Issues 或 Linear 的任务,带有通过/失败门控和 Run/Dispatch 操作。任务声明保存在隔离的 git worktrees 中,每个都有分支、漂移、脏/未推送状态及其中的会话。运行时资源——端口、开发服务器、数据库——作为命名单例持有。Incidents 记录规则询问或拒绝的每个命令,并提供 Codify 操作,将其转换为 .swarm.toml 规则和 CLAUDE.md 教训。
规则是 Claude Code 会话运行 Bash 命令的护栏:shared_tree、destructive_git、pattern_kill、protected_ports、no_foreign_worktree 和 claim_required_to_write。每个规则在 .swarm.toml 中按仓库设置为 ask、deny 或 off。拒绝会作为真实的权限拒绝返回给 Claude Code。作为资源持有的端口会自动受到保护。这些是针对事故的护栏,而非沙箱。
Swarm 还可以生成代理:swarm run --task X 声明一个任务并在其 worktree 中生成 claude -p,可通过 stdin 控制,通过 pid 停止。swarm dispatch --ready 将每个可声明任务交给其自己的 run,一次 N 个。运行配置文件(full、no-edits、read-only)缩小生成代理可执行的操作范围。.swarm.toml 中声明的门控在任务的 worktree 中执行——退出码 0 通过,输出尾部作为证据。每个暂停的会话都会留下自动交接,包含编辑的文件、最后验证命令和最后请求;该 worktree 中的下一个会话会在启动时注入这些信息。
遇到只有人类才能做出的决策的代理会调用 swarm_ask;问题显示在会话页面上,选项作为按钮,Fleet 显示 Asking 徽章,触发桌面通知,答案会到达代理本身。.swarm.toml 中的声明式工作流自动推进:run 步骤生成代理,gate 步骤必须通过才能继续,pr 推送分支并打开拉取请求。通过 swarm_send 进行的代理间消息传递可通过 id 到达另一个会话、持有任务的任何人或主导会话。
PRs 视图提供跨 GitHub 和 GitLab 的单一合并队列,通过你已认证的 gh 或 glab CLI 读取。不存储任何令牌。Timeline 按项目显示会话通道,按代理着色,时间跨度为 3–72 小时。Spend 和 Stats 按项目、模型、代理和任务细分成本,并提供上下文预算表,按会话重新读取的上下文量排名。每个仓库的预算强制执行每日或每周上限,可警告、询问或停止。Outcomes 跟踪工作是否存活:会话加入分支,分支加入其 PR,PR 合并或回滚,按模型和代理评分,包括合并率、中位合并时间和每次合并的美元成本。实时二分图显示运行中的会话与其触及的文件;两个会话持有且至少一个写入者的文件会变红——这是你仍可预防的合并冲突。
Swarm 可作为 CLI(bunx @ra3orblade/swarm setup)、桌面应用(macOS 签名并公证,Windows,Linux .deb/.rpm)和 MCP 服务器使用,让代理自行协调。团队守护进程(swarm-teamd)是自托管的第二服务,用于多机器设置,转发审计事件、支出汇总和声明——除非机器选择加入,否则绝不转发转录文本。团队包在 FSL-1.1-ALv2 下提供源代码,每次发布两年后转换为 Apache-2.0;其他所有内容均为 Apache-2.0。
评论
0 评分人数达到10人后显示
登录后参与讨论。