Boss

Boss 是一个面向多设备开发协作的 agent control plane。

它的目标是让用户通过对话入口或独立控制台,持续管理多台 Windows、Mac 上的编码代理,支持任务拆分、实时进度、需求变更、审批和审计。

当前状态

当前仓库已经包含产品设计文档与一版可直接跑起来的本地控制台:

当前原型能力:

  • Fastify API
  • 文件持久化状态存储
  • SSE 实时事件流
  • Web 控制台
  • Android 主控 APPJetpack Compose
  • boss-worker 模拟执行器
  • boss-worker 外部命令执行模式,可接本地 Codex / Claude / 自定义脚本
  • AI Glasses 云服务器一键部署脚本
  • 命令行对话入口脚本
  • npm run smoke 自动跑端到端验证
  • Dockerfile + compose.yaml 支持容器启动

当前推荐方向

  • 主控面Web 为主,聊天入口为辅
  • ManagerCodex
  • 设备侧 workerCodex CLI + Claude Code
  • 工具层MCP
  • 调度:持久队列或工作流引擎

本地运行

npm install
npm run demo

浏览器打开:

http://127.0.0.1:43210

如果你只想单独启动服务端:

npm run dev

如果你想把数据写到独立文件,避免和默认 demo 数据混用:

BOSS_DATA_FILE=.boss-data/local-dev.json npm run dev

云端主控部署

如果你要按最初的产品策略来跑:

  • 云服务器只跑 Boss control plane
  • 你的 Windows / Mac 本机各自跑 worker
  • 你通过浏览器或命令行和云端主控对话

仓库已经内置 AI Glasses 云服务器部署脚本:

./scripts/deploy_ai_glasses_server.sh

这条脚本会优先尝试 Docker 部署;如果云机拉不到 Docker Hub 镜像,会自动回落到 Node 常驻进程模式。

部署完成后,先用这个脚本确认云端状态:

./scripts/boss_cloud_status.sh

查看云端日志:

./scripts/boss_cloud_logs.sh

默认云端入口:

http://111.231.132.51/boss/

这就是你当前最短的“主账号对话入口”。

如果你要手工启动 worker

npm run worker -- --name win-a --os windows --capability terminal --capability browser
npm run worker -- --name win-b --os windows --capability terminal --capability test
npm run worker -- --name mac-a --os macos --capability terminal --capability test --capability browser

如果你要接真实本地执行器,而不是模拟执行:

npm run worker -- \
  --name mac-codex \
  --os macos \
  --capability terminal \
  --capability test \
  --mode command \
  --workspace /path/to/project \
  --executor ./scripts/codex_executor.sh

也可以接 Claude Code 或任意你自己的脚本,只要命令能从环境变量里读取任务上下文:

  • BOSS_TASK_TITLE
  • BOSS_TASK_DESCRIPTION
  • BOSS_TASK_KIND
  • BOSS_TASK_JSON
  • BOSS_WORKSPACE
  • BOSS_WORKER_NAME

仓库里已经自带两个可直接改造的适配脚本:

  • ./scripts/codex_executor.sh
  • ./scripts/claude_executor.sh
  • ./scripts/codex_executor.ps1
  • ./scripts/claude_executor.ps1

例如:

npm run worker -- \
  --name win-claude \
  --os windows \
  --capability terminal \
  --capability browser \
  --mode command \
  --workspace /path/to/project \
  --executor ./scripts/claude_executor.sh

怎么和系统对话

当前推荐两种方式:

  1. 浏览器入口
    打开云端控制台:
http://111.231.132.51/boss/

这是最符合产品策略的入口,也是主控面。

  1. 命令行聊天入口
    仓库里自带一个简单 CLI可以直接发消息给 Boss
BOSS_SERVER_URL=http://111.231.132.51/boss ./scripts/boss_chat.sh create "Boss 主控对话"
BOSS_SERVER_URL=http://111.231.132.51/boss ./scripts/boss_chat.sh send "先调研这个问题,不要急着改代码。"
BOSS_SERVER_URL=http://111.231.132.51/boss ./scripts/boss_chat.sh status

这条 CLI 入口后面也很容易改造成 Telegram / Slack / 企业微信 webhook。

  1. Android 主控 APP
    仓库现在已经带了一个原生安卓端,适合把“对话、切换设备、绑定设备、审批、看任务”统一放到手机里完成。

首次构建前,先在 android-app 目录满足其中一个条件:

  • 设置 ANDROID_HOMEANDROID_SDK_ROOT
  • 或手工创建 android-app/local.properties,内容类似:
sdk.dir=/Users/yourname/Library/Android/sdk

然后构建 debug 包:

cd android-app
./gradlew assembleDebug

输出 APK

android-app/app/build/outputs/apk/debug/app-debug.apk

如果你后面要只用那台荣耀无线调试手机来联调,仓库里已经有固定目标脚本:

./scripts/android_honor_debug.sh build-install
./scripts/android_honor_debug.sh launch
./scripts/android_honor_debug.sh screenshot

这个脚本默认只会操作当前锁定的荣耀设备,不会去碰别的安卓手机。需要切换目标时,再通过 BOSS_ANDROID_SERIAL 显式覆盖。

安卓端当前包含:

  • SSE 实时同步,自动订阅所有客户端的项目、对话、审批和任务进度
  • 事件流断开时自动降级轮询,尽量保持跨端数据连续同步
  • 会话创建、切换、持续对话
  • 任务分组查看、暂停、恢复、取消、重排
  • 审批查看与批准/拒绝
  • 设备列表、设备聚焦切换、设备下线
  • 绑定新设备并生成启动命令
  • 云端 Boss 地址切换与重排入口

同步模型说明:

  • 电脑端 Web 控制台已经使用 SSE 实时事件流
  • 安卓端现在也使用 SSE并在断线时自动重连和降级轮询
  • 手机和电脑都直接读写同一套 Boss control plane 状态,所以项目、消息、审批和任务进度会尽量保持高同步

一键本地 demo

npm install
npm run demo

这会拉起:

  • Web/API 服务
  • 2 台 Windows 模拟 worker
  • 1 台 Mac 模拟 worker

自动 smoke test

npm run smoke

容器启动:

docker compose up --build

当前 v1 能力

  • 创建项目会话并持续对话
  • 自动生成任务树并调度到不同 worker
  • worker 心跳、掉线回收、任务重排
  • worker 真实外部命令执行,支持本地命令适配
  • 审批、暂停、恢复、取消、重排
  • SSE 实时事件流和 Web 控制台
  • 会话归档与恢复
  • 云端主控部署脚本与状态脚本
  • 命令行对话入口
  • 一键 demo 启动
Description
Boss multi-device agent control plane prototype
Readme 184 MiB
Languages
Kotlin 39.6%
TypeScript 36.3%
JavaScript 10.9%
Shell 8.4%
CSS 2.1%
Other 2.7%