opencode icon indicating copy to clipboard operation
opencode copied to clipboard

[FEATURE]: Add `--variant` flag to root `opencode` command

Open ekweible opened this issue 1 month ago • 3 comments

Feature hasn't been suggested before.

  • [x] I have verified this feature I'm about to request hasn't been suggested before.

Describe the enhancement you want to request

The --variant flag was added to opencode run in #6805 but is missing from the root opencode command.

Current Behavior

# Works
opencode run --model anthropic/claude-sonnet-4-20250514 --variant max "hello"
# Doesn't work - variant flag not recognized
opencode --model anthropic/claude-sonnet-4-20250514 --variant max --prompt "hello"

Expected Behavior

Both commands should support --variant.

This matters most when --prompt is provided since the model responds immediately - users can't control reasoning effort for that initial response.

Relevant Files

File Current State
src/cli/cmd/run.ts:90-93 Has --variant option
src/cli/cmd/tui/thread.ts Missing --variant option
src/cli/cmd/tui/context/args.tsx Args interface lacks variant

Implementation Notes

The variant infrastructure already exists in the TUI. Changes needed:

  1. thread.ts: Add --variant option to yargs builder
  2. args.tsx: Add variant?: string to Args interface
  3. thread.ts: Pass variant through to tui() args
  4. local.tsx: Initialize variant from CLI arg (similar to how args.model is handled at line 142)

The variant management (model.variant.set(), model.variant.current(), etc.) is already implemented in local.tsx:310-347, so this is just a CLI argument threading task.

ekweible avatar Jan 08 '26 17:01 ekweible

This issue relates to #7138 which implements default variant configuration per agent. While this issue (#7354) focuses on adding the --variant CLI flag to the root command, #7138 adds per-agent default variants in the config. Both approaches are complementary:

  • #7138: Set default variant in config (e.g., build agent always uses high variant)
  • #7354: Override via CLI flag (e.g., opencode --variant max --prompt ...)

These work together to give users flexible variant control at both the configuration and CLI levels.

github-actions[bot] avatar Jan 08 '26 17:01 github-actions[bot]

This one seemed fairly straightforward and given that opencode run already supports it, I assumed it would be reasonable to have on the root command, too, so I opened a PR here: https://github.com/anomalyco/opencode/pull/7358

Feel free to close if that's not the case!

ekweible avatar Jan 08 '26 18:01 ekweible