From 97119459dac968779dfedd5625951404cd2461cb Mon Sep 17 00:00:00 2001 From: Bright Zheng Date: Sat, 16 May 2026 12:31:00 -0400 Subject: [PATCH 1/2] fix(opencode): set KimiCLI/1.5 User-Agent for kimi-for-coding provider --- packages/opencode/src/provider/provider.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/packages/opencode/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts index 9aa1b6304c12..2228a8214e3b 100644 --- a/packages/opencode/src/provider/provider.ts +++ b/packages/opencode/src/provider/provider.ts @@ -149,6 +149,16 @@ function custom(dep: CustomDep): Record { }, }, }), + "kimi-for-coding": () => + Effect.succeed({ + autoload: false, + options: { + headers: { + // Kimi's /coding gateway 429s requests from non-whitelisted User-Agents + "User-Agent": "KimiCLI/1.5", + }, + }, + }), opencode: Effect.fnUntraced(function* (input: Info) { const env = yield* dep.env() const hasKey = iife(() => { From 5805b8d40ef956125adf9b1da047fe47a115fe53 Mon Sep 17 00:00:00 2001 From: Bright Zheng Date: Sat, 16 May 2026 13:37:35 -0400 Subject: [PATCH 2/2] fix(opencode): set KimiCLI/1.5 User-Agent for kimi-for-coding provider Set via model.headers so it spreads after the default opencode UA in llm.ts streamText headers, ensuring it takes precedence. --- packages/opencode/src/provider/provider.ts | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/packages/opencode/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts index 2228a8214e3b..14ea67dbf3cf 100644 --- a/packages/opencode/src/provider/provider.ts +++ b/packages/opencode/src/provider/provider.ts @@ -149,16 +149,6 @@ function custom(dep: CustomDep): Record { }, }, }), - "kimi-for-coding": () => - Effect.succeed({ - autoload: false, - options: { - headers: { - // Kimi's /coding gateway 429s requests from non-whitelisted User-Agents - "User-Agent": "KimiCLI/1.5", - }, - }, - }), opencode: Effect.fnUntraced(function* (input: Info) { const env = yield* dep.env() const hasKey = iife(() => { @@ -989,7 +979,9 @@ function fromModelsDevModel(provider: ModelsDev.Provider, model: ModelsDev.Model npm: model.provider?.npm ?? provider.npm ?? "@ai-sdk/openai-compatible", }, status: model.status ?? "active", - headers: {}, + // Kimi's /coding gateway 429s non-whitelisted User-Agents; model.headers + // is spread after the default opencode UA in llm.ts so it takes precedence + headers: provider.id === "kimi-for-coding" ? { "User-Agent": "KimiCLI/1.5" } : {}, options: {}, cost: cost(model.cost), limit: {