[BUG] teammateDefaultModel in settings.json is silently ignored, while the published JSON schema declares it valid there

Status Open
Maintainer reply None cached
Activity 1 comment · opened Jul 30, 2026

Environment

  • Claude Code v2.1.220
  • macOS (Darwin 25), terminal CLI
  • claude.ai Max subscription auth

What happened

I added "teammateDefaultModel": "sonnet" to ~/.claude/settings.json. The key validates cleanly against the published JSON schema (https://json.schemastore.org/claude-code-settings.json), which lists teammateDefaultModel as a settings.json property.

Per the docs' Global config settings section, however, the key is only read from ~/.claude.json:

"These settings are stored in ~/.claude.json rather than settings.json. If you add these keys to settings.json, Claude Code silently ignores them at startup."

The result: the setting is silently ignored, no warning is emitted anywhere, and agent-team teammates keep inheriting the lead's model. Because the schema says the key is valid, editor validation actively reinforces the misconfiguration instead of catching it.

Expected behavior

Preferred: (a) promote teammateDefaultModel to settings.json like the other /config preference keys migrated in v2.1.119. "Default model for my teammates" is a portable user preference (and a cost control), not machine-local state — unlike the IDE-shaped keys in that table (autoConnectIde, diffTool, etc.). Users who sync dotfiles across machines currently cannot make this setting portable at all, since ~/.claude.json is tool-managed state that isn't sync material.

Failing that, either would remove the trap:

  • (b) emit a startup warning when a global-config-table key is found in a settings.json file (precedent: the v2.1.210 startup warning for Write(path)/Glob(path) permission rules), or
  • (c) remove teammateDefaultModel (and the other five global-config keys) from the settings.json JSON schema so validation matches runtime behavior.

Repro

  1. Ensure ~/.claude.json has no teammateDefaultModel key.
  2. Add "teammateDefaultModel": "sonnet" to ~/.claude/settings.json (validates against the schema).
  3. Start a session with agent teams enabled (CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1), spawn a teammate without specifying a model.
  4. Teammate inherits the lead's model; the configured sonnet default is never applied and nothing reports the key as ignored.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗