diff --git a/src/config/claudeDesktopProviderPresets.ts b/src/config/claudeDesktopProviderPresets.ts index e34f14016..d3afde14b 100644 --- a/src/config/claudeDesktopProviderPresets.ts +++ b/src/config/claudeDesktopProviderPresets.ts @@ -637,6 +637,20 @@ export const claudeDesktopProviderPresets: ClaudeDesktopProviderPreset[] = [ partnerPromotionKey: "atlascloud", icon: "atlascloud", }, + { + name: "SudoCode", + websiteUrl: "https://sudocode.us", + apiKeyUrl: "https://sudocode.us", + category: "third_party", + baseUrl: "https://sudocode.us", + mode: "direct", + apiFormat: "anthropic", + modelRoutes: passthroughRoutes(), + endpointCandidates: ["https://sudocode.us", "https://sudocode.run"], + isPartner: true, + partnerPromotionKey: "sudocode", + icon: "sudocode", + }, { name: "ClaudeAPI", websiteUrl: "https://claudeapi.com", diff --git a/src/config/claudeProviderPresets.ts b/src/config/claudeProviderPresets.ts index a4521b422..9a24235ed 100644 --- a/src/config/claudeProviderPresets.ts +++ b/src/config/claudeProviderPresets.ts @@ -682,6 +682,23 @@ export const providerPresets: ProviderPreset[] = [ partnerPromotionKey: "atlascloud", icon: "atlascloud", }, + { + name: "SudoCode", + websiteUrl: "https://sudocode.us", + apiKeyUrl: "https://sudocode.us", + settingsConfig: { + env: { + ANTHROPIC_BASE_URL: "https://sudocode.us", + ANTHROPIC_AUTH_TOKEN: "", + API_TIMEOUT_MS: "300000", + }, + }, + endpointCandidates: ["https://sudocode.us", "https://sudocode.run"], + category: "third_party", + isPartner: true, + partnerPromotionKey: "sudocode", + icon: "sudocode", + }, { name: "ClaudeAPI", websiteUrl: "https://claudeapi.com", diff --git a/src/config/codexProviderPresets.ts b/src/config/codexProviderPresets.ts index 939acf573..f1fa0dfe3 100644 --- a/src/config/codexProviderPresets.ts +++ b/src/config/codexProviderPresets.ts @@ -901,6 +901,30 @@ requires_openai_auth = true`, partnerPromotionKey: "atlascloud", icon: "atlascloud", }, + { + name: "SudoCode", + websiteUrl: "https://sudocode.us", + apiKeyUrl: "https://sudocode.us", + category: "third_party", + auth: generateThirdPartyAuth(""), + config: `model_provider = "custom" +model = "gpt-5.5" +review_model = "gpt-5.5" +model_reasoning_effort = "high" +disable_response_storage = true +model_verbosity = "high" + +[model_providers.custom] +name = "sudocode" +base_url = "https://sudocode.us/v1" +wire_api = "responses" +requires_openai_auth = true`, + endpointCandidates: ["https://sudocode.us/v1", "https://sudocode.run/v1"], + apiFormat: "openai_responses", + isPartner: true, + partnerPromotionKey: "sudocode", + icon: "sudocode", + }, { name: "ClaudeCN", websiteUrl: "https://claudecn.top", diff --git a/src/config/geminiProviderPresets.ts b/src/config/geminiProviderPresets.ts index da699503d..8ace7922e 100644 --- a/src/config/geminiProviderPresets.ts +++ b/src/config/geminiProviderPresets.ts @@ -131,6 +131,26 @@ export const geminiProviderPresets: GeminiProviderPreset[] = [ endpointCandidates: ["https://apinebula.com"], icon: "apinebula", }, + { + name: "SudoCode", + websiteUrl: "https://sudocode.us", + apiKeyUrl: "https://sudocode.us", + settingsConfig: { + env: { + GOOGLE_GEMINI_BASE_URL: "https://sudocode.us", + GEMINI_API_KEY: "", + GEMINI_MODEL: "gemini-3.1-flash-lite-preview", + }, + }, + baseURL: "https://sudocode.us", + model: "gemini-3.1-flash-lite-preview", + description: "SudoCode", + category: "third_party", + isPartner: true, + partnerPromotionKey: "sudocode", + endpointCandidates: ["https://sudocode.us", "https://sudocode.run"], + icon: "sudocode", + }, { name: "Cubence", websiteUrl: "https://cubence.com", diff --git a/src/config/hermesProviderPresets.ts b/src/config/hermesProviderPresets.ts index e3fcf3fc5..639bda798 100644 --- a/src/config/hermesProviderPresets.ts +++ b/src/config/hermesProviderPresets.ts @@ -829,6 +829,30 @@ export const hermesProviderPresets: HermesProviderPreset[] = [ model: { default: "zai-org/glm-5.1", provider: "atlascloud" }, }, }, + { + name: "SudoCode", + websiteUrl: "https://sudocode.us", + apiKeyUrl: "https://sudocode.us", + settingsConfig: { + name: "sudocode", + base_url: "https://sudocode.us/v1", + api_key: "", + api_mode: "codex_responses", + models: [ + { + id: "gpt-5.5", + name: "GPT-5.5", + }, + ], + }, + category: "third_party", + isPartner: true, + partnerPromotionKey: "sudocode", + icon: "sudocode", + suggestedDefaults: { + model: { default: "gpt-5.5", provider: "sudocode" }, + }, + }, { name: "Cubence", websiteUrl: "https://cubence.com", diff --git a/src/config/openclawProviderPresets.ts b/src/config/openclawProviderPresets.ts index 921475f17..ba9c90771 100644 --- a/src/config/openclawProviderPresets.ts +++ b/src/config/openclawProviderPresets.ts @@ -1536,6 +1536,38 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [ }, }, }, + { + name: "SudoCode", + websiteUrl: "https://sudocode.us", + apiKeyUrl: "https://sudocode.us", + settingsConfig: { + baseUrl: "https://sudocode.us/v1", + apiKey: "", + api: "openai-responses", + models: [ + { + id: "gpt-5.5", + name: "GPT-5.5", + }, + ], + }, + category: "third_party", + isPartner: true, + partnerPromotionKey: "sudocode", + icon: "sudocode", + templateValues: { + apiKey: { + label: "API Key", + placeholder: "", + editorValue: "", + }, + }, + suggestedDefaults: { + model: { + primary: "sudocode/gpt-5.5", + }, + }, + }, { name: "Cubence", websiteUrl: "https://cubence.com", diff --git a/src/config/opencodeProviderPresets.ts b/src/config/opencodeProviderPresets.ts index a72738518..f068c7dfd 100644 --- a/src/config/opencodeProviderPresets.ts +++ b/src/config/opencodeProviderPresets.ts @@ -1292,6 +1292,34 @@ export const opencodeProviderPresets: OpenCodeProviderPreset[] = [ }, }, }, + { + name: "SudoCode", + websiteUrl: "https://sudocode.us", + apiKeyUrl: "https://sudocode.us", + settingsConfig: { + npm: "@ai-sdk/openai", + name: "SudoCode", + options: { + baseURL: "https://sudocode.us/v1", + apiKey: "", + setCacheKey: true, + }, + models: { + "gpt-5.5": { name: "GPT-5.5" }, + }, + }, + category: "third_party", + isPartner: true, + partnerPromotionKey: "sudocode", + icon: "sudocode", + templateValues: { + apiKey: { + label: "API Key", + placeholder: "", + editorValue: "", + }, + }, + }, { name: "Cubence", websiteUrl: "https://cubence.com", diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index 98225e327..bf82dcf5f 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -870,6 +870,7 @@ "apikeyfun": "APIKEY.FUN offers a special deal for CC Switch users. Register through the exclusive link to enjoy up to permanent 5% off top-ups.", "apinebula": "APINEBULA offers CC Switch users a special discount: register using the link and enter the \"ccswitch\" promo code during your first top-up to get 10% off.", "atlascloud": "Atlas Cloud is a full-modal AI inference platform that gives developers one API for video generation, image generation, and LLM access. Check out its new Coding Plan promotion for more budget-friendly API access.", + "sudocode": "SudoCode is a global AI model aggregation service. One API key works across multiple models, with presets for Claude Code, Codex, Gemini CLI, OpenClaw, and more.", "patewayai": "PatewayAI offers special benefits for CC Switch users. Register via this link to receive $3 credit.", "claudeapi": "ClaudeAPI offers special benefits for CC Switch users. Register via this link to claim test credits.", "claudecn": "ClaudeCN is an enterprise-grade AI gateway operated by a registered company, supporting enterprise procurement processes with corporate payments, contracts, and compliance guarantees.", diff --git a/src/i18n/locales/ja.json b/src/i18n/locales/ja.json index e75c2915a..a2dfe0cd8 100644 --- a/src/i18n/locales/ja.json +++ b/src/i18n/locales/ja.json @@ -870,6 +870,7 @@ "apikeyfun": "APIKEY.FUN は CC Switch ユーザー向けに特別優待を提供しています。専用リンクから登録すると、最大でチャージ永久 5% オフを受けられます。", "apinebula": "APINEBULA は CC Switch ユーザー向けに特別割引を提供しています。専用リンクから登録し、チャージ時にプロモコード「ccswitch」を入力すると、さらに 10% OFF の割引が適用されます。", "atlascloud": "Atlas Cloud は、1 つの API で動画・画像生成や LLM を利用できる全モーダル対応の AI 推論プラットフォームです。より低コストで API を利用できる新しい「コーディングプラン」プロモーションをご確認ください。", + "sudocode": "SudoCode は、世界水準の AI モデル集約サービスです。1 つの API Key で複数モデルを利用でき、Claude Code、Codex、Gemini CLI、OpenClaw などのツールに対応しています。", "patewayai": "PatewayAI は CC Switch ユーザーに特別な特典を提供しています。このリンクから登録すると $3 のクレジットがもらえます。", "claudeapi": "ClaudeAPI は CC Switch ユーザーに特別な特典を提供しています。このリンクから登録するとテストクレジットを受け取ることができます。", "claudecn": "ClaudeCN は登録企業が運営するエンタープライズグレードの AI ゲートウェイプラットフォームで、企業調達プロセスをサポートし、法人支払い、契約、コンプライアンス保証を提供します。", diff --git a/src/i18n/locales/zh-TW.json b/src/i18n/locales/zh-TW.json index 5ac9ba087..de3e20e2d 100644 --- a/src/i18n/locales/zh-TW.json +++ b/src/i18n/locales/zh-TW.json @@ -841,6 +841,7 @@ "apikeyfun": "APIKEY.FUN 為 CC Switch 的使用者提供了特別優惠,透過專屬連結註冊,可享受最高儲值永久 95 折優惠。", "apinebula": "APINEBULA 為 CC Switch 使用者提供特別優惠:使用專屬連結註冊並在儲值時填寫「ccswitch」優惠碼,可享 9 折優惠。", "atlascloud": "Atlas Cloud 是一個全模態 AI 推理平台,透過單一 API 為開發者提供影片生成、圖像生成及 LLM 接入。立即查看全新「編程計畫」優惠,取得更具性價比的 API 接入。", + "sudocode": "SudoCode 是全球一流 AI 模型聚合服務,一個 API Key 可通用多模型,並支援 Claude Code、Codex、Gemini CLI、OpenClaw 等工具接入。", "patewayai": "PatewayAI 為 CC Switch 的使用者提供了特別福利,透過此連結註冊可以獲得 3 美元額度。", "claudeapi": "ClaudeAPI 為 CC Switch 的使用者提供了特別福利,透過此連結註冊可以領取測試額度。", "claudecn": "ClaudeCN 是一家實體企業營運的企業級 AI 中繼平台,支援企業採購流程,可對公打款、簽約,服務合規有保障。", diff --git a/src/i18n/locales/zh.json b/src/i18n/locales/zh.json index 6552b8642..3757ce551 100644 --- a/src/i18n/locales/zh.json +++ b/src/i18n/locales/zh.json @@ -870,6 +870,7 @@ "apikeyfun": "APIKEY.FUN 为 CC Switch 的用户提供了特别优惠,通过专属链接注册,可享受最高充值永久 95 折优惠。", "apinebula": "APINEBULA 为 CC Switch 用户提供特别优惠:使用专属链接注册并在充值时填写 \"ccswitch\" 优惠码,可享九折优惠。", "atlascloud": "Atlas Cloud 是一个全模态 AI 推理平台,通过单一 API 为开发者提供视频生成、图像生成及 LLM 接入。立即查看全新“编程计划”优惠,获取更具性价比的 API 接入。", + "sudocode": "SudoCode 是全球一流 AI 模型聚合服务,一个 API Key 可通用多模型,并支持 Claude Code、Codex、Gemini CLI、OpenClaw 等工具接入。", "patewayai": "PatewayAI 为 CC Switch 的用户提供了特别福利,通过此链接注册可以获得3美元额度。", "claudeapi": "ClaudeAPI 为 CC Switch 的用户提供了特别福利,通过此链接注册可以领取测试额度。", "claudecn": "ClaudeCN 是一家实体企业运营的企业级AI中转平台,支持企业采购流程,可对公打款、签约,服务合规有保障。", diff --git a/src/icons/extracted/index.ts b/src/icons/extracted/index.ts index 7021fe99a..dd7143fb8 100644 --- a/src/icons/extracted/index.ts +++ b/src/icons/extracted/index.ts @@ -16,6 +16,7 @@ import _pipellm from "./pipellm.png"; import _relaxcode from "./relaxcode.png"; import _runapi from "./runapi.jpg"; import _shengsuanyun from "./shengsuanyun.svg?url"; +import _sudocode from "./sudocode.png"; export const icons: Record = { aicodemirror: `AICodeMirror`, @@ -105,6 +106,7 @@ export const iconUrls: Record = { relaxcode: _relaxcode, runapi: _runapi, shengsuanyun: _shengsuanyun, + sudocode: _sudocode, }; export const iconList = [ diff --git a/src/icons/extracted/metadata.ts b/src/icons/extracted/metadata.ts index 1220ccef3..df8ad7250 100644 --- a/src/icons/extracted/metadata.ts +++ b/src/icons/extracted/metadata.ts @@ -54,6 +54,22 @@ export const iconMetadata: Record = { ], defaultColor: "#111111", }, + sudocode: { + name: "sudocode", + displayName: "SudoCode", + category: "ai-provider", + keywords: [ + "sudocode", + "sudo code", + "gateway", + "relay", + "claude", + "codex", + "gemini", + "openclaw", + ], + defaultColor: "#111111", + }, alibaba: { name: "alibaba", displayName: "Alibaba", diff --git a/src/icons/extracted/sudocode.png b/src/icons/extracted/sudocode.png new file mode 100644 index 000000000..3e0b4d07e Binary files /dev/null and b/src/icons/extracted/sudocode.png differ