Filed under Design · Intelligence Apache-2.0 · Made on Earth
Agent · Trae CLI

Trae CLI for design.

Trae CLI is ByteDance’s open-source terminal agent (trae-agent). It is model-agnostic — you point it at the LLM provider you trust — and it reads your repo, edits files, and runs commands from natural-language tasks, which makes it a real design tool once you give it references, conventions, and a verification loop. Open Design wires it into an open-source design workflow over ACP: your own provider key, your files, local-first.

Trae CLI design feedback loop: a terminal agent reading a reference image, a browser rendering the UI, and a workspace, with a feedback arrow looping back

Open Design turns Trae CLI into a local-first, open-source design agent — your own LLM provider key, your files, a curated skill and design-system library around it, driven over ACP.

Trae CLI is ByteDance’s open-source AI agent for the terminal, shipped as the trae-agent project. Two things make it interesting for design specifically: it is model-agnostic, so you can bring whichever LLM provider you trust rather than being locked to one vendor; and it is a transparent, MIT-licensed agent that reads your codebase, edits files, and runs shell commands from natural-language tasks. Paired with the right references, conventions, and a verification loop, it builds real, responsive UI — and it is free and open to start, you only supply a provider key. This is a practical, end-to-end guide to using Trae CLI for UI, frontend, and design-system work, and to wiring it into a structured design workflow with Open Design.

It covers what Trae CLI actually is, why an open, model-agnostic agent fits design, how to set it up from zero, the screenshot-to-UI loop, how its config file and tools extend it, how it compares to Codex, Claude Code, Cursor, and Gemini CLI, the pitfalls that make AI output look generic, and how Open Design closes the gap as an open, local-first design layer — a natural pairing, since both are open-source and run on your own machine, with Open Design driving Trae CLI over the Agent Client Protocol (ACP).

What Trae CLI actually is

Trae CLI is the command-line agent from ByteDance’s open-source trae-agent project. It reads your repository, views, creates, and edits files, and runs shell commands in a persistent environment — planning and verifying work from natural-language tasks rather than just completing lines. It is MIT-licensed and built around a transparent, modular architecture so it is easy to inspect and extend. It is distinct from the separate Trae IDE, ByteDance’s VS Code-based AI editor, though both come from the same vendor.

For design work, two properties stand out. It is model-agnostic — you choose the LLM provider, so you are never tied to a single model’s strengths or limits. And it is fully open and config-driven, so its behavior, tools, and provider can be pinned down in version control alongside your project rather than hidden behind a hosted service.

  • Run and interactive modes: Trae CLI runs a single task with `trae-cli run "..."` or holds a continuous session with `trae-cli interactive` — the natural place to iterate on a UI against your design conventions.
  • Built-in tools: It ships file-editing, bash/shell execution, and structured reasoning tools out of the box, so it can build, run a dev server, and inspect runtime errors without leaving the terminal.
  • Bring your own provider: You supply an API key for the provider you trust — OpenAI, Anthropic, Google, OpenRouter, Doubao, Azure, or a local Ollama model — via environment variables or a config file.
  • Vendor: ByteDance (open-source trae-agent project)
  • Credential: an LLM provider API key (BYOK) — e.g. OpenAI, Anthropic, Google, OpenRouter, Doubao, Azure, or a local Ollama model
  • License: MIT, open source

Why an open, model-agnostic agent fits design

Trae CLI’s design edge comes from being open and provider-flexible — but, as with every agent, taste still has to be supplied.

  • Model-agnostic by design: Because you choose the provider, you can route design work to whichever model reasons best about layout and frontend code today, and swap it later without changing your workflow.
  • Open and config-driven: The agent, its tools, and its provider are pinned in a config file you can commit, so a team gets the same agent behavior on every machine instead of drifting per-developer.
  • Conventions in your repo: Point the agent at your tokens, components, and real specs — kept in your project — so it works against a brand instead of defaulting to a generic look.
Diagram showing design system, skill, and reference image converging into good design output
Taste comes from three inputs you provide: a design system, a skill, and real reference images.

The lesson is the same one every agent teaches: Trae CLI does not have taste by default. It produces good design when you give it constraints — a design system, an aesthetic skill, and concrete references. Open Design packages exactly those inputs and feeds them to Trae CLI over ACP, which is why the two fit together (more below).

Set up Trae CLI for design work, from zero

Here is the full path from a clean machine to a Trae CLI that can build and verify UI. Trae CLI is installed from source with uv, then configured with the LLM provider you want to use.

# 1. Get Trae CLI (trae-agent) from source — needs uv
git clone https://github.com/bytedance/trae-agent.git
cd trae-agent
uv sync --all-extras
source .venv/bin/activate

# 2. Authenticate by pointing it at your LLM provider key
#    set it in the environment (or a trae_config.yaml file)
export OPENAI_API_KEY=...        # or ANTHROPIC_API_KEY, GOOGLE_API_KEY, etc.

# 3. Run a task in your project
trae-cli run "Create a hello world page"
#    or hold a session:
trae-cli interactive

# 4. Check the resolved configuration (keys are masked)
trae-cli show-config
Five-step setup flow: install, authenticate, configure conventions, add a skill, verify
The setup sequence: install → authenticate with a provider key → configure your design conventions → add a skill → enable browser verification.
  • Encode your design rules: Keep your tokens, primitives, and conventions in the repo and point Trae CLI at them, so output matches a brand instead of defaulting to a generic look.
  • Add browser verification: Have Trae CLI run a dev server and render in a real browser so it checks its output across breakpoints instead of only confirming the build passes.

The screenshot-to-UI workflow

The highest-leverage design loop with Trae CLI is turning a reference image into working, responsive UI and iterating until it matches. Because Trae CLI is model-agnostic, point it at a provider whose model handles your references well, and lean on a real browser to check the result.

  1. Start from the clearest visual references you have — and describe multiple states (desktop and mobile, hover, empty, loading), not just one hero shot.
  2. Be specific in the prompt; vague prompts produce generic UI even with a strong model.
  3. Keep your design system and conventions in the repo, and tell Trae CLI where the tokens and canonical primitives live.
  4. Run a dev server and have Trae CLI render in a real browser, resizing to breakpoints to check the result.
  5. Iterate by having Trae CLI compare its implementation back to the references — not merely confirm it builds.

Run an interactive session and give concrete constraints rather than a one-line ask:

trae-cli interactive
# in the session:
> Implement the attached reference design in React + Vite + Tailwind + TypeScript.
  Reuse my existing design-system components and tokens.
  Match spacing, layout, and hierarchy; make it responsive.
  Run the dev server, render it in the browser, and iterate until it
  matches the references across breakpoints.

Keep prompts small and focused, commit good iterations and revert bad ones (telling Trae CLI when you revert), so each pass builds on a clean base.

Config, tools, and providers

Three extension points make Trae CLI practical for sustained design work, and all three map cleanly onto an open design workflow.

  • Config file: Trae CLI reads a trae_config.yaml that pins your provider, model, and settings — the durable, version-controllable home for how the agent runs on a project.
  • Provider choice: Because it supports many providers (OpenAI, Anthropic, Google, OpenRouter, Doubao, Azure, Ollama), you route design work to the model you trust and swap it without rewiring your workflow.
  • Built-in tools: Its file-editing, shell, and structured-reasoning tools let it gather context, build, run a dev server, and run the verification loop without leaving the terminal.

These are portable, agent-level capabilities — exactly the kind of thing Open Design is built to orchestrate over ACP, rather than re-create per project.

Trae CLI vs Codex vs Claude Code vs Cursor vs Gemini CLI for design

There is no single winner for design work — each agent has a different strength, and experienced teams stack them. A fair summary:

AgentDesign strengthBest for
Trae CLIOpen-source (MIT) and model-agnostic; bring your own provider key, config-driven and transparentTeams that want a free, inspectable agent and the freedom to choose or swap LLM providers
CodexStrong visual polish with a frontend skill; sandboxed async buildsDelegated async builds and portable AGENTS.md rules
Claude CodeSpecific design decisions (hex, spacing, type) and codebase-aware UXFrontend reasoning and large-context refactors
CursorVisual build-and-see loop with live preview and inline editsTight iterate-and-watch UI work inside an IDE
Gemini CLIStrong multimodal image understanding and a 1M-token context; open-source with a free tierScreenshot-heavy work and holding a whole design system in context

The recurring community verdict is that taste comes from humans: all of them default to a generic aesthetic without skills, references, and constraints. That is the real problem to solve — and it is design-tool-shaped, not model-shaped.

Pitfalls, and how to avoid the “AI slop” look

The most common complaint about AI-generated design is that it looks generic — soft gradients, floating panels, oversized rounded corners, dramatic shadows, an Inter-and-purple vibe that “screams an AI made this.” Other reported issues include broken mobile layouts and instructions leaking into UI copy. None of these are unique to Trae CLI; they are what happens when any agent runs without a curated design context.

  • Add an aesthetic skill: A curated design skill forces the agent to commit to a real direction instead of the default look.
  • Verify in a real browser: Have Trae CLI render and self-check across breakpoints so layouts do not silently break on mobile.
  • Supply tokens and references: Real design tokens and reference screenshots are the single biggest lever on output quality.
  • Encode rules in your repo: Put “no hero cards, max two typefaces, brand-first hierarchy” style rules where the agent reads them every run.

Notice that every mitigation is about giving the agent a curated design context. Maintaining that context by hand, per project, is the toil Open Design removes.

Designing with Trae CLI inside Open Design

Open Design is the open-source design layer the workflow above keeps asking for. It treats Trae CLI as a first-party adapter — driving it over the Agent Client Protocol (ACP) via its trae-cli binary — and wraps it in a curated skill and design-system library, a structured render pipeline, and a local desktop UI, so the design context that makes Trae CLI good is there from the first run, not assembled by hand each time. Both are open-source and local-first, which makes the pairing a natural fit.

  1. Install Open Design and select Trae CLI as your agent.
  2. Authenticate with your own LLM provider key (BYOK) — credentials stay on your machine and are never proxied through us.
  3. Pick a design system and a skill, then generate decks, prototypes, and landing pages with consistent taste.
  4. Every artifact and DESIGN.md file lives in your own repo, not a hosted cloud.

Same Trae CLI agent, same provider key — plus a real, portable, open-source design workflow around it. It is local-first and open-source, so nothing about your work or your credentials leaves your machine.

Frequently asked questions

  1. 01 Can Trae CLI really do design work?

    Yes — with an aesthetic skill, a design system, and real reference context, Trae CLI produces production-quality, responsive UI, and because it is model-agnostic you can route the work to the provider that reasons best about your frontend. Without that context it tends to default to a generic look, which is the gap Open Design fills.

  2. 02 Do I need to pay to design with Trae CLI?

    Trae CLI itself is free and open-source (MIT). You bring your own LLM provider key, so your only cost is whatever that provider charges — or nothing if you run a local model via Ollama. Open Design never proxies your credentials either way.

  3. 03 What makes Trae CLI good for design specifically?

    Two things: it is model-agnostic, so you choose the LLM provider best suited to frontend work, and it is fully open and config-driven, so its behavior is transparent and reproducible across a team. But taste still comes from the design system, skill, and references you supply.

  4. 04 Trae CLI or Claude Code for frontend design?

    Both are capable. Claude Code is known for specific, codebase-aware design decisions; Trae CLI’s edge is being open-source and provider-flexible, so you are never locked to one model. Many teams use both — Open Design lets you switch agents without changing your design workflow.

  5. 05 What does Open Design need to run Trae CLI?

    Open Design drives Trae CLI’s trae-cli binary over the Agent Client Protocol (ACP) and uses your configured LLM provider key. You select Trae CLI as your agent, point it at a provider, and Open Design supplies the curated design context around it.

  6. 06 Is Open Design affiliated with ByteDance or Trae?

    No. Trae CLI (trae-agent) is a product of ByteDance; Open Design is an independent open-source project that supports it as a first-party adapter. Trae is a trademark of ByteDance.

  7. 07 Are my files and credentials safe?

    Yes — Open Design is local-first and open-source. Your files, artifacts, and DESIGN.md stay in your own repo, and your LLM provider credentials are used directly by your agent, never routed through Open Design servers.

Design with Trae CLI, the open way.

Bring your own LLM provider key, keep every file local, and get a curated design library around the agent you already use.

● Apache-2.0 Local-first · BYOK See all supported agents