分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

kgoedecke/doop

效率与系统工具

一个多人设计画布,人类与 AI 代理通过 MCP 实时共同编辑 HTML 画面。

1,509
182
TypeScript
AGPL-3.0
创建于 2 个月前

项目介绍

Doop 是一个可自托管的多人在线设计画布,面向两类协作者:浏览器中的人和通过 MCP 接入的 AI 代理。画布(/c/<id>)由若干 Frame 组成,每个 Frame 在沙箱 iframe 中渲染真实 HTML。人在浏览器里绘制、通过检查器改 HTML、评论和做原型;代理通过内置 MCP 服务器创建 Frame、流式写入 HTML,并以自己的光标和状态出现在画布上。

任意 MCP 客户端都能接入——Claude Code、Codex、ChatGPT、Cursor 等——代理以批准它的账户身份行事,继承该账户的画布权限。Doop 还内置一个代理,会自动接走看板卡片和 @mention 评论,专业角色定义在 shared/agents.ts。

除代理编辑外,编辑器还覆盖评论与提及、PNG/JPG/PDF 导出、网站/运行中应用/GitHub 仓库导入、ready_for_dev 审批状态、可点击原型、Linear 与 Slack 集成、定时自动化以及 REST API。ios/ 下有一个 SwiftUI iPhone/iPad 客户端,用 Blitz 引擎渲染 Frame,仍处于开发中。

托管版本在 doop.design,自托管运行的是同一套代码。

快速使用

需要 bun 和 PATH 中的 Node(打包 Claude Desktop 扩展时会用到)。

git clone https://github.com/kgoedecke/doop && cd doop
bun install
bun run dev

执行后 Web 应用在 http://localhost:4300,API、WebSocket 和 MCP 服务器在其后的 4400 端口(Web 端口代理 /api、/ws、/mcp 等路径)。无需任何配置即可启动:数据写入 data/pg 下的嵌入式 PGlite,可选集成的环境变量未设置前保持不启用,完整清单见 .env.example。

把 Claude Code 这类 MCP 客户端接到本地实例:

claude mcp add --transport http doop http://localhost:4300/mcp

命令会打开 MCP OAuth 流程,在浏览器中批准后,让代理处理应用顶栏显示的画布 ID。通用 MCP 客户端使用同一个地址:{ "mcpServers": { "doop": { "type": "http", "url": "http://localhost:4300/mcp" } } }。

生产环境可直接构建单服务器镜像,或使用仓库自带的 Docker Compose:

BETTER_AUTH_SECRET=$(openssl rand -hex 32) docker compose up -d

两种方式都监听 4400 端口。正式部署应设置真实的 DATABASE_URL、BETTER_AUTH_SECRET 和 BETTER_AUTH_URL,并可用 GET /healthz 做健康检查。

使用约束

  • 数据库:嵌入式 PGlite 是单进程方案,只适合挂载 /app/data 持久卷的单实例;正式部署应把 DATABASE_URL 指向 Postgres。
  • 代理接入:/mcp 端点要求 OAuth(无头客户端可在 Settings → Agent keys 生成 agent key)。代理继承批准账户的画布权限,吊销 key 即断开。
  • 内置 Doop Agent:首次画布的欢迎演示是脚本化的(server/demo.ts),无需配置;真正的常驻代理需要用户连接模型账户,或服务端设置 ANTHROPIC_API_KEY 且 RESIDENT_TASK_LIMIT 大于 0。免费任务次数有限,连接账户后从下一个任务起立即接管。
  • 公网可达性:ChatGPT 和在线 Claude 连接器需要公网 HTTPS 服务器,localhost 要用桌面应用或隧道。
  • 账户与管理员:Web 应用需要 better-auth 账户。生产环境通过 ADMIN_EMAILS 提升管理员需要配置 SMTP;管理员身份本身不扩大画布访问范围。
  • iOS 应用:开发中,验证状态和发布要求写在 iOS README 中,不作保证。
  • 许可证:AGPL-3.0,可自托管和修改,但把修改版作为服务提供时须以同许可证公开改动;Doop 名称和标志是商标,衍生服务需改名。

HotRepo 点评

2026-11-02,该仓库在 TypeScript 日榜记录到 1509 星、当日新增 162 星,排名第 14。这只是一天的记录,说明一个 2026 年 8 月下旬创建的项目迎来了一波关注,不足以判断持续走势。

从设计上看它自洽:代理读写的是与人相同的 HTML Frame、审批状态和评论线程,权限控制在 server/access.ts 一处实现,API 与 MCP 共用。多个代理同时在线时实时协作是否稳定,现有资料没有给出依据,README 中的演示是唯一的佐证。

本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。