diff options
| author | Timo Clasen <[email protected]> | 2025-07-18 20:16:50 +0200 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-07-18 14:16:50 -0400 |
| commit | 18abcab208251e98b029b850ab1012d51c29fe36 (patch) | |
| tree | fe6ea149d1ed1634046cb3b4de9aeae78b4296fc | |
| parent | 01e7dc2d02e931be8dda945d44971c178a1a6a15 (diff) | |
| download | opencode-18abcab208251e98b029b850ab1012d51c29fe36.tar.gz opencode-18abcab208251e98b029b850ab1012d51c29fe36.zip | |
feat(config): make small model configurable (#1030)
| -rw-r--r-- | packages/opencode/src/config/config.ts | 6 | ||||
| -rw-r--r-- | packages/opencode/src/provider/provider.ts | 7 |
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"] |
