Claude Code /model Is Now Session-Scoped

Claude Code

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.


/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 /model and selecting a model applies it to the current session only. When the session ends, the selection is discarded.
  • Pressing d inside 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 --model and ANTHROPIC_MODEL environment 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.