Claude Code /model Is Now Session-Scoped
Claude Code v2.1.144 changes the behavior of the /model command so that switching models only affects the current session rather than persisting globally to all future sessions. To set a new default model for all future sessions, users must now press d in the model picker β a deliberate action that makes temporary model switches the norm rather than the exception. This resolves a longstanding pain point where switching models in one session would unexpectedly change the model across all other active and future sessions.
Sources & Mentions
5 external resources covering this update
Model setting changes globally across all sessions (regression) Β· Issue #20745
GitHub
/model command silently persists effortLevel to settings.json Β· Issue #49076
GitHub
Per-tab/per-session model selection in Claude Code Β· Issue #57742
GitHub
Claude Code Updates by Anthropic - May 2026
Releasebot
Pick the Right Claude Code Model for Every Task
Dev.to
/model Is Now Session-Scoped β Defaults Require an Explicit Action
Claude Code v2.1.144 ships a meaningful behavioral change to the /model command: switching models in the picker now applies only to the current session and no longer writes to global settings by default. To persist a model selection as the default for all new sessions, users must explicitly press d in the model picker.
The Old Behavior and Its Problems
Previously, using /model to switch models during a session would silently update the user's persistent model settings, affecting all future sessions. This caused a well-documented frustration: developers who temporarily switched to a faster or cheaper model for a specific task found that their preferred default was overwritten without a clear warning. The GitHub issue tracker included multiple reports of this confusion, with developers noticing their model had reverted to an unexpected selection only when inspecting their settings.json or observing unexpected behavior in a new session.
How It Works Now
With v2.1.144:
- Opening
/modeland selecting a model applies it to the current session only. When the session ends, the selection is discarded. - Pressing
dinside the model picker explicitly sets the selected model as the default for all new sessions β this mirrors the deliberate intent required to change a persistent setting. - The behavior is consistent with how
--modelandANTHROPIC_MODELenvironment variables have always worked: session-scoped, never saved.
Why This Is a Better Mental Model
The new behavior aligns the /model command with the principle of least surprise. Temporary model switches are far more common than default changes β a developer might switch to a lighter model for a quick grep-heavy task, then want to return to their usual model for the next session without any cleanup. Making ephemeral the default, and persistent the deliberate exception, reduces the risk of accidentally misconfiguring the tool over time.
This is especially relevant for developers running multiple concurrent sessions (increasingly common with Claude Code's background agent capabilities): model changes in one session no longer bleed into others.