Skip to content

curdx/swarmx

Repository files navigation

swarmx

在一个浏览器标签页里,把你本机真实的 claude / codex / opencode / reasonix / zulu 命令行,组成一支会协作的 AI 团队。

MIT License Rust 1.83+ Node 22+ Tauri English

swarmx 仪表盘:多个真实 CLI agent 并排运行

swarmx 是一个跑在本地的浏览器仪表盘。它在 PTY 下拉起你已经装好、登录好的编码 CLI——每个 agent 就是那个二进制本身——再给它们接上一套协作层:共享收件箱、共享黑板、 一个统一入口的队长。你用自然语言跟队长说要做什么,它自己拆解、派人、把结果汇总回来。

跑的是 CLI 本身,不是套壳。所以 OAuth、限流、套餐额度这些,都跟你在终端里敲 claude 时一模一样。swarmx 不读、也不存你的任何 token。

三件事

蜂群协作。 跟队长说需求,它自己决定是直接做,还是拆开派几个 worker(Magentic-One 那套:不预先画流程图,按任务临时派)。成员之间靠收件箱互相寻址——消息在对方下一个 回合边界投递,不轮询;靠黑板共享状态——黑板某个 key 一被写,所有在等它的 agent 当场 被唤醒,包括已经停下发呆的那些。

用自然语言跟队长对话 蜂群的实时依赖协作图

研究委员会。 重要决策别只问一个模型。让若干模型并行回答同一个问题,一个 judge 把它们的答案拆成共识、分歧、独特点、盲区来对比(是对比,不是投票),再由外层模型 综合出一份定稿。技术选型、方案评审、给一个高风险决定找反方意见——都比反复追问单个 模型强。

研究委员会:多模型并行答题、结构化对比、综合定稿

融合竞赛。 同一个需求,丢给几个模型各写一版,每版在自己隔离的 git worktree 里独立 实现;可以挂一条客观检查命令(比如 pytestcargo test)当硬门禁,judge 再综合各家 最优、合并回主线。新手只要填一句需求、勾上「全自动」、点一下,后面选模型、并行实现、 跑检查、综合、合并全自动,人不用管。裁决由服务端兜底,不会因为某个模型没收好尾就卡死。

研究委员会和融合竞赛的多模型,来自 Comate Zulu—— 一把 license 就能调十几个模型。在「设置 → 插件」页把 zulu 一键装上、填进 license 即可。

快速开始

前置:Rust 1.83+、Node 22+,以及至少一个登录好的 CLI(claude;想要自动唤醒回合的话 codex 需 0.132+)。opencode / reasonix 可选。

git clone https://github.com/curdx/swarmx.git
cd swarmx

# 全量构建(server 需要 shim 二进制在场,先跑这个)
cargo build --workspace
cd web && npm install && cd ..

# 终端 1:后端(从仓库根目录起)
cargo run -p swarmx-server          # → 127.0.0.1:7777

# 终端 2:前端
cd web && npm run dev               # → http://localhost:5173

打开 http://localhost:5173,把工作空间指向一个真实项目目录,直接跟队长说话就行。

想用研究委员会或融合竞赛,去「设置 → 插件」把 Comate Zulu 一键装上、填进 license—— 一把 license,十几个模型。

打成桌面包(Tauri)后,server / shim / mcp 三个二进制作为 sidecar 内嵌,下载装好打开 就能用,全程不碰命令行。

原理

三层,没别的:

  MCP   ─►  swarm_send_message / swarm_write_blackboard / swarm_spawn_worker …
            (LLM 直接调用的原生工具;swarmx-mcp 讲 stdio JSON-RPC)
  shim  ─►  swarmx-shim execvp 真 CLI,发 OSC ready/exit(约 70 行)
  PTY   ─►  未经修改的 claude / codex / opencode / reasonix / zulu 二进制

浏览器给每个 agent 开一条 WebSocket 跑实时终端,另有一条 /ws/swarm 事件流。Rust 服务端(axum,只绑 loopback)管进程、收件箱、黑板、录像,以及把黑板写入变成唤醒的 调度器。各引擎的差异——opencode 的 TUI、reasonix / zulu 的 HTTP/SSE——都收在各自的 适配器里,仪表盘看到的是统一的 agent。

文档

  • 配置参考:每个 SWARMX_* 变量、插件 / 角色 / spell 格式、REST + WebSocket API。
  • 交接协议:显式生产者 / 消费者契约的黑板 key 约定。
  • CLAUDE.md:仓库工作约定、打包不变量、发版清单。
  • CHANGELOG.md:每个版本的显著变更。

运行时资源(spells/init.mdroles/*.mdcli-plugins/*.toml)用 include_str! 编译进 server 二进制,所以打包版在 CWD=/、无环境变量的情况下也能跑。

安全

tmuxttyd 以及 CLI 本身一样的纯 PTY 凭据模型:不读 ~/.claude/~/.codex/ 这些目录,不存 OAuth token / API key,只把 HOME / PATH 透传给子 CLI,让它读自己的 配置。Comate license 只存本机 ~/.swarmx/comate.json

服务端只绑 127.0.0.1:7777,无远程访问、无鉴权,跟 cargo run 一个姿态。文件浏览器有 DNS-rebind 防护和凭据路径黑名单(~/.ssh*.pem~/.claude.json 等)。

贡献

CI 硬门禁:node scripts/harness-check.mjscargo build/test --workspace --lockedwebnpm run build,以及隔离后端的 directions-smoke.mjs。需要真实登录 CLI 的 swarm 烟测是手动的(scripts/golden-cli-test.sh)。

想验 UI 改动又不想碰你的开发会话,起一个隔离全栈:

bash scripts/test-stack.sh        # build + 起在 7788/5188,数据在 /tmp
bash scripts/test-stack.sh stop   # 拆掉

Star History

Star History Chart

许可

MIT

About

浏览器仪表盘:在 PTY 下拉起你本机真实的 claude / codex / opencode / reasonix / zulu 命令行,组成一个协作蜂群(共享收件箱 + 黑板 + 队长调度),并叠加多模型研究委员会与融合竞赛。Rust + React + Tauri。

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors