Development & Automation

Claude Code Effort: When to Use Low, High, or Max (11 Experiments From Thariq).

When should you pick Claude Code effort low, medium, high, or max? A summary of Thariq's 11 experiments and how to set /effort.

· Huuush

Claude Code Effort: When to Use Low, High, or Max (11 Experiments From Thariq)

Key takeaways

  1. 1Effort is a signal for how much computation and verification Claude puts into a task, and you can change it mid-conversation with /effort.
  2. 2Thariq uses a flow of spec interview → low implementation → review → high verification, and uses low far more often.
  3. 3For security, hardware, and bug fixes with many edge cases, a higher effort gets better results, but failures from the wrong approach are not fixed well by effort alone.
Spending Your Effort: the Claude Code effort slider
The slider for choosing Claude Code effort · Source: X @trq212

Summary in three lines

  • Effort is a signal for how much computation and verification Claude puts into a task, and you can change it mid-conversation with /effort.
  • Thariq uses a flow of spec interview → low implementation → review → high verification, and uses low far more often.
  • For security, hardware, and bug fixes with many edge cases, a higher effort gets better results, but failures from the wrong approach are not fixed well by effort alone.

Thariq Shihipar of Anthropic's Claude Code team ran the same task several times at different effort levels and compared the results, the time taken, and the verification process. His conclusion is not to always use a high level. Use low when you are building together quickly, and high when the direction is set and you need careful verification.

Loading X post.

Unable to load the X post. Please try again.

Source: X @trq212 · Interactive explainer and experiment results

1. Effort tells Claude how much time you are giving it

Thariq compares effort to the time you give someone when you hand them a job. If someone asks you to take a full 12 hours, you read that as a request to dig into every corner. If they ask for the same job within an hour, you figure you should hand over a first version that meets the requirements and then fix things together. Some people say a job takes at least three hours and then use exactly three hours. Effort works the same way. At any level, Claude tries to do the job properly, but raising the level increases how much it judges and verifies on its own.

The effort curves Thariq compared for Fable 5.1 and Opus 5.5 were the best he has seen so far. As the level goes up, score and token usage rise together, and Opus 5.5 high scored about the same as Fable 5.1 max using roughly half the tokens.

Terminal-Bench 3.0 score and token chart by effort level
Terminal-Bench 3.0 effort curve · Source: X @trq212

2. Same workout app: 1.5 minutes at low vs 67 minutes at max

On a broad request like "build me a personal workout tracking app," low built workout logging and one chart in about a minute and a half. Medium took 4 minutes, high took 11 minutes, and max took 67 minutes and delivered an app with even a heatmap. Low suits a draft that a person will keep refining, while max suits a polished result in one pass.

Personal workout tracking app results at low, medium, high, and max
Workout app results by effort · Source: X @trq212

3. A 1-minute sketch beats a 28-minute mockup

In a redesign of the Claude Code /config menu, the ideas for improving submenus and search were similar across levels. Low produced a sketch you could interact with in 1 minute, while max spent 28 minutes on a mockup that resembles Claude Code and an explanation of the usage flow. When the goal is quick feedback, the simple sketch was more useful.

Results of the Claude Code /config menu redesign
/config redesign comparison · Source: X @trq212

4. A detailed spec narrows the gap between levels

When Claude first asked questions to fill in missing requirements and the resulting detailed spec was passed to the same workout app task, the outputs looked more alike. Low took 16 minutes, medium 22, high 33, and max 79, with max spending its time polishing finer details. A big share of what high effort does is fill in the blanks a person left.

Workout app results at four effort levels given a detailed spec
Detailed-spec workout app comparison · Source: X @trq212

5. Thariq's four steps for building a new feature

  1. Hand over the spec and have Claude ask questions to fill in missing details.
  2. Build the first implementation with /effort low.
  3. Check that it captured the core of the requirements, and iterate at low if needed.
  4. Once the direction is right, hand off verification and testing with /effort high.

Interaction is more efficient when you split the stretch where a person quickly sets direction from the stretch where the model checks deeply.

6. Benchmark problems are much bigger than everyday work

Terminal-Bench 3.0 is a community-contributed benchmark of terminal tasks. It covers security, hardware, ML, science, software, operations, and media problems. The v3.0.0 release contains an initial 74 tasks.

AreaTaskRequired work
Hardwareretro-console-socBuild a Verilog 8-bit game console that fits a small FPGA and display a test ROM
Sciencetakens-embedding-leanFormally prove the Takens embedding theorem in Lean 4
MLmp-checkpoint-consolidationMerge 16 mixture-of-experts checkpoint shards and reproduce reference logits
Operationsintrastat-meldungHandle an EU month-end trade statistics filing from scratch
Medialayout-config-recreationRecreate a poster image as an editable layout

Terminal-Bench v3.0.0 release

7. A 2-minute filter and a 33-minute filter

html-js-filter is a task to remove ways of sneaking JavaScript into HTML. Fable 5.1 passed 1 of 5 runs at low and all 5 at xhigh. At low, it wrote the filter once in about 2 minutes and tested it on a single page. The high-effort runs spent about 33 minutes reviewing their own draft as if attacking it, found bugs in the installed parser's source, and used standard XSS tests plus a fuzzer they wrote themselves. For high-stakes work like security review or performance optimization, spending this many tokens is worth it.

8. Raising effort rarely fixes the wrong direction

In a comparison of 370 runs each for Fable 5.1, median tokens went from 73k to 222k and passing runs from 140 to 214. When you break out failure types, the ability to check more and the ability to pick the right direction turn out to be different things.

Failure typelowmax
Missed edge cases5924
└ Bugs the tests missed4014
Judgment errors133107
└ Misunderstood requirements4526
└ Wrong or incomplete fixes3110
└ Domain rule errors3224
└ Chose the wrong interpretation2547
Comparison of Fable 5.1 failure types at low and max
Fable 5.1 failure type comparison · Source: X @trq212

Missed edge cases dropped, but choosing the wrong interpretation rose from 25 to 47. High effort can check more carefully, but it does not set the direction for you. That is why you align goals and constraints through an interview first.

9. Hardware 34% → 75%: effort helps most in hard areas

Fable 5.1's pass rates by area, going from low to the top effort levels, were hardware 34%→75%, security 64%→87%, ML 54%→73%, science 41%→61%, software 43%→56%, media 18%→30%, and operations 12%→22%. Problems that follow fixed rules, like operations, still scored low.

Terminal-Bench pass rates by area at low and top effort
Pass rate by area, low → top effort · Source: X @trq212

On the storage engine bug mvcc-lsm-compaction, Opus 5.5 at low changed the code before building and reproducing, finished in about a minute, and scored 0/5. At xhigh, it spent about 11 minutes reproducing the crash first and checking that the test failed on the partly fixed code, and passed 4/5.

10. With no one to ask, high tries it two ways

On the linear programming solver cli-2ph-simplex, low stopped at around 10k tokens and warned that it might be slow on large inputs. High timed the run on a large problem and changed its search method, going from 0/5 to 5/5.

On the protein analysis task gsea-proteomics, high compared two preprocessing methods, noticed the difference in results, and picked the right method, going from 0/5 to 4/5. When a person is around, you can ask them to choose, but when it has to run alone, it can be better for high to test both approaches.

11. Thariq uses max in effectively two cases

He uses low far more often, and uses max when handing something off autonomously with almost no input, or when hunting for security vulnerabilities.

LevelBest-fit work
lowBrainstorming, sketches, easy fixes
mediumMost everyday development, such as new features
highWork where verification matters or there are many edge cases, fixing bugs in old code
maxBuilding and verifying autonomously from scratch, finding security vulnerabilities in critical software
Chart for choosing low, medium, high, or max by task
Effort choice chart by situation · Source: X @trq212
Loading X post.

Unable to load the X post. Please try again.

Source: X @trq212 · He explains that he uses low far more often, and max only when he does not want to give any input or when finding security vulnerabilities.

How to change effort in Claude Code

Set it with /effort low, /effort medium, /effort high, /effort xhigh, or /effort max. /effort auto returns to the model default. Typing /effort with no argument opens a slider, where you pick with the left and right arrows and press Enter. Max applies only to that session.

You can set a value to keep using with effortLevel in settings.json. The environment variable CLAUDE_CODE_EFFORT_LEVEL also works, and the environment variable takes the highest priority. Supported levels can differ by model. With the latest models, changing the level mid-conversation does not break the prompt cache.

Claude Code commands · interactive mode · environment variables

Try it on your next task

Start your next task with /effort low. If the output is headed the right way, raise it to /effort high and hand off the testing.

Official resources and sources

Frequently asked questions

What is effort?
It is a level that controls how much the model computes and verifies on a task.
What is the default Claude Code effort?
It depends on the model and environment. /effort auto returns to the model's default level.
How do I change effort?
Type something like /effort low, or run it with no argument and pick from the slider.
Isn't it better to always use max?
Max is useful for building and verifying autonomously through to the end, or for finding security vulnerabilities. Low is better for quick drafts and feedback.
Does changing it mid-conversation break the prompt cache?
With the latest Claude models, changing the effort level does not break the prompt cache.

Related articles