[BUG] Claude Design "Send to local coding agent" handoff fails — generated prompt relies on a "Claude Design connector" that local Claude Code does not have and cannot install

Status Fixed / completed
Reported on v2.1.176
Maintainer reply None cached
Activity 4 comments · opened Jun 18, 2026 · closed Jun 19, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

Claude Design's Export → "Send to local coding agent" generates a default prompt of the form:

Import this Claude Design project using the Claude Design connector: https://claude.ai/design/p/<PROJECT_ID>?file=<FILE>.dc.html Implement: <FILE>.dc.html

When this default prompt is pasted into local (terminal) Claude Code, there is no "Claude Design connector" available, so CC cannot fetch the design. It falls back to WebFetch, which hits the authenticated claude.ai/design/... page and returns nothing usable, then attempts Playwright scraping, which does not yield the real handoff bundle either. The net result is a fetch/auth failure and no design content.

claude mcp list shows no Design-related server — only the connectors I have configured (e.g. alphaXiv, Gmail, context7, figma, github, playwright). I could not find any documented way to add or enable a "Claude Design connector" for local Claude Code.

The export dialog itself implicitly acknowledges the gap: the "Download zip instead" option is labeled "For agents without the Claude Design connector — drop the bundle into your agent's chat manually." In other words, the default / recommended prompt is the one that fails for local CC, and only the non-default zip path works.

What Should Happen?

One of:

  • (a) Local Claude Code ships with — or has a documented way to install — a Claude Design connector that authenticates and fetches the bundle from the share URL; or
  • (b) The "Send to local coding agent" default prompt should not assume a connector that local CC does not have. It should default to the downloadable-bundle path (or detect the connector's absence and instruct the user accordingly).

At minimum, document how to obtain/enable the connector for local terminal CC.

Error Messages/Logs

The default prompt fails. The `claude.ai/design/...` share URL returns nothing usable to clients without the connector (cf. #52292). Only the **"Download zip instead"** fallback works.

Steps to Reproduce

  1. Create/open a project in Claude Design (Pro/Max account).
  2. Click Export → "Send to local coding agent".
  3. Copy prompt (the default prompt references "using the Claude Design connector" plus the claude.ai/design/... URL).
  4. Paste it into local Claude Code (terminal).
  5. CC reports it has no Claude Design connector; WebFetch cannot read the authenticated URL; the fetch/auth step fails and no design is imported.

Claude Model

Opus

Is this a regression?

Yes, this worked in a previous version

Last Working Version

2.1.176

Claude Code Version

2.1.181

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Terminal.app (macOS)

Additional Information

Workaround (for others hitting this)

In the export dialog, check "Download zip instead", unzip the bundle, and point Claude Code at the extracted folder — it contains the design files plus a README describing intent. This bypasses the connector/URL fetch entirely:

cd <your-project>
unzip ~/Downloads/<bundle>.zip -d ./design-bundle
claude
> Implement the design in ./design-bundle (see the README inside for intent)

Environment

  • Claude Code version: <run: claude --version>
  • Operating System: macOS <version>
  • Account type: Claude Pro/Max (personal, no organization)
  • Surface: local terminal Claude Code
  • Auth mode: subscription OAuth (verify via /status)

Related Issues

  • #52292 — Claude Design share URLs return "not found" to unauthenticated clients (blocks Claude Code integration). Narrower symptom of the same gap.
  • #60327 — Feature request: a way for Claude Code to query an externally-maintained design system (e.g. Claude Design) / first-class Design MCP connector.
  • #51980 — "Send to Claude Code Web" from Claude Design lacks a repo picker; confirms the one-shot bundle handoff exists but is one-time only.

View original on GitHub ↗

4 Comments

github-actions[bot] · 3 months ago

Found 1 possible duplicate issue:

  1. https://github.com/anthropics/claude-code/issues/69239

This issue will be automatically closed as a duplicate in 3 days.

  • If your issue is a duplicate, please close it and 👍 the existing issue instead
  • To prevent auto-closure, add a comment or 👎 this comment

🤖 Generated with Claude Code

Gnonymous · 3 months ago

Resolved — the root cause on my end was a local env var, not a missing connector.

TL;DR: local Claude Code does ship with the Claude Design connector — it's the built-in /design-sync / DesignSync mechanism. In my case it was being silently suppressed because I had CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 in my ~/.claude/settings.json env block. With that set, DesignSync never registers, so the "Send to local coding agent" prompt has no connector to use and falls back to WebFetch against the authenticated claude.ai/design/... URL — which is exactly the failure I described.

The binary makes this explicit. Strings from the 2.1.183 build:

DesignSync is unavailable while nonessential network traffic is restricted (CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC is set). Unset it to use /design-sync. Projects is unavailable while nonessential network traffic is restricted (...)

CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC is the umbrella privacy switch (per the docs it's equivalent to DISABLE_AUTOUPDATER + DISABLE_FEEDBACK_COMMAND + DISABLE_ERROR_REPORTING + DISABLE_TELEMETRY). What the public docs don't mention is that it also gates DesignSync / Projects / live-preview.

Fix:

  1. Remove CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC from settings.json. To keep telemetry/error-reporting/etc. off without the umbrella, set the granular flags explicitly instead: DISABLE_TELEMETRY, DISABLE_ERROR_REPORTING, DISABLE_FEEDBACK_COMMAND, CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY, DO_NOT_TRACK.
  2. Fully restart Claude Code.
  3. /design-sync now shows up and the "Send to local coding agent" handoff works end-to-end.

This also likely explains the regression I flagged (worked in 2.1.176): the env var was set the whole time, so the DesignSync gating behind it appears to have been introduced after 2.1.176.

One genuine gap worth keeping (for maintainers): when the connector is suppressed by this env var, local CC gives no diagnostic — it silently falls back to WebFetch instead of saying something like "DesignSync is disabled via CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC." A one-line hint at handoff time would have saved a lot of debugging.

Since the connector does ship with local CC and the handoff works once the env var is removed, I'm closing this as resolved. Thanks!

Gnonymous · 3 months ago

Adding a note here because this issue turned out to be a symptom of a broader pattern that keeps biting users.

My root cause was CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC. I'd set it to opt out of telemetry — a reasonable privacy choice, I thought. What I didn't know was that the same flag also silently disables /design-sync, Projects, and live-preview. No warning, no log line, nothing. The features just… aren't there, and you're left wondering what you broke.

This isn't an isolated case. The same coupling has come up repeatedly across the repo:

  • #34178 — disabling telemetry silently kills the Opus 1M context window on eligible plans
  • #45918 — DISABLE_NONESSENTIAL_TRAFFIC blocks the channels feature flag
  • #53899 — the same flag also quietly disables the auto-updater (security updates included)

And to be fair, there's precedent that this can be fixed: #45381 decoupled the prompt-cache TTL from the telemetry flag, and that was resolved. So the architecture clearly allows for it.

I think the ask is straightforward:

  1. Decouple privacy/telemetry opt-outs from feature entitlements. Telemetry and error reporting are genuinely optional. Feature availability is not the same category of traffic — it shouldn't travel through the same kill switch.
  2. At minimum, surface a diagnostic when a feature is suppressed by an env var. Something like design-sync disabled by CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC would have saved me (and probably others) hours of debugging. Silent degradation is the worst kind — you don't even know what you're missing.

I say this as a long-time Pro/Max subscriber who genuinely likes the product. The irony of a privacy toggle quietly removing paid features is… not great. Happy to help test if there's a fix in progress.

github-actions[bot] · 1 month ago

This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.