GPT Design Bypass
Codex's default model is bad at design. This skill forces design work through a competent model using opencode run or claude -p as non-interactive CLI calls, keeping Codex in control of the overall workflow.
When to Activate
Route to the design model when the task involves:
- Writing CSS, Tailwind, or styling code
- Creating or modifying UI components for visual output
- Layout decisions (spacing, grids, typography, color)
- Designing pages, dashboards, landing pages, forms
- Evaluating or comparing visual designs
- "Make it look better", "beautify", "redesign"
- Any task where visual taste matters
Do NOT activate for:
- Backend logic, APIs, databases
- Testing, CI/CD, tooling
- Pure TypeScript/JavaScript logic with no visual output
How It Works
Instead of Codex writing the design code itself, it shells out to opencode run or claude -p with the design task as a prompt. The external model writes the code, Codex incorporates the result.
Codex receives design task
→ Codex delegates to design model via CLI
→ Design model writes the code
→ Codex uses the output
CLI Commands
Option A: OpenCode CLI (non-interactive, recommended)
opencode run \
--dangerously-skip-permissions \
"Your design task prompt here"
Key flags:
run — non-interactive execution, does not launch TUI
-m provider/model — override model (e.g., -m openrouter/anthropic/claude-sonnet-4.6). Only use this if the user explicitly specifies a model. If the user does not specify, omit this flag entirely — opencode will use whatever model the user has configured.
--dangerously-skip-permissions — auto-approve file writes
-f, --file — attach files for context
-c, --continue — continue previous session
--agent — use a specific agent config
--variant — reasoning effort (high, max, minimal)
Model selection rule: DO NOT pick a model yourself. Use whatever the user has configured. If the user says "use opus" or "use sonnet", then add -m openrouter/anthropic/claude-opus-4.7 or similar. Otherwise, no -m flag.
Option B: Claude CLI (non-interactive)
claude -p --allowed-tools "Read,Edit,Write,Bash,Glob,Grep" \
--system-prompt "You are an expert frontend designer. Produce production-quality, visually polished code. Follow the design specifications exactly." \
"Your design task prompt here"
Key flags:
-p — print mode, non-interactive, outputs to stdout
--allowed-tools — restrict what Claude can do (safer)
--system-prompt — override system prompt for design focus
--model — specify model if needed (e.g., sonnet, opus). Only if user requests a specific model.
--append-system-prompt — add to existing system prompt instead of replacing
--dangerously-skip-permissions — full autonomy (sandbox only)
Model selection rule: Same as above. DO NOT pick a model. If the user specifies one, use --model. Otherwise, let claude use its default.
Workflow
Step 1: Prepare the Design Prompt
Build a detailed prompt containing:
- What needs designing (specific components, pages)
- Design constraints (framework, existing styles, design system)
- Files to read for context (existing components, theme files)
- Exact files to create or modify
- Any design references or requirements
Step 2: Delegate to Design Model
opencode run \
--dangerously-skip-permissions \
"Design and implement [specific task].
Read these files for context:
- src/styles/theme.css
- src/components/Button.tsx
Create: src/components/Card.tsx
Modify: src/styles/theme.css (add card styles)
Requirements:
- [specific requirement 1]
- [specific requirement 2]
The design must be production-quality. Follow existing patterns."
If the user asked for a specific model, add -m to the command. Otherwise, do not.
Step 3: Incorporate the Result
The design model will create/modify files directly. After it finishes:
- Review the changes
- Run typecheck and build to verify
- Fix any integration issues if needed
Prompt Templates
See references/prompt-templates.md for design-specific prompts.
Critical Rules
- Always use non-interactive mode —
opencode run or claude -p, never the TUI
- DO NOT pick a model — use the user's configured default. Only add
-m/--model if the user explicitly asks for one
- Be specific in the prompt — vague prompts produce generic designs
- Include file paths — tell the design model exactly what to read and write
- Specify the framework — React, vanilla CSS, Tailwind, etc.
- Reference existing code — point to theme files, design tokens, component patterns
- Keep Codex in control — Codex orchestrates, design model executes
- Verify after delegation — run typecheck/build after the design model finishes
1---2name: gpt-design-bypass3description: Route design tasks to a competent model via opencode or claude CLI. Triggers on "design", "style", "UI", "CSS", "layout", "visual", "beautify", "redesign".4---56# GPT Design Bypass78Codex's default model is bad at design. This skill forces design work through a competent model using `opencode run` or `claude -p` as non-interactive CLI calls, keeping Codex in control of the overall workflow.910## When to Activate1112Route to the design model when the task involves:1314- Writing CSS, Tailwind, or styling code15- Creating or modifying UI components for visual output16- Layout decisions (spacing, grids, typography, color)17- Designing pages, dashboards, landing pages, forms18- Evaluating or comparing visual designs19- "Make it look better", "beautify", "redesign"20- Any task where visual taste matters2122Do NOT activate for:2324- Backend logic, APIs, databases25- Testing, CI/CD, tooling26- Pure TypeScript/JavaScript logic with no visual output2728## How It Works2930Instead of Codex writing the design code itself, it shells out to `opencode run` or `claude -p` with the design task as a prompt. The external model writes the code, Codex incorporates the result.3132```33Codex receives design task34 → Codex delegates to design model via CLI35 → Design model writes the code36 → Codex uses the output37```3839## CLI Commands4041### Option A: OpenCode CLI (non-interactive, recommended)4243```bash44opencode run \45 --dangerously-skip-permissions \46 "Your design task prompt here"47```4849Key flags:50- `run` — non-interactive execution, does not launch TUI51- `-m provider/model` — override model (e.g., `-m openrouter/anthropic/claude-sonnet-4.6`). **Only use this if the user explicitly specifies a model.** If the user does not specify, omit this flag entirely — opencode will use whatever model the user has configured.52- `--dangerously-skip-permissions` — auto-approve file writes53- `-f, --file` — attach files for context54- `-c, --continue` — continue previous session55- `--agent` — use a specific agent config56- `--variant` — reasoning effort (high, max, minimal)5758**Model selection rule**: DO NOT pick a model yourself. Use whatever the user has configured. If the user says "use opus" or "use sonnet", then add `-m openrouter/anthropic/claude-opus-4.7` or similar. Otherwise, no `-m` flag.5960### Option B: Claude CLI (non-interactive)6162```bash63claude -p --allowed-tools "Read,Edit,Write,Bash,Glob,Grep" \64 --system-prompt "You are an expert frontend designer. Produce production-quality, visually polished code. Follow the design specifications exactly." \65 "Your design task prompt here"66```6768Key flags:69- `-p` — print mode, non-interactive, outputs to stdout70- `--allowed-tools` — restrict what Claude can do (safer)71- `--system-prompt` — override system prompt for design focus72- `--model` — specify model if needed (e.g., `sonnet`, `opus`). **Only if user requests a specific model.**73- `--append-system-prompt` — add to existing system prompt instead of replacing74- `--dangerously-skip-permissions` — full autonomy (sandbox only)7576**Model selection rule**: Same as above. DO NOT pick a model. If the user specifies one, use `--model`. Otherwise, let claude use its default.7778## Workflow7980### Step 1: Prepare the Design Prompt8182Build a detailed prompt containing:83- What needs designing (specific components, pages)84- Design constraints (framework, existing styles, design system)85- Files to read for context (existing components, theme files)86- Exact files to create or modify87- Any design references or requirements8889### Step 2: Delegate to Design Model9091```bash92opencode run \93 --dangerously-skip-permissions \94 "Design and implement [specific task].95 96 Read these files for context:97 - src/styles/theme.css98 - src/components/Button.tsx99 100 Create: src/components/Card.tsx101 Modify: src/styles/theme.css (add card styles)102 103 Requirements:104 - [specific requirement 1]105 - [specific requirement 2]106 107 The design must be production-quality. Follow existing patterns."108```109110If the user asked for a specific model, add `-m` to the command. Otherwise, do not.111112### Step 3: Incorporate the Result113114The design model will create/modify files directly. After it finishes:1151. Review the changes1162. Run typecheck and build to verify1173. Fix any integration issues if needed118119## Prompt Templates120121See [references/prompt-templates.md](references/prompt-templates.md) for design-specific prompts.122123## Critical Rules1241251. **Always use non-interactive mode** — `opencode run` or `claude -p`, never the TUI1262. **DO NOT pick a model** — use the user's configured default. Only add `-m`/`--model` if the user explicitly asks for one1273. **Be specific in the prompt** — vague prompts produce generic designs1284. **Include file paths** — tell the design model exactly what to read and write1295. **Specify the framework** — React, vanilla CSS, Tailwind, etc.1306. **Reference existing code** — point to theme files, design tokens, component patterns1317. **Keep Codex in control** — Codex orchestrates, design model executes1328. **Verify after delegation** — run typecheck/build after the design model finishes