[FEATURE]: Add `--variant` flag to root `opencode` command
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:
-
thread.ts: Add--variantoption to yargs builder -
args.tsx: Addvariant?: stringtoArgsinterface -
thread.ts: Passvariantthrough totui()args -
local.tsx: Initialize variant from CLI arg (similar to howargs.modelis 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.
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.,
buildagent always useshighvariant) - #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.
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!