Skip to content

Support effort on codex, pi and opencode, and in settings - #299

Merged
adamw merged 7 commits into
masterfrom
feat/effort-other-harnesses
Oct 22, 2026
Merged

adamw merged 7 commits into
masterfrom
feat/effort-other-harnesses

Conversation

@adamw

@adamw adamw commented Oct 20, 2026 •

Copy link
Copy Markdown
Member

Follow-up to #298: withEffort now also works on codex, pi and opencode, and effort can be set in settings and orca config.

In code

  • Effort gets Off and Minimal.
  • withEffort is now a method on Agent. It needs an EffortSupport for the harness, so on gemini it still does not compile. (Separate per-harness extensions would clash after erasure once exported from orca.)
  • EffortSupport lists, per harness, the levels it accepts and how each is sent. A level the harness does not accept throws when the agent is built.
Harness Levels Sent as
claude Low to Max --effort
codex all -c model_reasoning_effort=...
pi all but Max --thinking
opencode all (model decides) variant on the message

In settings and orca config

Agent values are now harness[:model][@effort], e.g. codingAgent = claude:sonnet@high, orca config --coding-agent codex@low.

  • Only letters after the last @ are read as a level (off, minimal, low, medium, high, xhigh, max, lowercase), so a model id like Vertex's claude-sonnet-4@20250514 is kept as is.
  • An unknown level (@hgih), a trailing @, a level the harness does not accept, or any level on gemini is a settings error.
  • The run's agents: line, orca config and the shell summary show the level. The wizard has no effort step; it keeps an existing level when the harness stays the same, and asks again if a typed model ends in a level the harness rejects.

Notes

  • pi: --thinking wins over a model:level pattern, and pi lowers a level the model lacks to the nearest one it has (checked in pi's source).
  • opencode: not tested end to end, because no provider here works with the server API. What opencode does with a variant the model doesn't have is unknown.

@adamw adamw changed the title Support withEffort on codex, pi and opencode Support effort on codex, pi and opencode, and in settings Oct 21, 2026
adamw added 4 commits October 21, 2026 00:50
A typed model@level in the wizard now replaces an existing effort.
BackendTag.harnessName replaces AgentSpec.harnessNameFor, AgentSpec.ValueForm
holds the settings value form, parse is split into named steps, and docs
are corrected (cheap keeps effort when the model doesn't change).
@adamw
adamw merged commit 4598183 into master Oct 22, 2026
7 checks passed
@adamw
adamw deleted the feat/effort-other-harnesses branch October 22, 2026 04:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant