Presets
A preset decides how much harness runs around the model, and which tools it may reach for. standard is the full agent and the default. plan is read-only: it investigates and proposes, and cannot change anything. minimal strips the harness down to a floor, for when you want to measure the model rather than the tooling around it.
| standard | plan | minimal | |
|---|---|---|---|
| Tools | All 11 | read_file, search, git, done | bash, edit_file |
| Can write | Yes | No | Yes |
| System prompt | Tuned, plus your AGENTS.md | Asks for a plan, plus your AGENTS.md | One fixed line, nothing appends |
| Project context | Repo listing in the first message | Repo listing in the first message | None |
| Compaction | On | On | Off |
Plan mode
Plan mode is for the part of a task that happens before you want anything touched: reading the code, finding the callers, working out what the change should be. It has four tools, all read-only, and a system prompt that asks for a plan rather than a change. The standard prompt tells the model that if it can run something, it should, which is the wrong instinct here.
$ optiq code --preset plan $ optiq code -p "How would you add retries to the fetch path?" --preset plan
In the TUI, Tab switches between plan and standard, and the mode shows in the status bar. Work out the approach in plan mode, press Tab, and carry the same conversation into the change. Shift-Tab is the approval cycle and is unaffected.
Plan mode reads better with a question than an order. Ask how you would do something and you get a plan. Tell it to do the thing and the model will try, get refused, and you have spent turns on that instead.
Why a smaller harness
A capable harness changes the score. The same model, run through two different harnesses on the same 25 SWE-bench tasks, solved 9 and 5. That gap is the tooling, not the weights. So when the question is how good a quantized model is, the agent around it is part of what you are measuring.
minimal mounts the two tools every SWE benchmark settles on, a single line of system prompt, and nothing else. It is a worse agent on purpose.
Using it
# benchmark a quant with the harness out of the way $ optiq code -p "Fix the failing test in parser.py" --preset minimal # the full agent, for getting work done (default) $ optiq code -p "Fix the failing test in parser.py"
The preset is independent of headless. -p decides whether a human approves each tool call; --preset decides how much harness the model sees. Combine them as above, or run minimal interactively.
Nothing appends
Under minimal the system prompt is exactly one line, and that is enforced rather than intended. Your AGENTS.md is not read at all, and no repo listing is added to the first message. Every addition to a system prompt is reasonable on its own, which is how a minimal mode stops being minimal without anyone deciding to change it, so the test suite asserts that what standard injects cannot reach the model here.
Compaction is off for the same reason. A benchmark run whose context was quietly reshaped partway through is not the run the number describes, so a run either fits the window or fails and says so.
Which to use
Use standard for real work: the extra tools, your project conventions, and compaction all make the agent more useful. Use plan when you want to understand a change before it happens, or when you are pointing a model at a repo you would rather it did not edit yet. Use minimal when you are comparing models or quants and want the number to be about them.
standard and plan are the two you move between while working, which is why Tab cycles those and leaves minimal out. Landing in a two-tool harness mid-task is never what you meant.