Open Design

Quickstart

Three commands. No signup.

Open Design has one entry point: pnpm tools-dev. The daemon auto-creates a hidden .od/ folder for the SQLite project DB and per-project artifacts. There is no od init step.

Requirements

  • · Node ~24nvm install 24 && nvm use 24 or fnm install 24 && fnm use 24
  • · pnpm 10.33.xcorepack enable && corepack pnpm --version
  • · At least one supported coding-agent CLI on your PATH — Claude Code, Codex, Cursor, Gemini, OpenCode, Qwen, Copilot, Devin, Hermes, Kimi, Kiro, Vibe, or Pi (or none, if you'll use the BYOK proxy)

Three commands

git clone https://github.com/nexu-io/open-design.git
cd open-design
corepack enable
pnpm install
pnpm tools-dev run web

Open the web URL printed by tools-dev. Pop the welcome dialog, paste an Anthropic key (only needed for the BYOK fallback path), type a prompt, hit Send.

First-run state

The daemon owns one hidden folder.

.od/
├── app.sqlite                 ← projects · conversations · messages · open tabs
├── artifacts/                 ← one-off "Save to disk" renders (timestamped)
└── projects/<id>/             ← per-project working dir, also the agent's cwd
Want to… Do this
Inspect what's in there ls -la .od && sqlite3 .od/app.sqlite '.tables'
Reset to a clean slate pnpm tools-dev stop && rm -rf .od && pnpm tools-dev run web
Move it elsewhere Not supported yet — the path is hard-coded relative to the repo

Lifecycle commands

All under pnpm tools-dev.

pnpm tools-dev start       # boot daemon + web (background)
pnpm tools-dev run web     # foreground equivalent
pnpm tools-dev stop        # stop everything
pnpm tools-dev status      # what's running, where
pnpm tools-dev logs        # tail daemon + web logs
pnpm tools-dev inspect     # IPC into running processes
pnpm tools-dev check       # health checks

For desktop / background startup, fixed-port restarts, and media-generation dispatcher details (OD_BIN, OD_DAEMON_URL), see the QUICKSTART.md on GitHub.

Platforms · v0.5.0

Three platforms, three states.

0.5.0 is honest about where each platform stands. Pick the row that matches your machine.

PlatformStatusNotes
macOS Stable Apple Silicon (arm64) only — no Intel build. macOS 11 Big Sur or newer.
Windows Stable · unsigned x64, Windows 10 / 11. SmartScreen warns on first launch — choose More info → Run anyway.
Linux Headless only First-class CLI lifecycle (install / start / stop) landed in 0.5.0. No GUI package yet — fits servers and CI. See below.

Linux · headless

Run Open Design on a server with no DISPLAY.

v0.5.0 ships a non-graphical lifecycle path. Bring the daemon and web up on a headless Linux box, then hit it from your laptop browser. Same backend, no Electron shell in front.

pnpm install
pnpm tools-pack linux install --headless   # one-time setup
pnpm tools-pack linux start --headless      # daemon + web, no Electron
pnpm tools-pack linux stop --headless
pnpm tools-pack linux logs                  # tail the headless log

Apt packages, namespace permissions, and the FUSE caveat are documented in tools/pack/README.md. Verified on Ubuntu 24.04 and Arch Linux. Landed in 0.5.0 via PR #686.

Self-host · v0.5.0

Or run it as a single container.

v0.5.0 ships an official Docker Compose path. One Alpine image (docker.io/vanjayak/open-design). The daemon serves both the API and the built Next.js static export — no separate nginx, no separate frontend container.

git clone https://github.com/nexu-io/open-design.git
cd open-design/deploy
OPEN_DESIGN_IMAGE=docker.io/vanjayak/open-design:latest docker compose pull
OPEN_DESIGN_IMAGE=docker.io/vanjayak/open-design:latest docker compose up -d --no-build
# → http://127.0.0.1:7456

Defaults: bound to 127.0.0.1:7456, 384 MB memory cap, runtime volume at /app/.od. Do not publish the daemon on a public interface as-is — the API is unauthenticated for non-browser clients. Put an authenticated reverse proxy, SSH tunnel, or VPN in front. Full docs: deploy/README.md. Image does not bundle Claude / Codex / Gemini CLIs by design — keep those outside the container.

Now what?

Pick something to render.

Once the daemon is up, you need a skill (what to make), a design system (how it should look), and ideally a reference for what good looks like.

Ship your first artifact in three minutes.

Clone the repo →