diff --git a/packages/opencode/src/cli/cmd/tui/context/args.tsx b/packages/opencode/src/cli/cmd/tui/context/args.tsx index ffd43009a41..c8185bceb40 100644 --- a/packages/opencode/src/cli/cmd/tui/context/args.tsx +++ b/packages/opencode/src/cli/cmd/tui/context/args.tsx @@ -2,6 +2,7 @@ import { createSimpleContext } from "./helper" export interface Args { model?: string + variant?: string agent?: string prompt?: string continue?: boolean diff --git a/packages/opencode/src/cli/cmd/tui/context/local.tsx b/packages/opencode/src/cli/cmd/tui/context/local.tsx index 63f1d9743bf..da03a4d4f39 100644 --- a/packages/opencode/src/cli/cmd/tui/context/local.tsx +++ b/packages/opencode/src/cli/cmd/tui/context/local.tsx @@ -383,6 +383,16 @@ export const { use: useLocal, provider: LocalProvider } = createSimpleContext({ } }) + // Initialize variant from CLI args + const args = useArgs() + let variantInitialized = false + createEffect(() => { + if (variantInitialized) return + if (!model.ready || !args.variant || !model.current()) return + variantInitialized = true + model.variant.set(args.variant) + }) + const result = { model, agent, diff --git a/packages/opencode/src/cli/cmd/tui/thread.ts b/packages/opencode/src/cli/cmd/tui/thread.ts index 7b6f028fcd9..83da0891a32 100644 --- a/packages/opencode/src/cli/cmd/tui/thread.ts +++ b/packages/opencode/src/cli/cmd/tui/thread.ts @@ -43,6 +43,10 @@ export const TuiThreadCommand = cmd({ .option("agent", { type: "string", describe: "agent to use", + }) + .option("variant", { + type: "string", + describe: "model variant (provider-specific reasoning effort, e.g., high, max, minimal)", }), handler: async (args) => { // Resolve relative paths against PWD to preserve behavior when using --cwd flag @@ -95,6 +99,7 @@ export const TuiThreadCommand = cmd({ sessionID: args.session, agent: args.agent, model: args.model, + variant: args.variant, prompt, }, onExit: async () => {