From 4a96ff9aea15dbc38a2097076426be6f0426a8de Mon Sep 17 00:00:00 2001 From: smakosh Date: Mon, 3 Aug 2026 21:03:28 +0200 Subject: [PATCH] feat(opencode): add llmgateway-providers provider Claude-Session: https://claude.ai/code/session_017pReWhniXJcDL9aiQHqoFQ --- packages/opencode/src/provider/provider.ts | 11 +++++++++++ packages/opencode/src/provider/transform.ts | 6 +++++- packages/web/src/content/docs/providers.mdx | 7 ++++++- 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/packages/opencode/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts index 85b7fd3978e8..5b63257f1a04 100644 --- a/packages/opencode/src/provider/provider.ts +++ b/packages/opencode/src/provider/provider.ts @@ -464,6 +464,17 @@ function custom(dep: CustomDep): Record { }, }, }), + "llmgateway-providers": () => + Effect.succeed({ + autoload: false, + options: { + headers: { + "HTTP-Referer": "https://opencode.ai/", + "X-Title": "opencode", + "X-Source": "opencode", + }, + }, + }), openrouter: () => Effect.succeed({ autoload: false, diff --git a/packages/opencode/src/provider/transform.ts b/packages/opencode/src/provider/transform.ts index 303ff11fdfd8..795536047ef3 100644 --- a/packages/opencode/src/provider/transform.ts +++ b/packages/opencode/src/provider/transform.ts @@ -1323,7 +1323,11 @@ export function smallOptions(model: Provider.Model) { const base = { store: false } return mergeDeep(base, small) } - if (model.providerID === "openrouter" || model.providerID === "llmgateway") { + if ( + model.providerID === "openrouter" || + model.providerID === "llmgateway" || + model.providerID === "llmgateway-providers" + ) { if (Object.keys(small).length === 0 && model.api.id.includes("google")) { return { reasoning: { enabled: false } } } diff --git a/packages/web/src/content/docs/providers.mdx b/packages/web/src/content/docs/providers.mdx index 7931d4e03f69..bfa228c0114c 100644 --- a/packages/web/src/content/docs/providers.mdx +++ b/packages/web/src/content/docs/providers.mdx @@ -1819,9 +1819,14 @@ OpenCode Zen is a list of tested and verified models provided by the OpenCode te ### LLM Gateway +LLM Gateway exposes two providers, both served by the same endpoint and API key: + +- **DevPass (LLM Gateway)** — `llmgateway`: aggregated model IDs such as `claude-sonnet-5`, auto-routed by the gateway across upstream providers. +- **LLM Gateway** — `llmgateway-providers`: provider-pinned model IDs such as `anthropic/claude-sonnet-5`, each entry served by that specific upstream provider with its own pricing and limits. + 1. Head over to the [LLM Gateway dashboard](https://llmgateway.io/dashboard), click **Create API Key**, and copy the key. -2. Run the `/connect` command and search for LLM Gateway. +2. Run the `/connect` command and search for LLM Gateway, then pick either provider. ```txt /connect