Code tab (desktop app) still applies the model/effort pick globally across projects — the behaviour fixed in #20745 for the CLI

Status Open
Reported on v2.1.144
Maintainer reply None cached
Activity 0 comments · opened Sep 25, 2026

Summary

In the Claude desktop app's Code tab, the model and effort picked for one session become the default for every new session in every project, local and SSH-remote. I work on several projects that need different models and efforts (one on Fable at max, one on Opus at extra-high, one on Fable at medium, …), so I have to change both by hand every time I switch projects — and when I forget, a session runs a whole evening on the wrong model. This week that cost me an evening: a session on the wrong model reviewed and merged work that had to be fully rolled back.

#20745 (closed as fixed in 2.1.144) addressed the same global-model problem for the CLI. The Code tab still launches every session with its own --model / --effort flags taken from the last pick, so the project's .claude/settings.json model / effortLevel — which the CLI honours — is ignored there.

Environment

  • Claude desktop app 2.9939.2 (Code tab), macOS 26.6.2
  • The Code tab's bundled CLI: ccd-cli 2.1.281 (local sessions and SSH-remote sessions alike)

Steps to reproduce

  1. In project A, put {"model": "opus", "effortLevel": "xhigh"} in .claude/settings.json.
  2. In the Code tab, pick a different model/effort (e.g. Fable / max) for a session in project B.
  3. Start a new session in project A.

Expected: the new session in A starts on Opus / xhigh (the project's setting), or at least on the model/effort last used in project A.

Actual: it starts on Fable / max — the last pick from project B. The launched process carries --model claude-fable-5-1 --effort max (visible in ps), which overrides the project file. The same happens for SSH-remote projects: the remote session is launched with --model / --effort from the last pick.

Ask

Either remember the last model and effort per project folder in the Code tab (SSH projects included), or honour the project's .claude/settings.json model / effortLevel when the picker is on Default — i.e. give the Code tab the per-project behaviour the CLI has had since 2.1.144.

View original on GitHub ↗