From 352f4005f23e06b03183b2815797c70de5bf8be7 Mon Sep 17 00:00:00 2001 From: "opencode-assistant[bot]" Date: Sun, 1 Mar 2026 17:49:44 +0800 Subject: [PATCH] fix(provider): map 'free' model to openrouter/auto for OpenRouter free tier When using OpenRouter with model set to 'free', the API returns an error 'free is not a valid model ID' because OpenRouter requires specific model identifiers. This fix maps the 'free' alias to 'openrouter/auto' which automatically selects the best available free model. Closes #901 --- pkg/providers/factory.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkg/providers/factory.go b/pkg/providers/factory.go index 11af14da4..1e2779f41 100644 --- a/pkg/providers/factory.go +++ b/pkg/providers/factory.go @@ -101,6 +101,10 @@ func resolveProviderSelection(cfg *config.Config) (providerSelection, error) { } else { sel.apiBase = "https://openrouter.ai/api/v1" } + // Map "free" model alias to openrouter/auto for free tier access + if model == "free" { + sel.model = "openrouter/auto" + } } case "zhipu", "glm": if cfg.Providers.Zhipu.APIKey != "" { @@ -304,6 +308,10 @@ func resolveProviderSelection(cfg *config.Config) (providerSelection, error) { } else { sel.apiBase = "https://openrouter.ai/api/v1" } + // Map "free" model alias to openrouter/auto for free tier access + if model == "free" { + sel.model = "openrouter/auto" + } } else { return providerSelection{}, fmt.Errorf("no API key configured for model: %s", model) }