Skip to content
Learn Kiro.

Recipes · Chapter 46 of 63

Set the Reasoning Effort

Set Kiro's reasoning effort from low to max, in the IDE effort panel or with /effort and --effort in the CLI, and set defaults in chat.modelDefaults.

All levels 2 min read last reviewed 2026-09-04

◎ Learning objective

Match the reasoning effort to the task and set a sensible default so you stop paying for thinking you do not need.

Reasoning effort decides how much a model thinks before it answers. Kiro exposes five levels, and matching the level to the task is one of the easiest ways to control both speed and credit spend.

When to use this

Lower the effort for mechanical work: renaming things, writing boilerplate, formatting, small edits with a clear right answer. Raise it for design decisions, tricky debugging, and anything where a wrong answer costs more than the extra credits. Leave it alone when you are unsure; the default is reasonable.

Steps

  1. Learn the ladder. The levels are low, medium, high, xhigh, and max. Lower means faster, shorter, and fewer credits.
  2. Check your model supports the level you want. Claude Opus 5, Opus 4.8, and Sonnet 5 support all five. Opus 4.7, Opus 4.6, and Sonnet 4.6 have no xhigh. The GPT-5.6 models (Sol, Terra, Luna) support every level and default to high.
  3. Change it in the IDE by clicking the model name in the chat input. That opens the panel where you pick the effort.
  4. Change it in the CLI with /effort inside a session, or start a session with the --effort flag when you already know what the task needs.
  5. Set a default so you stop deciding every time. Put it under chat.modelDefaults in ~/.kiro/settings/cli.json for a personal default, or .kiro/settings/cli.json for a project default.
  6. Understand which setting wins. The order is session, then workspace, then user, then Kiro’s built-in default. A /effort change in a session overrides everything below it.
  7. Watch the credit line. Higher effort means more thinking tokens, and thinking tokens are billed work like anything else.

Check it worked

Ask the same modest question at low and at high and compare. Low should come back faster and shorter. If you see no difference at all, check the model actually supports the level you set, and check nothing at a closer scope is overriding it. A session-level /effort silently wins over the file default.

Common problems

  • The level did not apply. Your model does not offer it. xhigh is missing on Opus 4.7, Opus 4.6, and Sonnet 4.6.
  • The default is ignored. Something closer in scope is set. Session beats workspace, workspace beats user.
  • Credits climb. A high default across every session adds up. Set the default low and raise it per task.
  • Answers got worse after you lowered it. That is the trade. Lower effort is for work where the answer is obvious, not for work you find hard.
  • You edited the wrong file. ~/.kiro/settings/cli.json is your personal file. .kiro/settings/cli.json is the project one, and it wins for that workspace.

Frequently asked questions

What is reasoning effort in Kiro?

Reasoning effort controls how much thinking a model does before it answers. Kiro offers low, medium, high, xhigh, and max. Lower effort is faster, produces shorter responses, and uses fewer credits. Higher effort suits hard problems where a wrong answer costs more than the extra spend.

How do I change reasoning effort in Kiro?

In the IDE, click the model name in the chat input and open the effort panel. In the CLI, run /effort during a session or pass --effort when you start one. Defaults live under chat.modelDefaults in ~/.kiro/settings/cli.json or .kiro/settings/cli.json.

Which models support xhigh?

Claude Opus 5, Opus 4.8, and Sonnet 5 support all five levels including xhigh. Opus 4.7, Opus 4.6, and Sonnet 4.6 do not offer xhigh. The GPT-5.6 models support every level and default to high.

☰ Chapter summary

  • The levels are low, medium, high, xhigh, and max.
  • Opus 5, Opus 4.8, and Sonnet 5 support all five; Opus 4.7, Opus 4.6, and Sonnet 4.6 have no xhigh.
  • GPT-5.6 Terra, Sol, and Luna support all levels and default to high.
  • In the IDE, click the model name in the chat input and use the effort panel. In the CLI, use /effort or --effort.
  • Defaults live in chat.modelDefaults in ~/.kiro/settings/cli.json or .kiro/settings/cli.json; session beats workspace beats user beats built-in.

All chapter summaries are collected on the revision page.

Was this chapter helpful?