The /effort command controls how much reasoning the model applies to your prompts. Lower effort levels produce faster, shorter responses. Higher levels spend more tokens on deeper analysis, multi-step reasoning, and thorough code generation.
# Open interactive picker /effort # Set directly /effort high
Available levels:
| Level | Behavior |
|---|---|
low | Fast, concise responses. Good for simple questions and quick lookups. |
medium | Balanced reasoning. Suitable for most development tasks. |
high | Thorough analysis. Better for complex refactoring and architecture decisions. |
xhigh | Extended reasoning. Useful for multi-file changes and nuanced problems. |
max | Maximum depth. Best for difficult debugging, security analysis, and intricate logic. |
Not all models support every level. The picker only shows levels available for your current model.
Supported models:
Each model defines the values it accepts for the reasoning-related fields in its configuration schema. The output_config.effort column lists the effort levels available to /effort and --effort for that model; thinking.type and thinking.display control reasoning behavior and visibility; max_tokens sets the output length limit.
| Model | thinking.type | thinking.display | output_config.effort | max_tokens |
|---|---|---|---|---|
| Claude Opus 4.8 | adaptive, disabled | summarized, omitted | low, medium, high, xhigh, max | 1024–128000 |
| Claude Opus 4.7 | adaptive, disabled | summarized, omitted | low, medium, high, xhigh, max | 1024–64000 |
| Claude Opus 4.6 | adaptive, disabled | summarized, omitted | low, medium, high, max | 1024–64000 |
| Claude Sonnet 4.6 | adaptive, disabled | summarized, omitted | low, medium, high, max | 1024–64000 |
Set the initial effort level when you start a session with the --effort flag:
kiro-cli chat --effort high
The flag accepts the same levels as /effort (low, medium, high, xhigh, max) and applies from your first prompt, so quick lookups stay fast and complex work gets deeper reasoning from the start. You can still change the level mid-session with /effort.
Your effort choice persists automatically. Set a level with /effort or --effort and Kiro remembers it for future sessions — there's no extra step to make it the default. Preferences are stored in ~/.kiro/settings/cli.json. See In-session settings for more on how preferences persist.
To set default model parameters per model — so you don't have to run /effort at the start of every session — add chat.modelDefaults to your settings file:
{ "chat.modelDefaults": { "claude-sonnet-4.6": { "output_config": { "effort": "high" } }, "claude-opus-4.7": { "output_config": { "effort": "max" } } } }
Control whether the model uses extended thinking and how it displays reasoning:
{ "chat.modelDefaults": { "claude-opus-4.8": { "thinking": { "type": "adaptive", "display": "summarized" } }, "claude-sonnet-4.6": { "thinking": { "type": "disabled" } } } }
thinking.type — adaptive enables extended thinking when the model determines it's needed; disabled turns it off entirely.thinking.display — summarized shows a condensed version of reasoning; omitted hides it from output. Only applies when type is adaptive.Set the maximum number of tokens the model can generate per response:
{ "chat.modelDefaults": { "claude-opus-4.8": { "max_tokens": 128000 }, "claude-sonnet-4.6": { "max_tokens": 32000 } } }
max_tokens limits per model:
| Model | Minimum | Maximum |
|---|---|---|
| Claude Opus 4.8 | 1024 | 128000 |
| Claude Opus 4.7 | 1024 | 64000 |
| Claude Opus 4.6 | 1024 | 64000 |
| Claude Sonnet 4.6 | 1024 | 64000 |
You can combine output_config, thinking, and max_tokens in a single model entry:
{ "chat.modelDefaults": { "claude-opus-4.8": { "output_config": { "effort": "max" }, "thinking": { "type": "adaptive", "display": "summarized" }, "max_tokens": 128000 } } }
To open your settings file in your editor:
kiro-cli settings open
Or place a .kiro/settings/cli.json in your project root to set workspace-level defaults that apply to everyone working in that repository.
When determining the effort level for a session, Kiro applies this priority order:
/effort or --effort during the current sessionchat.modelDefaults in .kiro/settings/cli.jsonchat.modelDefaults in ~/.kiro/settings/cli.jsonmax for security reviews, complex debugging sessions, or when you need the agent to consider many interacting constraints
Effort