[BUG] VS Code 'Launch in Terminal' ignores bundled binary, hardcodes 'claude' command
Description
The "Launch in Terminal" feature in the VS Code extension does not use the bundled binary path. Instead, it hardcodes the command claude, expecting it to be in the user's PATH. This fails for users who don't have claude installed globally, even though the extension ships with its own binary at resources/native-binary/claude.
Analysis
Examining the minified extension code reveals two different code paths:
- Sidebar/Webview mode: Correctly uses
EQ(context)function to resolve the bundled binary path atresources/native-binary/claude, then spawns it as a subprocess.
- "Launch in Terminal" mode (
_tefunction): Ignores the bundled binary entirely:
```javascript
// Creates terminal without specifying a binary path
o = wt.window.createTerminal({name:..., iconPath:..., location:...})
// Then just runs "claude" expecting it to be in PATH
l.shellIntegration.executeCommand(["claude", ...args])
// Or fallback after 3 seconds:
o.sendText("claude")
```
The EQ() function that resolves the bundled path is never called by the terminal launch code.
Steps to Reproduce
- Install the Claude Code VS Code extension
- Ensure
claudeis NOT in your system PATH - Use the "Launch in Terminal" command/button
- Terminal opens but fails to find
claudecommand
Expected Behavior
The extension should use the bundled binary path (from EQ(context)) when launching in terminal mode, just like it does for sidebar/webview mode.
Actual Behavior
The extension runs bare claude command, which fails if the CLI isn't separately installed in PATH.
Suggested Fix
// Instead of:
l.shellIntegration.executeCommand(["claude", ...args])
o.sendText("claude")
// Should be:
const binaryPath = EQ(context)
l.shellIntegration.executeCommand([binaryPath, ...args])
o.sendText(binaryPath)
Environment
- OS: Linux (also likely affects macOS/Windows)
- Extension: Claude Code VS Code extension
- Component: Terminal launch functionality
Additional Context
Both code paths (webview subprocess and terminal) should use the same binary resolution logic for consistency. The bundled binary exists specifically so users don't need a separate global installation.
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗