📈 GH Trending Explorer 🎲 Surprise me

← all repos

kgoedecke / doop

git clone https://github.com/kgoedecke/doop.git desktop-v0.5.0 · 9d ago

The open-source alternative to Paper.design. A multiplayer design canvas where humans and AI agents design together, live. MCP built in.

+16
stars, 24h · #2,222
+~133
stars, 7 days · #1,616
+~570
stars, 30 days · #1,446
944
★ total · +16% this week
124
forks · 22 open issues

Star history (as recorded here)

2026-10-20 · 887 ★ 2026-10-23 · 944 ★
LanguageTypeScript
LicenseAGPL-3.0
Created2026-08-22 (2mo ago)
Last pushtoday
Watchers7
OwnerUser

GitHub topics

Links

README excerpt
**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/ `) 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.
- **Design with agents, not prompts-and-refresh** — connect Claude Code (or any MCP client) once,
 then watch it sketch, stream and self-review designs on your canvas, next to your cursor.
- **A built-in Doop Agent** — queue a card or @mention a role and it designs on its own, no client
 to connect. Runs on the server's `ANTHROPIC_API_KEY` for a handful of free tasks, then on the
 **ChatGPT subscription** (or OpenAI key) each user connects (setup); the
 first-canvas welcome performance is scripted and runs without any of it.
- **Pages within a canvas** — organize frames into named pages from the Layers panel. Add, rename,
 drag to reorder, double-click to rename, or right-click to rename and delete empty pages.
 Page edits support Undo/Redo; selected frames can move between pages. Agents can list pages
 with `get_canvas`, manage them with `set_canvas_pages` (passing the original list as
 `expectedPages` to protect collaborators), and target frames with `pageId`.
- **True multiplayer** — live cursors, presence, per-frame editing indicators, undo/redo, comments
 pinned to elements, and an activity feed, all over one WebSocket room.
- **Design memory** — pin exemplar frames, capture decisions, and let the distiller propose durable
 style rules that every agent follows.
- **Private by default** — invite collaborators by email or flip on link sharing per canvas;
 agents inherit exactly their human's access.
- **Self-host in one command** — `docker compose up`, or `bun run dev` with zero configuration
 (embedded Postgres, no external services required).
## Quickstart
 [code] 
Doop builds and installs with bun (`bun.lock` is the only
lockfile); the server itself runs on Node.
- Web app: **http://localhost:4300**
- API + WebSocket + MCP server: **http://localhost:4400** (the web port proxies `/api`, `/ws`, `/mcp` to it)
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 one you will most likely want is
`ANTHROPIC_API_KEY`, which turns on the built-in Doop Agent — agents you connect
yourself over MCP need no key.
Or self-host the production build with Docker:
 [code] 
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 versi