summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2025-06-17 12:23:04 -0400
committerDax Raad <[email protected]>2025-06-17 12:23:04 -0400
commit674c9a5220c9fe2b48145f77ae654191a679cec5 (patch)
treea8bb05e33b354a2a1158f9fcbeea275ccfe8e689
parent54c86ed43a108c7e4941a68952d3e7ba3271c680 (diff)
downloadopencode-674c9a5220c9fe2b48145f77ae654191a679cec5.tar.gz
opencode-674c9a5220c9fe2b48145f77ae654191a679cec5.zip
support disabling providers from automatically being added
-rw-r--r--packages/opencode/src/global/config.ts1
-rw-r--r--packages/opencode/src/provider/provider.ts6
2 files changed, 7 insertions, 0 deletions
diff --git a/packages/opencode/src/global/config.ts b/packages/opencode/src/global/config.ts
index 05c306d61..1ec53d773 100644
--- a/packages/opencode/src/global/config.ts
+++ b/packages/opencode/src/global/config.ts
@@ -9,6 +9,7 @@ export namespace GlobalConfig {
autoshare: z.boolean().optional(),
provider: z.string().optional(),
model: z.string().optional(),
+ disabled_providers: z.array(z.string()).optional(),
})
export type Info = z.infer<typeof Info>
diff --git a/packages/opencode/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts
index 975af5e31..0d11ce0c9 100644
--- a/packages/opencode/src/provider/provider.ts
+++ b/packages/opencode/src/provider/provider.ts
@@ -169,8 +169,12 @@ export namespace Provider {
database[providerID] = parsed
}
+ const disabled = await GlobalConfig.get().then(
+ (cfg) => new Set(cfg.disabled_providers ?? []),
+ )
// load env
for (const [providerID, provider] of Object.entries(database)) {
+ if (disabled.has(providerID)) continue
if (provider.env.some((item) => process.env[item])) {
mergeProvider(providerID, {}, "env")
}
@@ -178,6 +182,7 @@ export namespace Provider {
// load apikeys
for (const [providerID, provider] of Object.entries(await Auth.all())) {
+ if (disabled.has(providerID)) continue
if (provider.type === "api") {
mergeProvider(providerID, { apiKey: provider.key }, "api")
}
@@ -185,6 +190,7 @@ export namespace Provider {
// load custom
for (const [providerID, fn] of Object.entries(CUSTOM_LOADERS)) {
+ if (disabled.has(providerID)) continue
const result = await fn(database[providerID])
if (result) mergeProvider(providerID, result, "custom")
}