Doop is the open-source alternative to Paper.design — a multiplayer
design canvas for humans and AI agents. Every design lives on a shareable Canvas
(/c/<id>) holding Frames — artboards that render real HTML in sandboxed iframes. People edit
in the browser; AI agents edit through the built-in MCP server, streaming their designs in
live. Everyone sees everything as it happens: cursors, presence, frame edits, agent status, and an
activity feed.
Think of it as Claude Design for whichever agent you already use: Claude Code, Codex, ChatGPT, Cursor, OpenCode or any other MCP client designs on the same canvas, and the built-in Doop Agent runs on GPT, Claude, Gemini, DeepSeek, Kimi or Qwen models (every agent and model).
ANTHROPIC_API_KEY for as many
free tasks as RESIDENT_TASK_LIMIT grants (none by default) (setup); the
first-canvas welcome performance is scripted and runs without any of it.get_canvas, manage them with set_canvas_pages (passing the original list as
expectedPages to protect collaborators), and target frames with pageId./c/<id>/proto. Agents use the same
data-doop-* attributes plus get_prototype / set_prototype_start.docker compose up, or bun run dev with zero configuration
(embedded Postgres, no external services required).Doop isn't tied to one model vendor. Every agent below designs through the same MCP server, works as the person who connected it, and shows up live on the canvas with its own cursor, status and tasks. Connect AI in the top bar walks you through each one.
| Agent | How it connects |
|---|---|
| Claude Code | claude mcp add, OAuth in the browser (setup) |
| Claude (web and desktop) | Add to Claude in Connect AI (setup) |
| Codex (CLI and desktop) | codex mcp add, OAuth in the browser (setup) |
| ChatGPT | A custom MCP server in ChatGPT, guided by Connect AI → ChatGPT |
| Cursor | Add to Cursor in Connect AI |
| OpenCode, VS Code Copilot, OpenClaw and more | Any MCP client, over OAuth or with an agent key (setup) |
| Headless agents (n8n, Mastra, CI) | An agent key as a bearer header (setup) |
No agent of your own? The built-in Doop Agent runs on the model account you connect: a ChatGPT subscription, or an OpenAI, Claude, Gemini or OpenRouter key. OpenRouter brings DeepSeek, Kimi, Qwen, GLM and MiniMax (details).
git clone https://github.com/kgoedecke/doop && cd doop
bun install
bun run dev
Doop builds and installs with bun (bun.lock is the only
lockfile); the server itself runs on Node.
/api, /ws,
/mcp, /.well-known, /i/, /ingest and /local-agent to it)bun run dev and bun run build also package the Claude Desktop extension with a Node script,
so Node must be on your PATH as well.
Everything works with no configuration: data persists to an embedded Postgres (PGlite) in data/pg,
and every optional integration (SMTP, stock photos, object storage, analytics) degrades gracefully
until its variable in .env.example is set (the ones that matter).
The built-in Doop Agent runs once a user connects a model account in Settings
(or on the server's ANTHROPIC_API_KEY if you raise RESIDENT_TASK_LIMIT) — agents you connect
yourself over MCP need no key.
Or self-host the production build with Docker:
BETTER_AUTH_SECRET=$(openssl rand -hex 32) docker compose up -d # app + Postgres on :4400
Production build without Docker: bun run build && bun run start (single server on :4400 serving
everything). Set DATABASE_URL to use a real Postgres — same code path as PGlite.
Prefer not to run anything? doop.design is the hosted version.
Once you sign in, Home is where you start: describe what you want and Doop makes a canvas with drafts queued for the Doop Agent, or pick up one of your canvases, workspaces and connected agents.
The bottom toolbar holds the tools; every one has a single-key shortcut. Shapes drawn on the canvas become standalone elements, and shapes drawn inside a frame become positioned HTML/SVG layers of that frame, so agents read and edit them like any other markup.
| Tool | Key | What it does |
|---|---|---|
| Select | V | Click to select, drag the background for a marquee, ⇧/⌘-click to add to the selection |
| Hand | H | Pan (Space or the middle button pans from any tool) |
| Frame | F | Draw an empty frame |
| Rectangle | R | Draw a rectangle |
| Circle | O | Draw a circle or ellipse |
| Vector path | P | Bézier pen: snaps to its own anchors, previews closing the path; Alt skips snapping |
| Text | T | Place a text layer |
| Comment | C | Pin a comment to an element or to the canvas |
W × H badge shows the size), drag the element to
move it within or across frames. The Design tab edits fill, stroke, text (font, size, weight,
alignment), opacity, corner radius, rotation, position, flex layout (direction, gap, padding,
wrap, alignment) and image fills; HTML shows its source; Prototype wires interactions. The
floating toolbar adds Comment, Ask AI (pre-fills an @mention), Code, Edit text and Copy link.| 日期 | 榜单 | 排名 | 周期新增 | 总 STAR |
|---|