diff --git a/packages/opencode/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts index e401a067c716..625cd8ff30d4 100644 --- a/packages/opencode/src/provider/provider.ts +++ b/packages/opencode/src/provider/provider.ts @@ -815,6 +815,27 @@ export namespace Provider { }, }, }), + litellm: Effect.fnUntraced(function* (input: Info) { + const providerConfig = (yield* dep.config()).provider?.["litellm"] + const apiKey = Env.get("LITELLM_API_KEY") + const baseURL = providerConfig?.options?.baseURL ?? providerConfig?.api + + if (!baseURL) { + return { autoload: false } + } + + const options: Record = { baseURL } + if (apiKey) options.apiKey = apiKey + else if (providerConfig?.options?.apiKey) options.apiKey = providerConfig.options.apiKey + + return { + autoload: true, + options, + async getModel(sdk: any, modelID: string) { + return sdk.languageModel(modelID) + }, + } + }), } }