[FEATURE] VS Code extension: no session-only model selection - every picker click persists to settings.json

Open 💬 2 comments Opened Jul 8, 2026 by adamerose

Preflight Checklist

  • [x] I have searched existing requests and this feature hasn't been requested yet
  • [x] This is a single feature request (not multiple features)

Problem Statement

In the VS Code native extension, there is no way to switch models for the current session only. Every click in the model picker immediately writes the model field (and effortLevel, per #49076) to the user's settings.json, silently changing the default for every future session in every project on the machine.

The CLI got an escape hatch for this in v2.1.153: per the model config docs, pressing s in the terminal picker switches the model for the current session only, while Enter persists it as the default. The VS Code extension picker has no equivalent — clicking is the only interaction, and clicking always persists.

Concrete failure mode:

  1. My preferred default is Opus (set in ~/.claude/settings.json).
  2. In one VS Code chat session I switch to Haiku for a cheap throwaway task.
  3. Every new session from then on — in every project — opens on Haiku until I notice and manually switch back, which in turn rewrites settings.json again.

A one-off, session-scoped choice is silently promoted to a machine-wide default. The workarounds all leave the extension (use claude --model in a terminal) or involve hand-editing/reverting settings.json after every switch.

How this differs from existing issues (please don't auto-close as duplicate):

  • #69086 (open) asks for a session-scoped /model variant in the CLI; the CLI already has partial coverage via the s keybind. This issue is about the VS Code extension picker, which has no session-only affordance at all.
  • #57742 and #56585 described the same extension problem but were auto-closed as duplicates, leaving the extension gap with no open issue tracking it.

Proposed Solution

Any of the following would resolve it, in order of preference:

  1. Parity with the CLI picker: give the extension's model picker a per-item split — e.g. "use for this session" as the default click action or as a secondary action next to "set as default" — mirroring the s vs Enter distinction the CLI already has.
  2. A setting (e.g. persistModelSelection: false) that makes picker selections session-scoped, so new sessions always start from the model value in settings.json.
  3. At minimum, a visible warning in the picker that the selection will become the global default for all projects.

Environment

  • Claude Code version: 2.1.170
  • Surface: VS Code native extension
  • OS: Windows 11 Pro (10.0.26200)

View original on GitHub ↗

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