From fcc83207534e44c5f2c25f3ae57e3980fc39bb0e Mon Sep 17 00:00:00 2001 From: Anurag Saxena Date: Fri, 27 Mar 2026 00:17:23 -0400 Subject: [PATCH] feat: add OpenCode provider support (#387) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds OpenCode (https://github.com/opencode-ai/opencode) as a supported provider. OpenCode is an open-source terminal AI coding assistant with an OpenAI-compatible API running locally. Changes: - open-sse/config/providers.js: add opencode baseUrl (localhost:4096) with openai format (fully compatible, no custom headers needed) - open-sse/services/model.js: add 'oc' alias → opencode - src/shared/constants/providers.js: add opencode to subscription providers with alias 'oc', icon 'terminal', color #E87040 Usage after setup: use model prefix 'oc/' to route through a running OpenCode instance (e.g. oc/claude-sonnet-4-5). Closes #378 --- open-sse/config/providers.js | 5 +++++ open-sse/services/model.js | 1 + src/shared/constants/providers.js | 1 + 3 files changed, 7 insertions(+) diff --git a/open-sse/config/providers.js b/open-sse/config/providers.js index 172e0ad..1779bd2 100644 --- a/open-sse/config/providers.js +++ b/open-sse/config/providers.js @@ -208,6 +208,11 @@ export const PROVIDERS = { format: "openai", headers: {} }, + opencode: { + baseUrl: "http://localhost:4096/v1/chat/completions", + format: "openai", + headers: {} + }, cline: { baseUrl: "https://api.cline.bot/api/v1/chat/completions", format: "openai", diff --git a/open-sse/services/model.js b/open-sse/services/model.js index 119d726..d1a7157 100644 --- a/open-sse/services/model.js +++ b/open-sse/services/model.js @@ -12,6 +12,7 @@ const ALIAS_TO_PROVIDER_ID = { kc: "kilocode", kmc: "kimi-coding", cl: "cline", + oc: "opencode", // API Key providers openai: "openai", anthropic: "anthropic", diff --git a/src/shared/constants/providers.js b/src/shared/constants/providers.js index f25f21a..a6c92dd 100644 --- a/src/shared/constants/providers.js +++ b/src/shared/constants/providers.js @@ -18,6 +18,7 @@ export const OAUTH_PROVIDERS = { // "kimi-coding": { id: "kimi-coding", alias: "kmc", name: "Kimi Coding", icon: "psychology", color: "#1E40AF", textIcon: "KC" }, kilocode: { id: "kilocode", alias: "kc", name: "Kilo Code", icon: "code", color: "#FF6B35", textIcon: "KC" }, cline: { id: "cline", alias: "cl", name: "Cline", icon: "smart_toy", color: "#5B9BD5", textIcon: "CL" }, + opencode: { id: "opencode", alias: "oc", name: "OpenCode", icon: "terminal", color: "#E87040", textIcon: "OC" }, }; export const APIKEY_PROVIDERS = {