opencode icon indicating copy to clipboard operation
opencode copied to clipboard

[FEATURE]: Commands Model Variant Specification

Open koichincom opened this issue 2 weeks 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

I'm willing to implement this, but since it involves some design decisions, I wanted to open an issue first.

Summary

Add a variant field to the commands feature. Currently, command definitions in command/*.md or opencode.json(c) only allow selecting the model or agent, but not the model variant.

Motivation

While variants can be applied globally or per-agent, it is useful to bake specific reasoning efforts into commands. For example, a command designed for complex planning or code review might always want to use a high thinking variant of a lightweight model, even if the user's global preference is set to minimal. This ensures specific tasks have the reasoning budget they need without requiring the user to manually switch variants before running the command.

Proposed Priority

If implemented, I suggest the following priority for variant resolution:

  1. Explicit runtime selection (CLI --variant flag or TUI ctrl+t)
  2. Command definition variant (The new field)
  3. Agent default variant (as implemented in #7140)
  4. None (Model default)

koichincom avatar Jan 10 '26 22:01 koichincom

This feature request is related to several existing issues that address variant and model configuration:

  • #7138: Support default variant configuration per agent - Implements agent-level variant defaults, which is part of the variant resolution priority chain mentioned in this issue
  • #7354: Add --variant flag to root opencode command - Related to variant handling via CLI
  • #5082: Allow shell commands in the frontmatter - Related request for dynamic configuration in command definitions
  • #7099: Server API ignores agent's configured model when only agent parameter is passed - Related to model/agent configuration propagation
  • #7407: Allow skills and commands to define scoped permission overrides - Shows precedent for adding configuration fields to command frontmatter

You may want to cross-reference these issues, particularly #7138 which implements the agent-level variant configuration that would complement your proposed command-level variant specification.

github-actions[bot] avatar Jan 10 '26 22:01 github-actions[bot]

@koichincom Nakayamada-san, this is similar to what I was interested in with my issue #7138 / pr #7156 for variant support in agents - try taking a look and see if maybe commands can be extended similarly :P

CasualDeveloper avatar Jan 11 '26 15:01 CasualDeveloper

@koichincom Nakayamada-san, this is similar to what I was interested in with my issue #7138 / pr #7156 for variant support in agents - try taking a look and see if maybe commands can be extended similarly :P

@CasualDeveloper Thanks! I'll look into it and probably make a PR for the commands feature!

koichincom avatar Jan 11 '26 19:01 koichincom