← Files Open DesignARCHIVED FILE
README.md
5.18 KB · Oct 2, 2026 · 00:29 UTC
# Open Design plugin for Codex This package teaches Codex Desktop and Codex CLI how to create artifacts with Open Design. Open Design Cloud remains the default execution mode. The plugin does not ship an MCP server. It reuses the local `open-design` MCP registration owned by an installed Open Design runtime: ```text Codex plugin -> local open-design MCP -> local Open Design daemon -> bundled Vela CLI -> remote Vela / AMR service ``` Install Open Design first. Its GUI does not need to remain open: the packaged MCP registration starts the signed runtime headlessly whenever its daemon is stopped. Install the registration from Settings → MCP server, with the packaged `--headless --mcp-install codex` operation, or with the equivalent command exposed by the active Open Design installation: ```bash od mcp install codex ``` The command discovers the active daemon through `/api/mcp/install-info` and registers an absolute launch command. The plugin deliberately has no `.mcp.json`: hard-coding `od` would collide with the unrelated macOS `/usr/bin/od`, while a fixed localhost URL would not survive packaged sidecar or namespace changes. ## Cloud workflow Cloud is the default mode. The local MCP provides `collect_brief` and its MCP Apps selection card, then Open Design starts generation with `agent: "amr"`. Vela owns remote authentication, quota, and generation. If the local MCP is unavailable, repair its Codex registration from the installed runtime. If Vela reports that sign-in is required, the plugin calls `start_vela_login` and `get_vela_login_status` to complete browser authorization without requiring the Open Design GUI; never paste a Vela credential into chat. One confirmed action receives one stable `requestId`. Transport retries reuse the exact request, and `get_run` only polls. If Vela reports insufficient balance, the plugin preserves the original run, shows the recharge URL, waits for explicit user confirmation, and resumes with the same request plus `resume: true`. Cloud failures never switch to Local Codex or BYOK automatically. ## Local candidate install Test the repository itself with an isolated Codex home: ```bash OD_CODEX_TEST_HOME="$(mktemp -d /tmp/open-design-codex-home.XXXXXX)" OD_AGENT_PLUGIN_REPO="$(git rev-parse --show-toplevel)" CODEX_HOME="$OD_CODEX_TEST_HOME" codex plugin marketplace add "$OD_AGENT_PLUGIN_REPO" --json CODEX_HOME="$OD_CODEX_TEST_HOME" codex plugin add open-design@open-design --json CODEX_HOME="$OD_CODEX_TEST_HOME" codex plugin list --json ``` The plugin install and MCP registration are intentionally independent. For a complete smoke, start an isolated Open Design runtime and run its resolved `od mcp install codex` command with the same isolated `CODEX_HOME`, then verify: ```bash CODEX_HOME="$OD_CODEX_TEST_HOME" codex mcp get open-design --json ``` Delete only the exact temporary roots created for the smoke after testing. ## Explicit optional modes Local Codex shares the same `open-design` MCP server but runs Open Design with the local `codex` agent and the login already owned by `codex login`. It never passes an OpenAI key through Open Design: ```bash codex login od mcp install codex ``` When Local Codex is explicitly selected, require `list_agents` to report the exact `codex` runtime and call every Local Codex `start_run(..., agent: "codex")`. Keep that mode selected through terminal delivery. If it is unavailable or out of quota, explain the failure and offer retry or an explicit switch; never enter Cloud sign-in or BYOK automatically. The run prompt also carries a bounded child-runtime instruction that prevents the child Codex from invoking the Open Design Plugin or local MCP recursively. On Codex Desktop, the first current-run `studioUrl` returned while generation is running opens immediately in the host-provided in-app Browser when that capability is callable. If no Studio URL was available earlier, successful terminal delivery opens `studioUrl` or falls back to `previewUrl`. Each run opens at most one tab. Codex CLI and hosts without that capability receive the same clickable link without treating the missing open action as generation failure. BYOK is a separate explicit mode backed by Open Design's secure credential profiles and OpenCode runtime. Save credentials only in Open Design Settings or through the stdin-only `od byok save --api-key-stdin` command. MCP calls receive only the non-secret profile id. ## Package contract - `.codex-plugin/plugin.json` is the only Codex plugin manifest. - There is no bundled `.mcp.json` and no remote MCP domain. - `open-design.package.json` pins the local MCP registration contract, Open Design `0.17.0` minimum, telemetry schema v3, mode-aware tools, canonical Vela endpoints, `agent: "amr"`, and the versioned MCP Apps resource. - `skills/open-design-mode/SKILL.md` keeps Cloud, Local Codex, and BYOK routing explicit, establishes one bounded self-reported Plugin workflow, keeps the generation request stable, and prevents silent fallback. - Terminal `get_run` is the default delivery. `get_artifact` is an optional bounded context read and carries the same server-issued workflow id. - Update both package versions, run the validator, and run an isolated Codex installation smoke for each release.
SHA-256: eeb2ea16ca7e655540fa05b4a364aa188a39a44f279eadb48469bb134caa49f5