[BUG]
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?
A session created from a Claude Design handoff (claude.ai/design → "send to Claude Code") receives the design bundle but no repository, and there is no way to get one afterwards. All three documented paths out of this are blocked in the same environment:
add_repomid-session registers the repo but provisions no git credentials, so any private clone fails with a 401.- Design handoff session creation does not offer repo/source selection, so the bundle and the repo are mutually exclusive at creation time.
/design-sync— the documented two-way bridge that would solve this — requires/design-login, which requires an interactive terminal and is unavailable in web sessions.
Net effect: a user with designs in Claude Design and code in GitHub cannot get the two into the same session by any supported route. The only way out is manually downloading an archive and committing it by hand, which is exactly what these features exist to avoid.
Environment
- Claude Code on the web (remote execution environment). Claude Code 2.1.223
- Session originated from a Claude Design handoff bundle ("Build request" project)
- Platform: Linux 6.18.5-fc-v18
- Target repo: private, owned by the same account running the session
- Both the Claude and Claude Design Import GitHub Apps installed on the account
- Individual plan (no access to organization settings)
Repro
- In claude.ai/design, trigger a handoff to Claude Code for a project.
- In the resulting session, call
add_repofor a private repo owned by the same account. - Attempt the clone the tool instructs you to run.
Actual behaviour
add_repo reports success:
{"repo":"repo_name","status":"appended","workspace":"/home/claude/repo"}
The clone it tells you to run then fails:
$ git clone --depth 1 https://github.com/user/repo /home/claude/repo
Cloning into '/home/claude/repo...
fatal: could not read Username for 'https://github.com': No such device or address
The container has no git credentials of any kind:
$ git config --global --get-all credential.helper
(empty)
$ ls ~/.git-credentials /home/claude/.git-credentials
ls: cannot access '/root/.git-credentials': No such file or directory
ls: cannot access '/home/claude/.git-credentials': No such file or directory
$ env | grep -oE '^[A-Z_]*(TOKEN|GH|GITHUB)[A-Z_]*'
MAX_THINKING_TOKENS
CLAUDE_CODE_OAUTH_TOKEN_FILE_DESCRIPTOR
PLAYWRIGHT_BROWSERS_PATH
CLAUDE_SESSION_INGRESS_TOKEN_FILE
This is not the network policy — GitHub is reachable:
$ curl -sS -o /dev/null -w "%{http_code}" https://github.com/
200
Re-calling add_repo returns status: already_present and does not provision credentials. Retried across sandboxed and unsandboxed execution; identical result.
DesignSync is also unavailable:
DesignSync needs design-system authorization, but /design-login requires an
interactive terminal and is not available in this environment.
What Should Happen?
Any one of these would resolve it:
add_repoprovisions working git credentials for repos it reports as successfully attached. Today it returns success and a workspace path for an operation that cannot succeed.- Design handoff session creation offers source/repo selection, so a session can start with both the bundle and the repo.
/design-loginworks without an interactive terminal in web sessions (device-code flow, or browser auth like the initial login), unblocking/design-sync.
Severity / impact
High for the specific workflow these features were built for. Claude Design's handoff and Claude Code's GitHub integration are advertised as complementary, and the Claude Design Import GitHub App exists to connect them — but in a handoff session the combination is unreachable. The user is left choosing between their designs or their codebase.
Notes
add_reporeturningstatus: appendedwith aworkspacepath for a repo that cannot be cloned is itself worth fixing. A clear "credentials unavailable in this environment" error would have saved a long, frustrating diagnosis.- The tool's own guidance ("do NOT pre-check the repo, the backend performs the real authorization check") sets the expectation that a success response means the repo is reachable. Here it does not.
Error Messages/Logs
Steps to Reproduce
Repro
- In claude.ai/design, trigger a handoff to Claude Code for a project.
- In the resulting session, call
add_repofor a private repo owned by the same account. - Attempt the clone the tool instructs you to run.
Claude Model
Opus
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
Claude Code 2.1.223
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
_No response_