VS Code extension ignores project-level model setting

Resolved 💬 4 comments Opened Mar 13, 2026 by poodle64 Closed May 28, 2026

Feature Request

The VS Code extension should respect per-project model selection, the same way the CLI does.

Current Behaviour

The claude CLI correctly reads the model from project-level .claude/settings.json:

{
  "model": "haiku"
}

Opening claude in a terminal in that project directory uses haiku. Other projects use the global default from ~/.claude/settings.json.

The VS Code extension ignores this entirely. It only reads claudeCode.defaultModel from the global VS Code settings.json. There is no per-project model override.

What Was Tested

All of these were tested and none change the model for the extension:

  1. .claude/settings.json in the project root with "model": "haiku" — extension ignores it
  2. .vscode/settings.json in the project root with "claudeCode.defaultModel": "haiku" — extension ignores workspace-level settings
  3. /model command in the sidebar — works, but writes to the global VS Code settings.json, affecting all open workspaces

Expected Behaviour

The extension should follow the same hierarchy as the CLI:

.claude/settings.json        (project — highest priority)
~/.claude/settings.json      (user global — fallback)
claudeCode.defaultModel      (VS Code setting — lowest priority fallback)

Or at minimum, respect VS Code's standard workspace settings mechanism (.vscode/settings.json overrides user settings).

Why This Matters

Users working across multiple projects need different models for different contexts — e.g. Opus for complex repos, Haiku for quick tasks. This works perfectly in the CLI but is impossible in the extension without manually running /model every time you switch windows (and that change is global, affecting other windows).

Environment

  • Claude Code 2.1.70 (VSCodium extension on macOS)
  • Also affects VS Code (same extension)

View original on GitHub ↗

This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗