The problem
As a Bedrock user, I noticed that thinking steps weren't showing up in Claude Code's output. No reasoning traces, no visibility into the model's thought process. I couldn't tell whether the model was still thinking behind the scenes or not. I was completely flying blind.
That's what prompted the dig into Claude Code's model configuration.
The fix
Claude Code recently added environment variables that let Bedrock users explicitly declare which capabilities their model supports. For Opus:
The same pattern works for Sonnet:
You can also set these via the env block in Claude Code's settings file (~/.claude/settings.json):
"env": {
"ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES": "effort,max_effort,thinking,adaptive_thinking,interleaved_thinking",
"ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES": "effort,thinking,adaptive_thinking,interleaved_thinking"
}
}
What about Haiku?
There's no ANTHROPIC_DEFAULT_HAIKU_MODEL_SUPPORTED_CAPABILITIES variable yet. I'd expect support to land with Haiku 4.6, but for now it's Opus and Sonnet only.
The capabilities explained
The comma-separated values map to specific model features:
- thinking — enables extended thinking output
- adaptive_thinking — lets the model decide when thinking is useful
- interleaved_thinking — thinking steps woven between tool calls
- effort — reasoning effort control
- max_effort — maximum reasoning effort level
The full model configuration docs cover all available environment variables, not just capabilities. See the model config documentation for the complete reference.