OD '26
All Chapters

APPENDICES · SECTION A

Command and CLI Reference

Every install path, the od command surface, MCP setup per CLI, and the .od/ file layout

Reading time

11 min

Appendix

A

Command and CLI Reference

Every install path, the od command surface, MCP setup per CLI, and the .od/ file layout

Everything you need to run Open Design from the terminal, in one scannable place. This appendix covers the four surfaces you reach for during setup and daily operation: install paths, the od command surface, od mcp install for each supported CLI, and the .od/ file layout with key config snippets. Scan, don't read --- if you need narrative context, the chapter that owns each topic is cited inline. All entries reflect Open Design v0.9.0 (released June 2, 2026) with Node.js ~24 and pnpm 10.33.x. Commands age with every release; the repository is the source of truth when anything here conflicts with a newer version.

Commands and version pins age with every release. All entries here reflect Open Design v0.9.0 (released June 2, 2026). Verify against the live repository at github.com/nexu-io/open-design before running in a new environment.

A.1 Install Commands

Three install paths exist. Choose based on whether you intend to run Open Design as a desktop app, develop against the source, or deploy it on a server. As of June 2026, all three paths install v0.9.0. A fourth option --- the one-line CLI installer --- is a shortcut that combines download and agent wiring in a single command, useful when you know which coding-agent CLI you'll use and want to skip the desktop UI entirely. See Chapter 02 for the full first-run walkthrough including troubleshooting for native build failures.

Install Paths — Open Design v0.9.0, June 2026
Path Command or action Prerequisites Notes
Desktop app (recommended) Download from open-design.ai/download/ None macOS (Apple Silicon and Intel), Windows x64, Linux AppImage. Zero-config. Auto-detects installed coding agents on first launch.
From source See code block below Node.js ~24, pnpm 10.33.x, corepack Required if you intend to author or modify skills and plugins. Native modules are version-sensitive; use pinned versions exactly.
Docker Compose See code block below Docker Desktop or Docker Engine + Compose v2 Preferred for CI/CD, team servers, and headless deployments. Exposes daemon on port 7456.
One-line CLI installer curl -fsSL https://open-design.ai/install.sh | sh -s <agent> curl, sh Installs Open Design and immediately wires it to the named coding agent. Replace <agent> with the CLI slug from section A.3.

My take: The desktop app is the right starting point for nearly everyone. From-source only pays off if you plan to author custom skills or plugins --- the native module build chain (primarily better-sqlite3) fails silently when Node or pnpm versions drift, and that failure takes time to diagnose. If you want to ship a custom skill to your team today, start from the desktop app and layer the skill work on top. I've burned an afternoon on a Node version mismatch that the desktop path would have sidestepped entirely.

# From-source install
$ git clone https://github.com/nexu-io/open-design.git
$ cd open-design
$ corepack enable
$ pnpm install
$ pnpm tools-dev run web
# Daemon and Next.js frontend start in foreground
# Open http://localhost:7456 in your browser
# Docker Compose install
$ cd deploy
$ cp .env.example .env
$ openssl rand -hex 32
# Paste output into .env at OD_API_TOKEN=
$ docker compose up -d
# Open http://localhost:7456
# One-line installer — example: wire Claude Code
$ curl -fsSL https://open-design.ai/install.sh | sh -s claude-code

The one-line installer pipes a remote script directly to a shell. Before running it, inspect the script first: curl -fsSL https://open-design.ai/install.sh | less. Verify the domain matches the official repository at github.com/nexu-io/open-design. If you prefer not to pipe to shell, use the desktop installer or the from-source path instead.

A.2 The od Command Surface

The od CLI is the management interface for Open Design. It does not run generation --- the coding agent does that through MCP (Model Context Protocol). od handles setup, inspection, and lifecycle. The most-used subcommand by far is od mcp install, which you run once per coding-agent CLI. The others --- od status and od plugin list --- are diagnostic tools you'll reach for when the daemon or a plugin isn't behaving as expected. As of June 2026, the primary subcommands are listed below. A full flag reference for all od subcommands may be available at /docs/cli-reference.md in the repository; verify against the live repo for the most current surface.

od CLI Subcommands — Open Design v0.9.0, June 2026
Command Purpose Example
od mcp install <agent> Auto-configure MCP for the named coding agent od mcp install claude-code
od mcp install <agent> --uninstall Remove the MCP config for the named agent od mcp install codex --uninstall
od mcp install <agent> --print Print the MCP config to stdout without writing it od mcp install cursor --print
od mcp install <agent> --json Output the MCP config as JSON (for scripting) od mcp install gemini --json
od status Report daemon health and connected agents od status
od plugin list List installed plugins and their status od plugin list

Use the daemon health endpoint directly to verify the daemon is running without the od CLI:

# Daemon health check (from-source or Docker, port 7456)
$ curl -s http://127.0.0.1:7456/api/health
# Expected response:
# { "status": "ok", "uptime": 123.45 }

The optional flags work consistently across all agents. Use them to manage the full lifecycle:

# Inspect what will be written before committing
$ od mcp install cursor --print

# Output as JSON for scripting or CI
$ od mcp install cursor --json

# Remove the MCP config for an agent
$ od mcp install cursor --uninstall

When the daemon is running, od status reports connected agents and daemon uptime. od plugin list shows which plugins are installed and whether they are active. Expected output shapes:

$ od status
# daemon: running (uptime 2h14m)
# agents: claude-code (connected), cursor (connected)
# port: 7456
$ od plugin list
# figma-migration    active
# code-refresh       active
# linear-brand       active
# (261 official plugins available; run od plugin install  to add)

A.3 MCP Install per CLI

As of June 2026, Open Design supports at least 17 confirmed coding-agent CLIs via the od mcp install command (the v0.9.0 README headline cites 21; verify the full current list in the repository's agent registry at github.com/nexu-io/open-design). The 17 named slugs confirmed from the v0.9.0 README are listed below. The command auto-writes the correct MCP server config into each agent's config directory. Run it once per agent; re-run after upgrading Open Design to refresh the server config. See Chapter 10 for the MCP architecture and multi-agent orchestration patterns built on top of this connection. Scan, don't read --- find your CLI slug, run the command, and move on.

Per-CLI config file locations vary. od mcp install writes to the correct location automatically. If you need to inspect or manually edit the config, use the --print flag first to see where and what it writes. Exact paths per CLI are not documented in a single canonical source; always run --print to confirm the path on your machine before editing manually.

MCP Install by CLI — Open Design v0.9.0, June 2026
CLI Install command Config location
Claude Code od mcp install claude-code Run --print to confirm; typically ~/.claude/
OpenAI Codex CLI od mcp install codex Run --print to confirm
Cursor od mcp install cursor Run --print to confirm; typically ~/.config/cursor/
GitHub Copilot CLI od mcp install copilot Run --print to confirm
Google Gemini CLI od mcp install gemini Run --print to confirm. Note: as of June 2026 Google announced a Gemini CLI sunset around 2026-06-18 --- verify current status before relying on this integration
OpenCode od mcp install opencode Run --print to confirm
Hermes od mcp install hermes Run --print to confirm; community-supported
Kimi CLI od mcp install kimi Run --print to confirm; community-supported
OpenClaw od mcp install openclaw Run --print to confirm; community-supported
Google Antigravity od mcp install antigravity Run --print to confirm; experimental
Mistral Vibe od mcp install vibe Run --print to confirm; community-supported
Pi od mcp install pi Run --print to confirm; community-supported
Cline od mcp install cline Run --print to confirm; VS Code extension MCP settings
Trae od mcp install trae Run --print to confirm; community-supported
Qwen od mcp install qwen Run --print to confirm; community-supported
DeepSeek od mcp install deepseek Run --print to confirm; community-supported
BYOK Proxy / Ollama od mcp install ollama Set OPENAI_BASE_URL and OPENAI_API_KEY env vars before installing. Run --print to confirm config path

The full command block for all named slugs:

# od mcp install — all named CLI slugs (v0.9.0, June 2026)
$ od mcp install claude-code     # Claude Code
$ od mcp install codex           # OpenAI Codex CLI
$ od mcp install cursor          # Cursor
$ od mcp install copilot         # GitHub Copilot CLI
$ od mcp install gemini          # Google Gemini CLI (announced sunset ~2026-06-18 — verify current status)
$ od mcp install opencode        # OpenCode (MIT)
$ od mcp install hermes          # Hermes
$ od mcp install kimi            # Kimi CLI
$ od mcp install openclaw        # OpenClaw
$ od mcp install antigravity     # Google Antigravity
$ od mcp install vibe            # Mistral Vibe
$ od mcp install pi              # Pi
$ od mcp install cline           # Cline
$ od mcp install trae            # Trae
$ od mcp install qwen            # Qwen
$ od mcp install deepseek        # DeepSeek
$ od mcp install ollama          # BYOK / local Ollama

A.4 File Layout and Config

Open Design stores all project state in a .od/ directory at your home directory by default. The layout below reflects v0.9.0 (June 2, 2026). Understanding this layout matters for three practical reasons: knowing what to back up (app.sqlite and artifacts/), knowing what is safe to delete (sessions/), and knowing where to look when diagnosing a broken generation (history.jsonl). The config.json in the root of .od/ is where daemon-level settings live; project-level overrides are stored inside each project directory under artifacts/. The OD_DATA_DIR environment variable relocates the .od/ directory; this behavior is confirmed for Docker and daemon-mode deployments. Whether it applies to the desktop app is not documented in available sources --- verify against the repository if you need to relocate the data directory in the desktop app.

.od/
├── config.json              # Daemon config: design system, skills, mode
├── app.sqlite               # SQLite project database (back this up)
├── artifacts/               # Saved renders and one-off exports
│   └── 2026-06-11T12-34-56-landing/
│       ├── artifact.json    # Metadata: skill, prompt, parent artifact
│       ├── index.html       # Primary output
│       └── assets/          # Generated images and fonts
├── history.jsonl            # Append-only action log
├── sessions/                # Ephemeral UI state (safe to delete)
│   └── <session-id>.json
└── media-config.json        # Auto-created; auto-gitignored

Two files matter most for backup: app.sqlite (all project metadata and generation history) and the artifacts/ directory (all rendered outputs). The sessions/ directory is ephemeral --- deleting it does not lose work and can resolve stale UI state.

BYOK Proxy Routes

Open Design includes a built-in BYOK (Bring Your Own Key) proxy that routes inference to any configured provider. The daemon exposes proxy routes at the following paths on port 7456:

BYOK Proxy Routes — Open Design v0.9.0, June 2026
Route Provider Notes
/proxy/anthropic Anthropic Requires ANTHROPIC_API_KEY env var
/proxy/openai OpenAI Requires OPENAI_API_KEY env var
/proxy/google Google (Gemini) Requires GOOGLE_API_KEY env var
/proxy/ollama Ollama (local) Set OPENAI_BASE_URL=http://localhost:11434/v1. The only fully local-inference path.
/proxy/azure Azure OpenAI Likely requires AZURE_OPENAI_KEY and AZURE_OPENAI_ENDPOINT (inferred from architecture docs; verify exact variable names in the repository's deploy/.env.example before use)

Local-first controls where your files and orchestration live, not where inference happens. If inference privacy is the goal, use the Ollama route (/proxy/ollama) with a local model. Every other route sends tokens to a cloud API. See Chapter 01 for the local-first vs local-inference distinction.

Docker Environment Config

For Docker Compose deployments, the deploy/.env.example file documents the required environment variables. Copy it to .env before running docker compose up.

# deploy/.env.example (relevant fields, v0.9.0)
OD_API_TOKEN=           # Required: generate with: openssl rand -hex 32
# Optional: override default port
# OD_PORT=7456
# Optional: relocate data directory
# OD_DATA_DIR=/data/od

To configure BYOK providers in a Docker deployment, set the relevant provider env vars in the same .env file:

# Add to deploy/.env for BYOK provider access
ANTHROPIC_API_KEY=sk-ant-...
OPENAI_API_KEY=sk-...
GOOGLE_API_KEY=...
# For local Ollama (fully local inference):
OPENAI_BASE_URL=http://localhost:11434/v1

config.json Snippet

The daemon-level .od/config.json controls the active design system, default skill, and run mode. A minimal config that sets a custom brand system and enables daemon-only mode:

{
  "designSystem": "acme",
  "defaultSkill": "web-prototype",
  "mode": "daemon"
}

Version Pin Reference

Version Pins for From-Source Install — June 2026
Dependency Required version How to set Last verified
Node.js ~24 (approximately Node 24.x) nvm use 24 or install via nodejs.org June 2026
pnpm 10.33.x corepack enable then corepack use pnpm@10.33.x June 2026
Open Design v0.9.0 (June 2, 2026) Clone the open-design-v0.9.0 tag or use the desktop installer June 2026

My take: Keep this appendix open in a second window during setup. The install path, od mcp install commands, and .od/ layout cover 90% of what you need in the first hour. The only thing that beats it for setup speed is the desktop app, which makes most of section A.1 irrelevant if you go that route. Commands age with releases --- when in doubt, the repository README is the source of truth and always current.

Next: Appendix B catalogs the skills, brand systems, and plugins that ship in the box as of June 2026. Use it to locate a starting skill or brand system, then return here when you need to re-run an install command or check a config path.

Next Appendix

Skills, Brand Systems, and Plugins Index

A dated snapshot of what ships in Open Design as of v0.9.0

Continue Reading

©2026 Mehran Mozaffari. All rights reserved.