Symlink Required for VS Code Extension After Local Installation Migration
Bug Description
itle: VS Code Extension Requires Symlink After Migration to Local Installation
Description:
The VS Code extension fails to work after migrating from global npm installation to local installation, requiring a manual symlink to function properly.
Environment:
- OS: macOS (Darwin 24.5.0)
- Claude Code Version: 1.0.44
- Node.js: 24.2.0 (installed via Homebrew)
- VS Code Extension: mailto:anthropic.claude-code@1.0.31
- Installation Method: Local (migrated from npm-global)
Steps to Reproduce:
- Install Claude Code globally via npm: npm install -g @anthropic-ai/claude-code
- Install VS Code extension - works correctly
- Migrate to local installation: claude migrate-installer
- Uninstall global installation: npm uninstall -g @anthropic-ai/claude-code
- VS Code extension stops working - "Claude: Open Chat" command not found
Expected Behavior: VS Code extension should work seamlessly with local installation after migration.
Actual Behavior: VS Code extension fails to find Claude after migration. Requires manual symlink: ln -s ~/.claude/local/claude /opt/homebrew/bin/claude
Issue: The diagnostic then shows misleading "Multiple installations found" warning.
Suggested Fix: Migration process should automatically create the necessary symlink for VS Code extension compatibility.
Environment Info
- Platform: darwin
- Terminal: iTerm.app
- Version: 1.0.44
- Feedback ID: 182dd093-475a-4519-a273-0a5adac38e56
Errors
[{"error":"Error: Command failed: security find-generic-password -a $USER -w -s \"Claude Code\"\nsecurity: SecKeychainSearchCopyNext: The specified item could not be found in the keychain.\n\n at genericNodeError (node:internal/errors:983:15)\n at wrappedFn (node:internal/errors:537:14)\n at checkExecSyncError (node:child_process:892:11)\n at execSync (node:child_process:964:15)\n at wD (file:///Users/greg/.claude/local/node_modules/@anthropic-ai/claude-code/cli.js:702:3921)\n at file:///Users/greg/.claude/local/node_modules/@anthropic-ai/claude-code/cli.js:623:9350\n at Q (file:///Users/greg/.claude/local/node_modules/@anthropic-ai/claude-code/cli.js:526:13327)\n at uC (file:///Users/greg/.claude/local/node_modules/@anthropic-ai/claude-code/cli.js:623:8496)\n at hC (file:///Users/greg/.claude/local/node_modules/@anthropic-ai/claude-code/cli.js:623:7361)\n at wB (file:///Users/greg/.claude/local/node_modules/@anthropic-ai/claude-code/cli.js:623:11970)","timestamp":"2025-07-09T10:04:56.430Z"},{"error":"RangeError [ERR_CHILD_PROCESS_STDIO_MAXBUFFER]: stdout maxBuffer length exceeded\n at Socket.onChildStdout (node:child_process:482:14)\n at Socket.emit (node:events:507:28)\n at Socket.emit (node:domain:489:12)\n at addChunk (node:internal/streams/readable:559:12)\n at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)\n at Readable.push (node:internal/streams/readable:390:5)\n at Pipe.onStreamRead (node:internal/stream_base_commons:189:23)","timestamp":"2025-07-09T10:04:56.666Z"},{"error":"AbortError: The operation was aborted\n at abortChildProcess (node:child_process:726:27)\n at AbortSignal.onAbortListener (node:child_process:796:7)\n at [nodejs.internal.kHybridDispatch] (node:internal/event_target:827:20)\n at AbortSignal.dispatchEvent (node:internal/event_target:762:26)\n at runAbort (node:internal/abort_controller:488:10)\n at abortSignal (node:internal/abort_controller:459:3)\n at AbortController.abort (node:internal/abort_controller:507:5)\n at Timeout._onTimeout (file:///Users/greg/.claude/local/node_modules/@anthropic-ai/claude-code/cli.js:600:90)\n at listOnTimeout (node:internal/timers:608:17)\n at process.processTimers (node:internal/timers:543:7)","timestamp":"2025-07-09T10:23:29.192Z"}]This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗