summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorTimo Clasen <[email protected]>2025-07-18 20:16:50 +0200
committerGitHub <[email protected]>2025-07-18 14:16:50 -0400
commit18abcab208251e98b029b850ab1012d51c29fe36 (patch)
treefe6ea149d1ed1634046cb3b4de9aeae78b4296fc
parent01e7dc2d02e931be8dda945d44971c178a1a6a15 (diff)
downloadopencode-18abcab208251e98b029b850ab1012d51c29fe36.tar.gz
opencode-18abcab208251e98b029b850ab1012d51c29fe36.zip
feat(config): make small model configurable (#1030)
-rw-r--r--packages/opencode/src/config/config.ts6
-rw-r--r--packages/opencode/src/provider/provider.ts7
2 files changed, 13 insertions, 0 deletions
diff --git a/packages/opencode/src/config/config.ts b/packages/opencode/src/config/config.ts
index b6c204387..781e47c79 100644
--- a/packages/opencode/src/config/config.ts
+++ b/packages/opencode/src/config/config.ts
@@ -149,6 +149,12 @@ export namespace Config {
autoupdate: z.boolean().optional().describe("Automatically update to the latest version"),
disabled_providers: z.array(z.string()).optional().describe("Disable providers that are loaded automatically"),
model: z.string().describe("Model to use in the format of provider/model, eg anthropic/claude-2").optional(),
+ small_model: z
+ .string()
+ .describe(
+ "Small model to use for tasks like summarization and title generation in the format of provider/model",
+ )
+ .optional(),
username: z
.string()
.optional()
diff --git a/packages/opencode/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts
index 7f10b7dbb..43e52ef45 100644
--- a/packages/opencode/src/provider/provider.ts
+++ b/packages/opencode/src/provider/provider.ts
@@ -416,6 +416,13 @@ export namespace Provider {
}
export async function getSmallModel(providerID: string) {
+ const cfg = await Config.get()
+
+ if (cfg.small_model) {
+ const parsed = parseModel(cfg.small_model)
+ return getModel(parsed.providerID, parsed.modelID)
+ }
+
const provider = await state().then((state) => state.providers[providerID])
if (!provider) return
const priority = ["3-5-haiku", "3.5-haiku", "gemini-2.5-flash"]