03 · Connect the agent you already run
OpenDesign generates nothing by itself. The agent you point it at does the work. Get this wrong and every page after it is empty.
What an adapter is
An adapter is a thin shim that translates one agent's native message format into OpenDesign's skill protocol. Adding a new agent is a single file, not a fork.
The payoff is that switching agents costs nothing. The same SKILL.md and the same DESIGN.md run against Claude Code and Codex alike. Changing agents is a config line, not a redesign.
21 adapters — pick one
The full table lives in Reference / Agent adapters. Here's how to choose:
| Your situation | Start with |
|---|---|
| Already paying for Claude | Claude Code — sign in with the subscription, no API key needed |
| Already paying for ChatGPT | Codex, same deal |
| Using Cursor | Cursor Agent, which uses the provider keys you've configured |
| Have GitHub Copilot | GitHub Copilot CLI |
| Want the cheapest way to try | Gemini CLI (Google AI Studio key) or Qwen Code (DashScope key) |
| Work only approved one vendor | Find that vendor in the adapter table |
Choose by what you already pay for
Pick the subscription you're already funding before you optimise for model quality. Design work and coding work draw on the same pool — not buying a second subscription for "design" is the most concrete saving OpenDesign offers.
Two ways to connect
Point it at a local CLI (recommended)
If Claude Code, Codex, Cursor, or OpenCode is installed and signed in, point OpenDesign at it. The desktop build scans your PATH and finds them.
This path has a property people keep singling out: no key ever leaves your machine. Generation runs on the credentials that CLI already holds.
Supply an API key (BYOK)
For a model with no CLI, or when you want exact control over which model runs, use a key. It goes in one of two places:
.od/media-config.json project credential file
environment variables your shell profileCalls go from your machine straight to the provider. OpenDesign doesn't proxy them and has no server in that path. The bill lands on your account with that provider.
Don't commit .od/media-config.json
It holds credentials. Confirm it's in .gitignore before you start working.
Confirming it's connected
- Your agent appears in the selector.
- Pick any skill and generate something minimal — a landing page will do.
- The left pane should be streaming progress rather than sitting on "waiting".
If the list is empty:
- Is the CLI on your PATH? Type its name in a terminal and see.
- Using a key? Check
.od/media-config.json. - Run
pnpm tools-dev check— it names what's missing.
Does switching agents cost you work?
No, and that's the point of the design:
| Thing | Bound to the agent? |
|---|---|
Skills (SKILL.md) | No — plain Markdown |
Design systems (DESIGN.md) | No |
| Generated artifacts | No — files in your repo |
| Credentials | Yes, one set per provider |
Switching is one config line in the daemon. Everything you've accumulated still applies.
The reverse trick
Skills travel outward too. A SKILL.md is just a folder, so you can lift one out of OpenDesign and drop it into your own Claude Code or Codex session as context.
Handy in two cases: the capability you want has no button in the GUI, or you're scripting and don't want a UI at all.
Next
04 · The workspace — what a generation passes through, and what each step is waiting on.