summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAiden Cline <[email protected]>2025-12-15 14:55:59 -0600
committerAiden Cline <[email protected]>2025-12-15 14:55:59 -0600
commitca599ab8fcaf3075989d522762374f66024fc26e (patch)
tree13d85a161e993536f88f112378f989bae9a20ff5
parentc3b3b133b0b405a4cad700e57194620f653ee215 (diff)
downloadopencode-ca599ab8fcaf3075989d522762374f66024fc26e.tar.gz
opencode-ca599ab8fcaf3075989d522762374f66024fc26e.zip
tweak: add model flag support for agent create command
-rw-r--r--packages/opencode/src/agent/agent.ts4
-rw-r--r--packages/opencode/src/cli/cmd/agent.ts9
2 files changed, 10 insertions, 3 deletions
diff --git a/packages/opencode/src/agent/agent.ts b/packages/opencode/src/agent/agent.ts
index a2ff825d9..add120f91 100644
--- a/packages/opencode/src/agent/agent.ts
+++ b/packages/opencode/src/agent/agent.ts
@@ -256,9 +256,9 @@ export namespace Agent {
return state().then((x) => Object.values(x))
}
- export async function generate(input: { description: string }) {
+ export async function generate(input: { description: string; model?: { providerID: string; modelID: string } }) {
const cfg = await Config.get()
- const defaultModel = await Provider.defaultModel()
+ const defaultModel = input.model ?? (await Provider.defaultModel())
const model = await Provider.getModel(defaultModel.providerID, defaultModel.modelID)
const language = await Provider.getLanguage(model)
const system = SystemPrompt.header(defaultModel.providerID)
diff --git a/packages/opencode/src/cli/cmd/agent.ts b/packages/opencode/src/cli/cmd/agent.ts
index 2cbcfbfe9..60dd9cc75 100644
--- a/packages/opencode/src/cli/cmd/agent.ts
+++ b/packages/opencode/src/cli/cmd/agent.ts
@@ -3,6 +3,7 @@ import * as prompts from "@clack/prompts"
import { UI } from "../ui"
import { Global } from "../../global"
import { Agent } from "../../agent/agent"
+import { Provider } from "../../provider/provider"
import path from "path"
import fs from "fs/promises"
import matter from "gray-matter"
@@ -47,6 +48,11 @@ const AgentCreateCommand = cmd({
.option("tools", {
type: "string",
describe: `comma-separated list of tools to enable (default: all). Available: "${AVAILABLE_TOOLS.join(", ")}"`,
+ })
+ .option("model", {
+ type: "string",
+ alias: ["m"],
+ describe: "model to use in the format of provider/model",
}),
async handler(args) {
await Instance.provide({
@@ -114,7 +120,8 @@ const AgentCreateCommand = cmd({
// Generate agent
const spinner = prompts.spinner()
spinner.start("Generating agent configuration...")
- const generated = await Agent.generate({ description }).catch((error) => {
+ const model = args.model ? Provider.parseModel(args.model) : undefined
+ const generated = await Agent.generate({ description, model }).catch((error) => {
spinner.stop(`LLM failed to generate agent: ${error.message}`, 1)
if (isFullyNonInteractive) process.exit(1)
throw new UI.CancelledError()