taupe Building, using, and running it.

Article

Claude Design vs Claude Code, and where /design-sync tripped me up

Claude Design vs Claude Code, and where /design-sync tripped me up

Claude Desktop has Chat, Cowork, and Code. Then Claude Design arrived. The names suggest the boundaries, but in use the boundaries blur — Claude Code can build UI, Claude Design can produce prototypes.

Two things I got wrong, which cost me an afternoon:

  • I assumed /design-sync pulls Design output into Claude Code. It does the opposite: it converts a React design system in your repository and uploads it to Claude Design. Going the other way — design to implementation — is the handoff bundle, not /design-sync.
  • I assumed the Desktop Code tab is Claude Code. It is not quite. In my environment, on June 21, 2026, /design-sync from the Desktop Code tab stopped at Design-side authorization, and I could not run /design-login there either.

Neither was a plan problem. Claude Design itself worked fine in the browser, and the standalone CLI got me through.

Originally published in Japanese on June 21, 2026. This English version was written in September 2026 and corrects two points from the original.

Status, as of September 2026

Claude Design launched from Anthropic Labs on April 17, 2026, in research preview for Pro, Max, Team, and Enterprise subscribers. As of the help documentation dated August 6, 2026, it is in beta on those same plans. On Enterprise it is off by default; an administrator enables it under Organization settings.

My hands-on notes below are from June 21, 2026. Commands, behavior, and usage accounting have already moved once since then, so treat the observations as dated and check the current documentation before relying on any of it.

One change since those notes matters to the boundary this article draws. Claude Code now has its own /design [brief] command, on sessions where artifacts are available. It drafts the design as artboards on a canvas and publishes that canvas as an artifact running a research preview of Claude Design’s editor. So “Design lives in the browser, Code lives in the repo” is no longer the whole picture: /design-sync still pushes your design system up and the handoff bundle still brings a design down, but there is now a third route that starts inside Claude Code.

The correction that matters most: which way /design-sync points

I expected this flow:

  • Build screens and components in Claude Design
  • Run /design-sync in Claude Code
  • Design’s output and design system land on the Code side
  • Start implementing

That is backwards. Per the Claude Code slash command reference, /design-sync [hint] converts the React design system in your repository and uploads it to Claude Design, so that Design generates screens consistent with the components you already have. /design-login exists to authorize that design-system access against your claude.ai account.

The other direction — from a finished design into code — is a separate mechanism. Anthropic’s announcement describes Claude Design packaging a design into a handoff bundle that you pass to Claude Code with a single instruction, and the help documentation lists “Handoff to Claude Code” among the export options.

So the model to hold is: /design-sync pushes your existing components up so Design stays on-brand. Handoff brings a design down into implementation. I was trying to use the upload command as a download command.

The Desktop Code tab is not the standalone CLI

The second problem was environmental. In my testing, running /design-sync from the Desktop Code tab stopped at Design-side authorization, and /design-login was not runnable there to resolve it.

The Claude Code Desktop documentation explains the general shape of this: built-in commands that open an interactive panel in the terminal behave differently in the Code tab, and commands with no argument form reply isn't available in this environment. It recommends running such commands from the standalone CLI. /design-login takes no argument, which fits that description — though I should be clear that the Desktop documentation does not name the design commands specifically. That connection is my inference from observed behavior, not a documented statement.

Where that leaves things:

GoalStatus in my environment, June 2026
Use Claude Design in the browserWorks
Open Claude Design from the Claude Desktop sidebarWorks (appeared by June 26)
Run /design-sync from the Desktop Code tabDid not work
Run /design-login from the standalone CLIWorks — the practical route

Getting this wrong is expensive because the symptom reads as “Claude Design is unavailable to me” when the actual situation is “this particular entry point does not carry the authorization.”

One update from five days later: by June 26, 2026, a Design entry appeared in the Claude Desktop left menu in my environment, opening the Claude Design home screen with Design system, Template, and Model selectors. That is a separate thing from the Code tab problem — being able to open Design from Desktop does not make /design-sync work from the Code tab.

The workaround: standalone CLI

If you want the connection to hold, install the CLI globally and authorize there.

npm install -g @anthropic-ai/claude-code
claude
/login
/design-login

With the globally installed claude, /design-login proceeded. On macOS the credentials go to the Keychain, so there is no plaintext credential file to go poking at.

Worth stating plainly: when authorization fails, the temptation is to go read config files and token values. Don’t put those in a write-up or a work log. The thing you need to know is whether authorization succeeded, not what the value was.

Design and Code have different jobs

Judged only on model capability the distinction is hard to see. Claude Code writes CSS, builds web pages, and fixes a lot from a screenshot. So: if Code can do it, why Design?

Because the loop is different.

Claude DesignClaude Code
PurposeVisuals, prototypes, decksImplementation, fixes, verification
StrengthSetting direction, comparing options, editing the artifact directlyWorking in a repo, matching existing code, running tests
The human questionDoes this look and feel right?Does this work without breaking anything?
Where output livesA Design project; HTML/PDF/PPTX exportsLocal code, a PR, a commit
Best stageBefore implementation — concepts, comparisonImplementation, fixes, pre-release checks

With Claude Code you can absolutely drive UI: run a dev server, screenshot it, read the DOM, iterate. I do this constantly. But you have to construct the verification loop each time — render, capture, describe what looks off, edit CSS, look again. That is a natural loop for code quality and a heavy one for design exploration.

Claude Design starts from the visual, and assumes you will comment on it, edit it directly, and ask for alternatives. The help documentation describes exactly that mix of chat, inline comments, and direct editing.

The better mental model is not “an AI that can also write code” but “a workbench for settling how something looks, by talking about it.”

What Design was actually good at

I had it build a homepage concept in the browser. The part that surprised me was not the HTML. It was that after generating a screen, it suspected its own implementation of causing a layout problem, then went and inspected the DOM and render state to fix it.

Not flawless. The connection got unstable mid-session. Driving it through a browser, screenshot capture and tab handling were sometimes unreliable. And output stays inside Claude Design first, so getting it into a real repository means an export or a handoff.

For the stage where you want to see a direction, that is enough.

Usage comes out of the shared pool

This is the other thing I want to correct from the original Japanese version, where I described the documentation as contradicting itself.

It does not. The current help documentation states that Claude Design counts toward the same usage limits as the rest of Claude, drawing from the shared pool used for chat, Claude Code, and Cowork, with no separate Design allowance to track. It also states explicitly that Claude Design previously had its own weekly allowance and that all activity now counts toward the plan’s shared limits. So the “separate allowance” description is not a live contradiction — it is the older behavior, and the documentation says so.

That matched my Claude Desktop usage screen, which showed plan limits, the current session, the weekly limit, all models, and usage credits — with no Design-specific meter.

The practical consequence: Design encourages iteration. “Give me three alternatives” is a cheap sentence and not a cheap operation. If you also lean on Claude Code daily on the same plan, exploring freely in Design will show up later as less room for implementation work. On Team and seat-based Enterprise, Design draws from each member’s seat limits.

How I use them now

Claude Design is not a general-purpose UI production tool. It is where you explore direction: a new web app’s homepage, an admin dashboard, a form’s appearance, a landing page hero, a slide or one-pager. Things where the first requirement is to see something.

Implementation goes to Claude Code: matching existing components, wiring routing, connecting form submission, testing, committing.

A sensible order for a first try:

  • Make a small screen concept in Claude Design in the browser
  • Ask for two or three variants to find where it is strong and weak
  • Check your usage screen
  • Look at what export formats you get
  • Confirm /design-login works from the standalone CLI
  • Try /design-sync on a small repository, remembering it pushes your design system up
  • In a real repository, decide the direction yourself before handing anything to Code

The failure mode is trying to connect everything on day one.

FAQ

Is Claude Design available on Pro?

Yes. It is in beta for Pro, Max, Team, and Enterprise. On Enterprise it is off by default and needs administrator enablement.

Can I run /design-sync from the Claude Desktop Code tab?

It did not work in my environment in June 2026. The Desktop documentation notes that some terminal-dialog commands behave differently in the Code tab and should be run from the standalone CLI. Authorize with /login and /design-login there.

Does using Claude Design eat into my Claude Code usage?

Yes. The documentation states Design draws from the same shared pool as chat, Claude Code, and Cowork.

Can Claude Design generate character illustrations?

Anthropic’s documentation does not address image generation either way. In my own use it behaved as a design and prototyping workbench rather than an image model, so I would not plan on it — produce visual assets in a dedicated image tool and use Claude for structure, direction, and getting them into the UI.

Design explores, Code implements

The confusion here is real and mostly structural: Code can build UI, Design can emit code-shaped prototypes, Desktop has a Code tab, the browser has Design, and the CLI is a third entrance with different capabilities.

So fix the roles first. Design is where you explore how something looks. Code is where you implement and verify. /design-sync sends your existing design system up to Design; the handoff bundle brings a design down into implementation. Usage is one shared pool.

Get those three straight and most of the confusion goes away. Start with one small screen concept, then build the path into Code.

References

Next

These notes come from running this setup daily.

About the author

Hidekazu Ishikawa

Hidekazu Ishikawa builds and runs web products with AI agents from Japan. Available for consulting on AI workflow design and web development.

Next

Keep reading.