PaperCraft app icon
Rust · egui · wgpu · MCP

A native canvas that AI agents can drive.

PaperCraft is an infinite-canvas design tool and whiteboard. It runs on your desktop with no account and no cloud, and it serves the Model Context Protocol so Claude Code, Codex and other agents can edit the open canvas, screenshot it and lint it, one undo step per call.

Local-first, no account98 MCP toolsWindows · macOS · LinuxMIT or Apache-2.0

A 40-second tour, rendered from the app's own design rather than screen-recorded.

Chat mode runs the agents you already use

Claude Code Codex Cursor OpenCode Goose Kimi Mistral Vibe Qwen Code Cline Copilot CLI Hermes Any ACP agent
For agents

Watch an agent build a screen.

Each tool call is one undo step. The agent writes HTML that becomes real layers, switches the theme by changing a variable mode, takes a screenshot and lints the result.

Agent run · Sign in0 undo steps
  1. create_artboard9 ms{"name": "Sign in", "width": 360, "height": 480}
  2. set_variables4 ms{"bg", "surface", "text", "accent"} with Dark and Light modes
  3. write_html18 ms<div style="display:flex; flex-direction:column; gap:12px"> → 6 layers
  4. update_styles3 ms{"#submit": {"background": "var(--accent)"}}
  5. set_variable_mode2 ms{"collection": "Colors", "mode": "Light"}
  6. get_screenshot41 mssign-in@2x.png
  7. lint_design7 mscontrast, 4px grid, type scale, touch targets
What you get

A real design tool, not a chat window with a canvas bolted on.

Frames, auto layout, components, variables and a hand-drawn whiteboard on one GPU-rendered canvas.

The editor

Layers, canvas, inspector. One native window.

Built in Rust on egui and wgpu. Cached frames take about 3 ms with ten thousand visible layers.

  • Auto layout with gap, padding, hug, fill, wrap and constraints
  • Pen and Bézier editing, boolean operations, gradients and blend modes
  • A command palette over every action, page and layer
PaperCraft with a habit-tracker design open: layers on the left, three annotated screens on the canvas, the inspector on the right
Chat mode

Pick an agent. Describe the screen.

A conversation sits next to the canvas. Point at layers with @ mentions or a picked area, and the agent gets a crop with your notes drawn on it.

  • Claude Code and Codex through their CLIs, with your own logins
  • Any ACP agent on your PATH, or the Anthropic API with your key
  • Every run can be reviewed, reverted one change at a time, or accepted
Chat mode: a conversation with an agent beside the canvas
Annotations

Annotate in place. Agents read the notes.

Pin typed notes for rules, behaviour, content and data to any layer, with a template per project. They travel with the design into the handoff spec.

The Annotations view listing notes grouped by screen, with their category chips
Design systems

Tokens out as CSS, DTCG or Tailwind. Code out as JSX.

Variables with modes and aliases, components that work across projects, and shared libraries you publish, enable and update.

  • Light and dark are modes on one artboard, never copies
  • Lint for contrast, the 4px grid, type scale and touch targets, with auto-fix
The Variables modal with Light and Dark values for brand, foreground and background
And the rest

Sketch it, present it, ship it.

Whiteboard mode

Hand-drawn shapes, arrows bound to shapes, elbow connectors, sticky notes, freehand ink and a laser pointer, on the same canvas as your screens.

.fig.excalidrawPDF

Import and export

Figma, Excalidraw and SVG in. PNG at 1 to 4x, SVG and vector PDF out, for a selection, a frame or a page.

Agent run · Sign in
Auto-version · 14:02
Before handoff

Versions and runs

Named and automatic versions per page. An agent run saves one before its first edit, so you can always go back.

WelcomeToday

Present mode

Prototype links between frames, followed with a camera glide.

MAJ

Shared projects

An optional relay merges concurrent edits to a page. Without one, nothing leaves your machine.

Themes

System, Light and Dark, plus the four Catppuccin flavours: Latte, Frappé, Macchiato and Mocha.

wasm32browser

Web build

The same editor compiled to WebAssembly, served by papercraft-relay.

Local-first

Your project is a folder on your disk.

Plain JSON you can back up, diff and commit. No account to make and no server to trust.

~/Documents/papercraft/Pulse/
├── project.json        # manifest, variables, components
├── pages/              # one JSON file per page
├── versions/           # named and automatic versions
├── runs/               # agent runs, for review and revert
└── chats/              # chat threads with their tool calls

Atomic autosave

Every write is atomic, and older files are migrated forward when they load.

Works with the app closed

papercraft-cli --offline runs the same tools on the project store, screenshots included.

Keys stay in your OS

API keys live in the system credential store and never in a project file, chat or log.

Connect

Same tools, three ways in.

The MCP server is built into the app and listens on loopback only. Browser requests and foreign hosts are rejected.

98

MCP tools, one undo step each

MCP over HTTPBuilt into the app at 127.0.0.1:29980/mcp.
MCP over stdiopapercraft-mcp relays to the running app.
Shellpapercraft-cli calls the same tools, so the agent needs no schemas in context.

Register it once

Start PaperCraft, then add it to your agent.

# Claude Code
claude mcp add --transport http --scope user \
  papercraft http://127.0.0.1:29980/mcp
# Codex
codex mcp add papercraft --url http://127.0.0.1:29980/mcp
# No app running
papercraft-cli call get_screenshot '{"nodeId":"abc123:1"}' \
  --project Demo -o card.png
Keyboard first

The shortcuts you'll use daily.

Command palette
Design or Chat mode
Variables
Annotate
Hide the side panels
Download

Get the latest build.

latest · GitHub releases

First run

The Windows zip is unsigned, so SmartScreen may ask you to confirm. macOS builds are ad-hoc signed and not notarized: open the app with right-click, Open the first time.

Build from source

Rust 1.95 or newer, then cargo build --release. Linux needs Vulkan or GL and the usual X11 or Wayland libraries.

Status

Alpha, and used daily.

PaperCraft is good for screens, design systems and sketches, and it is not yet a replacement for a mature design tool. The roadmap lists what is missing, in priority order.