Scheduled Tasks always launch on Opus 5, ignoring model picker and settings.json

Status Open
Maintainer reply None cached
Activity 0 comments · opened Sep 11, 2026

Summary

Scheduled Tasks in the Claude desktop app (Code tab) always launch on Opus 5, regardless of the app's model picker or ~/.claude/settings.json (model and env.ANTHROPIC_MODEL). There is no per-task model field in the scheduled-task create/update flow.

Evidence

  • 67 scheduled-task sessions across 2026-09-08 to 2026-09-11 were checked by counting the model field on every assistant turn in their transcript files (~/.claude/projects/<project>/*.jsonl).
  • 63 of 67 ran 100% on claude-opus-5 from first turn to last, even though ~/.claude/settings.json has specified "model": "claude-sonnet-5" and env.ANTHROPIC_MODEL: "claude-sonnet-5" since 2026-09-05.
  • The terminal CLI honors the same settings file correctly: claude -p --output-format json "ok" reports modelUsage: ["claude-sonnet-5"].
  • Switching the app's model picker (Code tab, "landing" default) from Opus 5 to Sonnet 5 only affected turns of scheduled-task sessions that happened to already be in flight at that exact moment — 4 sessions show a mid-session split between claude-opus-5 and claude-sonnet-5 turns, timed to when the picker was toggled. Every scheduled task launched afterward (new session start) still started on claude-opus-5, unchanged.

Expected behavior

Scheduled tasks should either (a) inherit the app's current default model / settings.json at launch time, or (b) expose a model field on create_scheduled_task / update_scheduled_task so each routine can pin its own model.

Impact

Cost: routines that don't need Opus-level reasoning (daily digests, log syncs, simple checks) are billed at Opus rates with no way to opt down, for every recurring run.

View original on GitHub ↗