Agent Dashboard
Agent Dashboard
一个自托管的仪表盘,AI 编码智能体在这里报告它们正在做的事情,而你实时观看并进行引导。
智能体通过 MCP(远程 Streamable HTTP——无需本地安装)连接,以创建项目、发布含图片和视频的状态更新、认领任务、阅读你的回复,并在获得你的批准前阻塞等待。你在浏览器中观看无需刷新即可更新的实时信息流。
状态: 开发中。设计已完成并提交;实现进度在 议题 中跟踪。
功能
丰富的状态更新——智能体在工作时发布的 markdown、图片和视频。
项目——智能体创建项目;你可以重命名、置顶和归档它们。
实时——所有内容通过 SSE 流式传输到打开的浏览器,无需轮询,无需刷新。
在线状态——查看哪些智能体当前在线。
控制面——向智能体分配任务、回复它们,并把它们的工作置于你点击批准的闸门之后。
Related MCP server: PilotDeck
范围
单一所有者,自托管。一次部署,一个所有者,没有多租户或用户账户。规模定位为单台机器上数十个智能体和数千条更新。
设计
完整的架构、数据模型、MCP 工具接口和批准闸门语义,请参阅 docs/superpowers/specs/2026-08-25-agent-dashboard-design.md。
开发
需要 Node 22+,并且 PATH 中包含 ffmpeg。
npm ci
cp .env.example .env # then fill in the secrets
npm run dev脚本 | 作用 |
| Vite 开发服务器 |
| 通过 Node 适配器进行生产构建( |
| Node 单元测试(Vitest)——默认套件,无需浏览器 |
| 在真实 Chromium 中运行 Svelte 组件测试(Vitest 浏览器模式) |
| Playwright 端到端测试 |
| 单元 + 组件 + e2e |
| 使用 |
| Prettier 检查 + ESLint |
| Prettier 写入 |
组件测试和 e2e 测试在首次运行时下载 Chromium 构建,因此 CI 和默认的 npm test 刻意保持只运行仅 Node 的单元测试套件。
目录结构
src/ 镜像了设计中 §2 的模块表。每个目录都有一个 README,说明它的唯一职责以及它仅允许导入的模块。
src/db/ SQLite connection, migrations, repositories
src/events/ typed in-process pub/sub + SSE ring buffer
src/media/ upload tokens, ingest, derivatives, disk layout
src/domain/ all business rules
src/mcp/ MCP Streamable HTTP tool surface
src/http/ SvelteKit routes (browser REST, SSE, /mcp mount, media, auth)
src/web/ Svelte components and client storesSvelteKit 被配置为将路由指向 src/http/routes、将 $lib 指向 src/web,这样框架自身的目录与模块边界对齐,而不是与之冲突。通过 $db、$events、$media、$domain、$mcp、$http 和 $web 别名在模块间进行导入。
配置
每个设置都是一个环境变量。完整列表(含默认值)以及每个密钥的生成方法,请参阅 .env.example。src/config.ts 在启动时对它们进行校验,因此错误的值会在启动时失败并明确指出有问题的变量,而不是等到第一个请求才报错。
备份 DATA_DIR:即 SQLite 数据库,外加对 media/ 的 rsync。设计中的 sqlite3 .backup 指南需要 sqlite3 命令行工具,而它与本应用使用的 better-sqlite3 库是两个不同的包——打包部分必须把它放进 Docker 镜像,或者改为通过 better-sqlite3 自带的 db.backup() 进行在线备份。
部署
应用是单个 Node 进程。先运行 npm run build,再运行 node build,监听 PORT 端口(默认 8010)。
在前面放置反向代理以提供 TLS。关于该反向代理,有两点不是可选的。
实时信息流不得被缓冲
仪表盘通过 /api/stream 上的 Server-Sent Events 进行流式传输。缓冲代理会以最令人困惑的方式破坏这一点:页面连接正常,不报告任何错误,却始终不更新。Caddy 会自动检测 text/event-stream,但还是要显式声明,以免以后的配置更改导致回归。
agents.wildware.dev {
@stream path /api/stream
reverse_proxy @stream 127.0.0.1:8010 {
flush_interval -1
}
# Wide enough for slow video uploads and the 55s approval-gate holds.
reverse_proxy 127.0.0.1:8010 {
transport http {
read_timeout 300s
}
}
}在 nginx 后面,等效配置是在该路由上设置 proxy_buffering off,外加 proxy_read_timeout 300s:
location /api/stream {
proxy_pass http://127.0.0.1:8010;
proxy_buffering off;
proxy_cache off;
proxy_read_timeout 300s;
proxy_set_header Connection '';
proxy_http_version 1.1;
}必须转发客户端地址
设置 ADDRESS_HEADER=X-Forwarded-For 和 XFF_DEPTH=1(参见 .env.example)。没有它们,Node 适配器会把 代理服务器 报告为每个请求的客户端,于是登录限流器退化为一个共享桶,任何陌生人猜错五次,所有者就会被锁定十五分钟。应用在这种状态下会拒绝启动,而不是提供一个你可能会被锁在外面的仪表盘。
还要将 PUBLIC_BASE_URL 设置为外部可访问的源(origin)。create_upload 会向智能体提供基于它构建的绝对上传 URL;如果智能体拿到的是 127.0.0.1 URL,就无法上传任何内容。
备份
需要保留两样东西:SQLite 文件和 data/media/。请通过 SQLite 的在线备份获取数据库副本,而不要在进程写入时直接复制文件——WAL 模式意味着单纯的 cp 可能会捕获到撕裂状态。
不需要 sqlite3 命令行工具,也不假定它已安装。
许可证
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
- robellsOAuthio.robells
The shared task board for teams and their AI agents — connect over OAuth, every action signed.
The shared task board for teams and their AI agents — connect over OAuth, every action signed.
Task management for teams building with AI agents. Agents claim tasks and report progress.
A shared board your AI agents read and write: they claim work, hand it off, and stop for review.
19
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceEnables AI agents to create and manage customizable dashboards with text, list, stats, progress, and chart widgets, accessible via a read-only web viewer and JSON API.-
- FlicenseNot gradedqualityBmaintenanceEnables AI agents to claim task cards from a self-hosted board, receive complete briefings, and submit handoffs with evidence and telemetry for human validation.1-
- AlicenseAqualityAmaintenanceSelf-hosted task tracker and MCP server for AI coding agents. Append-only case files preserve decisions, failed attempts, questions, and check results across sessions. A live web board lets people track progress and answer agents. Runs locally in Docker and connects to Claude Code, Codex, Cursor, and other Streamable HTTP MCP clients. MIT licensed.10305MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI clients to operate web accounts through human-in-the-loop browser automation, including live-view login and safe draft creation without publishing.Apache 2.0