[BUG] VS Code extension native panel resolves a different `claude` binary than the shell, causing global config (~/.claude/CLAUDE.md) to not load

Status Open
Reported on v2.1.212
Maintainer reply None cached
Activity 0 comments · opened Jul 17, 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?

The Claude Code VS Code extension's native sidebar panel does not load global configuration (~/.claude/CLAUDE.md and ~/.claude/rules/) the same way the CLI does, even though these are documented as shared. This happens regardless of the "Use Terminal" setting.

Asking the same question ("what are the global configs?") produces different results depending on how the session is started:

  1. CLI in an external terminal (Tilix), from the project directory → correctly answers immediately from ~/.claude/CLAUDE.md, no file search needed.
  2. VS Code integrated terminal, running claude manually → same correct, immediate answer as (1).
  3. Extension native panel, "Use Terminal" OFF (default) → does not know the global rules; instead runs an active file search ("Searching for 3 patterns, reading 2 files, listing 1 directory, running 1 shell command") and incorrectly reads ~/.config/Code/User/settings.json (VS Code's own editor settings) — unrelated to Claude Code config.
  4. Extension native panel, "Use Terminal" ON → same broken behavior as (3). The setting only changes the UI presentation, not how the underlying session is initialized.
  5. Extension native panel, with "Claude Process Wrapper" set to the output of which claude → ✅ fixed. Correctly loads ~/.claude/CLAUDE.md and rules/, answering immediately just like the CLI.

Suspected root cause: by default the extension's native panel appears to resolve/launch a different claude binary than the one on the user's $PATH (likely a bundled or cached path — in my case which claude/home/rpa/.local/bin/claude). Setting "Claude Process Wrapper" to that exact binary fixes it completely, which points to binary/environment resolution as the root cause rather than a CLAUDE.md parsing bug.

Note: different from #11647 ("Process Wrapper not used when Use Terminal is Enabled") — here the wrapper fixed the problem with "Use Terminal" turned OFF. May also relate to #15772 (extension ignoring settings.json).

What Should Happen?

By default, the extension's native panel should resolve and launch the same claude binary as the one on the user's $PATH (or clearly document/expose which binary it uses), and it should load global user config (~/.claude/CLAUDE.md, ~/.claude/settings.json, ~/.claude/rules/) identically to the CLI — without requiring manual "Claude Process Wrapper" configuration.

Concretely: asking "what are the global configs?" in the native panel should return the same immediate answer as running claude in a terminal, instead of searching the wrong files (e.g. VS Code's own ~/.config/Code/User/settings.json).

Error Messages/Logs

No crash or stack trace — the failure is silent (wrong behavior, not an error).

Instead of loading `~/.claude/CLAUDE.md`, the native panel emits a file-search trace and reads the wrong file:

> Searching for 3 patterns, reading 2 files, listing 1 directory, running 1 shell command
> (reads `~/.config/Code/User/settings.json` — VS Code's editor settings, unrelated to Claude Code)

Steps to Reproduce

  • CLI installation: installed standalone via the native installer (https://claude.ai/install.sh), which places the binary at ~/.local/bin/claude (this is the path returned by which claude).
  1. Set up global rules in ~/.claude/CLAUDE.md (and optionally ~/.claude/rules/) with content not duplicated in any project-level CLAUDE.md.
  2. Open a project folder in VS Code, open the Claude Code native panel (Spark icon).
  3. Ask: "what are the global configs?" (or similar, referencing rules only defined globally).
  4. Observe the extension does not know the answer and/or searches the wrong files (e.g. ~/.config/Code/User/settings.json).
  5. Run which claude in a terminal to get the binary path.
  6. In extension settings, set "Claude Process Wrapper" to that exact path.
  7. Fully restart VS Code.
  8. Re-open the native panel and ask the same question again.
  9. Observe it now correctly loads ~/.claude/CLAUDE.md.

Claude Model

None

Is this a regression?

I don't know

Last Working Version

Opus 4.8

Claude Code Version

2.1.212 (Claude Code)

Platform

Anthropic API

Operating System

Ubuntu/Debian Linux

Terminal/Shell

Other

Additional Information

Important caveat about the workaround: setting "Claude Process Wrapper" to which claude only works because I have the standalone CLI installed (via https://claude.ai/install.sh, at ~/.local/bin/claude). A user who only installed the VS Code extension — without the standalone CLI — would have no claude binary on $PATH to point the wrapper at, and therefore no way to apply this workaround. This makes the default-resolution bug more impactful: the broken path is the only path available to extension-only users.

  • May share a root cause with #11647 (Process Wrapper ignored when "Use Terminal" is enabled) and #15772 (extension ignoring settings.json).
  • Workaround that fully fixes it: set "Claude Process Wrapper" in the extension settings to the output of which claude (in my case /home/rpa/.local/bin/claude), then fully restart VS Code.
  • Screenshots available showing: (a) the incorrect file search reading VS Code's own settings.json, (b) the correct CLI response for comparison, (c) the native panel answering correctly after setting Process Wrapper.
  • which claude/home/rpa/.local/bin/claude; global config confirmed present: ~/.claude/CLAUDE.md + ~/.claude/rules/ (7 files).

View original on GitHub ↗