Your files, your machine.
No accounts, no teams, no quotas, no cloud sync. Every file is plain JSON you can read, diff and back up.
~/.openpaper/
├── files/
│ ├── northbound.json
│ └── pricing-page.json
├── assets/ # images, content-addressed
├── config.json # your keys, owner-only
└── index.json
~/Downloads/OpenPaper/ # exports
One folder. Plain files.
Designs, images and settings live in one folder you control. Move it with OPENPAPER_HOME, and send exports elsewhere with OPENPAPER_EXPORT_DIR.
Localhost only
The server listens on 127.0.0.1 and refuses requests from other web origins.
Keys stay on disk
Stored owner-only in config.json, never sent to the editor.
No account
Nothing to sign up for, nothing to sign in to.
MIT licensed
Read the code, fork it, ship it.
What goes online, and when.
Only the features you use, with the keys you add.
- Google Fonts
- Fetched for the Google fonts your designs use.
- Anthropic
- When you use the built-in design agent, with your key.
- OpenAI or Gemini
- When an agent generates an image, with your key.
- Figma
- When you paste from Figma with a token set, to fetch the images.
External agents like Claude Code talk to OpenPaper over MCP on your machine. What they send to their own model provider is up to them.
Yours to run.
Free, open source, and local by default.