Files
CC-Switch/src/config/codexProviderPresets.ts
T
Jason 876e9f898d feat(presets): restore AICoding partner across seven app types
Bring back the AICoding (aicoding.sh) provider preset that was dropped
in 910ca3b4, covering claude, claudeDesktop, codex, gemini, hermes,
opencode and openclaw, along with the partnerPromotion.aicoding string
in zh/en/ja and the sponsor entry in the three READMEs.

Model ids follow the current baseline rather than the pre-removal
values: gpt-5.5 for Codex, gemini-3.5-flash for Gemini, and
claude-opus-4-8 / claude-sonnet-5 for the Anthropic-relay presets.
OpenClaw costs use standard list pricing, consistent with its peers.

The icon, the logo asset, the zh-TW string and the legacy id in
codex_history_migration.rs were never removed and are reused as-is.
2026-07-26 10:18:57 +08:00

1622 lines
49 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* Codex 预设供应商配置模板
*/
import { ProviderCategory } from "../types";
import type {
CodexApiFormat,
CodexCatalogModel,
CodexChatReasoning,
PromptCacheRoutingMode,
} from "../types";
import type { PresetTheme } from "./claudeProviderPresets";
export interface CodexProviderPreset {
name: string;
nameKey?: string; // i18n key for localized display name
websiteUrl: string;
// 第三方供应商可提供单独的获取 API Key 链接
apiKeyUrl?: string;
auth: Record<string, any>; // 将写入 ~/.codex/auth.json
config: string; // 将写入 ~/.codex/config.tomlTOML 字符串)
isOfficial?: boolean; // 标识是否为官方预设
isPartner?: boolean; // 标识是否为商业合作伙伴
primePartner?: boolean; // 置顶合作伙伴(顶级):徽章显示为心形
partnerPromotionKey?: string; // 合作伙伴促销信息的 i18n key
category?: ProviderCategory; // 新增:分类
isCustomTemplate?: boolean; // 标识是否为自定义模板
// 新增:请求地址候选列表(用于地址管理/测速)
endpointCandidates?: string[];
// 新增:视觉主题配置
theme?: PresetTheme;
// 图标配置
icon?: string; // 图标名称
iconColor?: string; // 图标颜色
// Codex API 格式
apiFormat?: CodexApiFormat;
// 托管账号预设:目前仅 xAI OAuth(Grok 订阅经本地代理注入 token 直连 api.x.ai
providerType?: "xai_oauth";
// OAuth 预设:隐藏 API Key 输入,保存前要求已登录托管账号
requiresOAuth?: boolean;
// Codex Chat 本地路由模式下的模型目录
modelCatalog?: CodexCatalogModel[];
// Codex Responses -> Chat Completions reasoning capability defaults
codexChatReasoning?: CodexChatReasoning;
// Session-based prompt-cache routing override for Chat Completions upstreams
promptCacheRouting?: PromptCacheRoutingMode;
}
/**
* 生成第三方供应商的 auth.json
*/
export function generateThirdPartyAuth(apiKey: string): Record<string, any> {
return {
OPENAI_API_KEY: apiKey || "",
};
}
/**
* 生成第三方供应商的 config.toml
*/
export function generateThirdPartyConfig(
providerName: string,
baseUrl: string,
modelName = "gpt-5.5",
): string {
const tomlString = (value: string) => JSON.stringify(value);
return `model_provider = "custom"
model = ${tomlString(modelName)}
model_reasoning_effort = "high"
disable_response_storage = true
[model_providers.custom]
name = ${tomlString(providerName)}
base_url = ${tomlString(baseUrl)}
wire_api = "responses"
requires_openai_auth = true`;
}
function modelCatalog(
models: Array<
| string
| {
model: string;
displayName?: string;
contextWindow?: number;
// Native Responses (direct) overrides for the generated
// model-catalogs.json. Omitted input modalities are inferred by the
// backend: confirmed text-only models stay text-only; everything else
// defaults to text+image.
supportsParallelToolCalls?: boolean;
inputModalities?: string[];
// Vendor's OFFICIAL base_instructions; omit to inherit the neutral
// template default. Required by Codex, so the backend always emits one.
baseInstructions?: string;
}
>,
): CodexCatalogModel[] {
return models.map((entry) =>
typeof entry === "string"
? { model: entry }
: {
model: entry.model,
displayName: entry.displayName,
contextWindow: entry.contextWindow,
supportsParallelToolCalls: entry.supportsParallelToolCalls,
inputModalities: entry.inputModalities,
baseInstructions: entry.baseInstructions,
},
);
}
export const codexProviderPresets: CodexProviderPreset[] = [
{
name: "OpenAI Official",
websiteUrl: "https://chatgpt.com/codex",
isOfficial: true,
category: "official",
auth: {},
config: ``,
theme: {
icon: "codex",
backgroundColor: "#1F2937", // gray-800
textColor: "#FFFFFF",
},
icon: "openai",
iconColor: "#00A67E",
},
// ===== 赞助商预设:文件顺序 = 应用内展示顺序,与 README 赞助商表对齐 =====
{
name: "Kimi",
primePartner: true,
websiteUrl: "https://platform.kimi.com?aff=cc-switch",
apiKeyUrl: "https://platform.kimi.com/console/api-keys?aff=cc-switch",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"kimi",
"https://api.moonshot.cn/v1",
"kimi-k2.7-code",
),
endpointCandidates: ["https://api.moonshot.cn/v1"],
apiFormat: "openai_chat",
modelCatalog: modelCatalog([
{
model: "kimi-k2.7-code",
displayName: "Kimi K2.7 Code",
contextWindow: 262144,
},
{
model: "kimi-k3",
displayName: "Kimi K3",
contextWindow: 1048576,
},
]),
codexChatReasoning: {
supportsThinking: true,
supportsEffort: false,
thinkingParam: "thinking",
effortParam: "none",
outputFormat: "reasoning_content",
},
category: "cn_official",
icon: "kimi",
iconColor: "#6366F1",
},
{
name: "Kimi For Coding",
primePartner: true,
websiteUrl: "https://www.kimi.com/code/?aff=cc-switch",
apiKeyUrl: "https://www.kimi.com/code/?aff=cc-switch",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"kimi_coding",
"https://api.kimi.com/coding/v1",
"kimi-for-coding",
),
endpointCandidates: ["https://api.kimi.com/coding/v1"],
apiFormat: "openai_chat",
promptCacheRouting: "enabled",
modelCatalog: modelCatalog([
{
model: "kimi-for-coding",
displayName: "Kimi For Coding",
contextWindow: 262144,
},
]),
codexChatReasoning: {
supportsThinking: true,
supportsEffort: false,
thinkingParam: "thinking",
effortParam: "none",
outputFormat: "reasoning_content",
},
category: "cn_official",
icon: "kimi",
iconColor: "#6366F1",
},
{
name: "PackyCode",
websiteUrl: "https://www.packyapi.com",
apiKeyUrl: "https://www.packyapi.com/register?aff=cc-switch",
category: "third_party",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"packycode",
"https://www.packyapi.com/v1",
"gpt-5.5",
),
endpointCandidates: [
"https://www.packyapi.com/v1",
"https://api-slb.packyapi.com/v1",
],
isPartner: true, // 合作伙伴
partnerPromotionKey: "packycode", // 促销信息 i18n key
icon: "packycode",
},
{
name: "ZetaAPI",
websiteUrl: "https://zetaapi.ai",
apiKeyUrl: "https://zetaapi.ai/go/u117",
category: "aggregator",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"zetaapi",
"https://api.zetaapi.ai/v1",
"gpt-5.5",
),
endpointCandidates: ["https://api.zetaapi.ai/v1"],
isPartner: true,
partnerPromotionKey: "zetaapi",
icon: "zetaapi",
},
{
name: "APINebula",
websiteUrl: "https://apinebula.com",
apiKeyUrl: "https://apinebula.com/VjM74M",
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_providers.custom]
name = "APINebula"
base_url = "https://apinebula.com/v1"
wire_api = "responses"
requires_openai_auth = true`,
endpointCandidates: ["https://apinebula.com/v1"],
apiFormat: "openai_responses",
isPartner: true,
partnerPromotionKey: "apinebula",
icon: "apinebula",
},
{
name: "AICodeMirror",
websiteUrl: "https://www.aicodemirror.com",
apiKeyUrl: "https://www.aicodemirror.com/register?invitecode=9915W3",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"aicodemirror",
"https://api.aicodemirror.com/api/codex/backend-api/codex",
"gpt-5.5",
),
endpointCandidates: [
"https://api.aicodemirror.com/api/codex/backend-api/codex",
"https://api.claudecode.net.cn/api/codex/backend-api/codex",
],
isPartner: true,
partnerPromotionKey: "aicodemirror",
icon: "aicodemirror",
iconColor: "#000000",
},
{
name: "PatewayAI",
websiteUrl: "https://pateway.ai",
apiKeyUrl: "https://pateway.ai/?ch=etzpm8&aff=WB6M6F67#/",
category: "third_party",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"patewayai",
"https://api.pateway.ai/v1",
"gpt-5.5",
),
endpointCandidates: ["https://api.pateway.ai/v1"],
isPartner: true,
partnerPromotionKey: "patewayai",
icon: "pateway",
},
{
name: "FennoAI",
websiteUrl: "https://api.fenno.ai",
apiKeyUrl:
"https://api.fenno.ai/register?redirect=/purchase?tab=subscription%26group=16&aff=P9MR3D3PLCNL",
category: "aggregator",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"fenno",
"https://api.fenno.ai",
"gpt-5.5",
),
endpointCandidates: ["https://api.fenno.ai"],
isPartner: true,
partnerPromotionKey: "fenno",
icon: "fenno",
},
{
name: "RunAPI",
websiteUrl: "https://runapi.co",
apiKeyUrl: "https://runapi.co/register?aff=iOKB",
category: "aggregator",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"runapi",
"https://runapi.co/v1",
"gpt-5.5",
),
isPartner: true,
partnerPromotionKey: "runapi",
icon: "runapi",
},
{
name: "Unity2.ai",
websiteUrl: "https://unity2.ai",
apiKeyUrl: "https://unity2.ai/register?source=ccs",
category: "aggregator",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"unity2",
"https://api.unity2.ai",
"gpt-5.5",
),
endpointCandidates: ["https://api.unity2.ai"],
isPartner: true,
partnerPromotionKey: "unity2",
icon: "unity2",
},
{
name: "AICoding",
websiteUrl: "https://aicoding.sh",
apiKeyUrl: "https://aicoding.sh/i/CCSWITCH",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"aicoding",
"https://api.aicoding.sh",
"gpt-5.5",
),
endpointCandidates: ["https://api.aicoding.sh"],
isPartner: true,
partnerPromotionKey: "aicoding",
icon: "aicoding",
iconColor: "#000000",
},
{
name: "AIGoCode",
websiteUrl: "https://aigocode.com",
apiKeyUrl: "https://aigocode.com/invite/CC-SWITCH",
category: "third_party",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"aigocode",
"https://api.aigocode.com",
"gpt-5.5",
),
endpointCandidates: ["https://api.aigocode.com"],
isPartner: true, // 合作伙伴
partnerPromotionKey: "aigocode", // 促销信息 i18n key
icon: "aigocode",
iconColor: "#5B7FFF",
},
{
name: "Shengsuanyun",
nameKey: "providerForm.presets.shengsuanyun",
websiteUrl: "https://www.shengsuanyun.com/?from=CH_4HHXMRYF",
apiKeyUrl: "https://www.shengsuanyun.com/?from=CH_4HHXMRYF",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"shengsuanyun",
"https://router.shengsuanyun.com/api/v1",
"openai/gpt-5.5",
),
category: "aggregator",
isPartner: true,
partnerPromotionKey: "shengsuanyun",
icon: "shengsuanyun",
},
{
name: "SubRouter",
websiteUrl: "https://subrouter.ai",
apiKeyUrl: "https://subrouter.ai/register?aff=l3ri",
category: "aggregator",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"subrouter",
"https://subrouter.ai/v1",
"gpt-5.5",
),
endpointCandidates: ["https://subrouter.ai/v1"],
isPartner: true,
partnerPromotionKey: "subrouter",
icon: "subrouter",
},
{
name: "APIKEY.FUN",
websiteUrl: "https://apikey.fun",
apiKeyUrl: "https://apikey.fun/register?aff=CCSwitch",
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_providers.custom]
name = "APIKEY.FUN"
base_url = "https://api.apikey.fun/v1"
wire_api = "responses"
requires_openai_auth = true`,
endpointCandidates: [
"https://api.apikey.fun/v1",
"https://slb.apikey.fun/v1",
],
apiFormat: "openai_responses",
isPartner: true,
partnerPromotionKey: "apikeyfun",
icon: "apikeyfun",
},
{
name: "Code0",
websiteUrl: "https://code0.ai",
apiKeyUrl: "https://code0.ai/agent/register/B2XHxGjGmRvqgznY",
category: "aggregator",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig("code0", "https://code0.ai/v1", "gpt-5.5"),
endpointCandidates: ["https://code0.ai/v1"],
isPartner: true,
partnerPromotionKey: "code0",
icon: "code0",
},
{
name: "TeamoRouter",
websiteUrl: "https://teamorouter.com",
apiKeyUrl:
"https://teamorouter.com/?utm_source=cc_switch&utm_medium=referral&utm_campaign=ai_directory",
category: "aggregator",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"teamorouter",
"https://api.teamorouter.com/v1",
"gpt-5.5",
),
endpointCandidates: ["https://api.teamorouter.com/v1"],
isPartner: true,
partnerPromotionKey: "teamorouter",
icon: "teamorouter",
},
{
name: "ClaudeCN",
websiteUrl: "https://claudecn.top",
apiKeyUrl: "https://claudecn.ai/register?aff=HEL9",
category: "third_party",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"claudecn",
"https://claudecn.top/v1",
"gpt-5.5",
),
isPartner: true,
partnerPromotionKey: "claudecn",
icon: "claudecn",
},
{
name: "火山Agentplan",
websiteUrl:
"https://www.volcengine.com/activity/codingplan?ac=MMAP8JTTCAQ2&rc=6J6FV5N2&utm_campaign=hw&utm_content=ccswitch&utm_medium=devrel_tool_web&utm_source=OWO&utm_term=ccswitch",
apiKeyUrl:
"https://www.volcengine.com/activity/codingplan?ac=MMAP8JTTCAQ2&rc=6J6FV5N2&utm_campaign=hw&utm_content=ccswitch&utm_medium=devrel_tool_web&utm_source=OWO&utm_term=ccswitch",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"ark_agentplan",
"https://ark.cn-beijing.volces.com/api/coding/v3",
"ark-code-latest",
),
endpointCandidates: ["https://ark.cn-beijing.volces.com/api/coding/v3"],
apiFormat: "openai_chat",
modelCatalog: modelCatalog([
{
model: "ark-code-latest",
displayName: "Ark Code Latest",
contextWindow: 256000,
},
]),
category: "cn_official",
isPartner: true,
partnerPromotionKey: "volcengine_agentplan",
icon: "huoshan",
iconColor: "#3370FF",
},
{
name: "BytePlus",
websiteUrl:
"https://www.byteplus.com/en/product/modelark?utm_campaign=hw&utm_content=ccswitch&utm_medium=devrel_tool_web&utm_source=OWO&utm_term=ccswitch",
apiKeyUrl:
"https://www.byteplus.com/en/product/modelark?utm_campaign=hw&utm_content=ccswitch&utm_medium=devrel_tool_web&utm_source=OWO&utm_term=ccswitch",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"byteplus",
"https://ark.ap-southeast.bytepluses.com/api/coding/v3",
"ark-code-latest",
),
endpointCandidates: [
"https://ark.ap-southeast.bytepluses.com/api/coding/v3",
],
apiFormat: "openai_chat",
modelCatalog: modelCatalog([
{
model: "ark-code-latest",
displayName: "Ark Code Latest",
contextWindow: 256000,
},
]),
category: "cn_official",
isPartner: true,
partnerPromotionKey: "byteplus",
icon: "byteplus",
iconColor: "#3370FF",
},
{
name: "DouBaoSeed",
websiteUrl:
"https://console.volcengine.com/ark/region:ark+cn-beijing/apiKey?apikey=%7B%7D&utm_campaign=hw&utm_content=ccswitch&utm_medium=devrel_tool_web&utm_source=OWO&utm_term=ccswitch",
apiKeyUrl:
"https://console.volcengine.com/ark/region:ark+cn-beijing/apiKey?apikey=%7B%7D&utm_campaign=hw&utm_content=ccswitch&utm_medium=devrel_tool_web&utm_source=OWO&utm_term=ccswitch",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"doubaoseed",
"https://ark.cn-beijing.volces.com/api/v3",
"doubao-seed-2-1-pro-260628",
),
endpointCandidates: ["https://ark.cn-beijing.volces.com/api/v3"],
// 火山方舟主数据面 /api/v3 原生支持 Responses API/api/v3/responses),无需路由接管转换
apiFormat: "openai_responses",
// 无官方 catalog:合成 MiMo 式(shell_command 编辑、不发 freeform apply_patch),
// 让 Codex 直连显示模型并避免 custom 工具被网关拒绝
modelCatalog: modelCatalog([
{
model: "doubao-seed-2-1-pro-260628",
displayName: "Doubao Seed 2.1 Pro",
contextWindow: 262144,
},
]),
category: "cn_official",
isPartner: true,
partnerPromotionKey: "doubaoseed",
icon: "doubao",
iconColor: "#3370FF",
},
{
name: "SiliconFlow",
websiteUrl: "https://siliconflow.cn",
apiKeyUrl: "https://cloud.siliconflow.cn/i/YflgU2Ve",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"siliconflow",
"https://api.siliconflow.cn/v1",
"Pro/MiniMaxAI/MiniMax-M2.7",
),
endpointCandidates: ["https://api.siliconflow.cn/v1"],
apiFormat: "openai_chat",
modelCatalog: modelCatalog([
{
model: "Pro/MiniMaxAI/MiniMax-M2.7",
displayName: "Pro / MiniMax M2.7",
contextWindow: 200000,
},
]),
category: "aggregator",
isPartner: true,
partnerPromotionKey: "siliconflow",
icon: "siliconflow",
iconColor: "#6E29F6",
},
{
name: "SiliconFlow en",
websiteUrl: "https://siliconflow.com",
apiKeyUrl: "https://cloud.siliconflow.cn/i/YflgU2Ve",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"siliconflow_en",
"https://api.siliconflow.com/v1",
"MiniMaxAI/MiniMax-M2.7",
),
endpointCandidates: ["https://api.siliconflow.com/v1"],
apiFormat: "openai_chat",
modelCatalog: modelCatalog([
{
model: "MiniMaxAI/MiniMax-M2.7",
displayName: "MiniMax M2.7",
contextWindow: 200000,
},
]),
category: "aggregator",
isPartner: true,
partnerPromotionKey: "siliconflow",
icon: "siliconflow",
iconColor: "#000000",
},
{
name: "NekoCode",
websiteUrl: "https://nekocode.ai",
apiKeyUrl: "https://nekocode.ai?aff=CCSWITCH",
category: "aggregator",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"nekocode",
"https://nekocode.ai/v1",
"gpt-5.5",
),
endpointCandidates: ["https://nekocode.ai/v1"],
isPartner: true,
partnerPromotionKey: "nekocode",
icon: "nekocode",
},
{
name: "AtlasCloud",
websiteUrl: "https://www.atlascloud.ai/console/coding-plan",
apiKeyUrl: "https://www.atlascloud.ai/console/coding-plan",
category: "aggregator",
auth: generateThirdPartyAuth(""),
config: `model_provider = "custom"
model = "zai-org/glm-5.1"
disable_response_storage = true
[model_providers.custom]
name = "AtlasCloud"
base_url = "https://api.atlascloud.ai/v1"
wire_api = "responses"
requires_openai_auth = true`,
endpointCandidates: ["https://api.atlascloud.ai/v1"],
apiFormat: "openai_chat",
modelCatalog: modelCatalog([
{
model: "zai-org/glm-5.1",
displayName: "GLM 5.1",
contextWindow: 200000,
},
]),
isPartner: true,
partnerPromotionKey: "atlascloud",
icon: "atlascloud",
},
{
name: "Compshare",
nameKey: "providerForm.presets.ucloud",
websiteUrl: "https://www.compshare.cn",
apiKeyUrl:
"https://www.compshare.cn/coding-plan?ytag=GPU_YY_YX_git_cc-switch",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"compshare",
"https://api.modelverse.cn/v1",
"gpt-5.5",
),
endpointCandidates: ["https://api.modelverse.cn/v1"],
category: "aggregator",
isPartner: true, // 合作伙伴
partnerPromotionKey: "ucloud", // 促销信息 i18n key
icon: "ucloud",
iconColor: "#000000",
},
{
name: "Compshare Coding Plan",
nameKey: "providerForm.presets.ucloudCoding",
websiteUrl: "https://www.compshare.cn",
apiKeyUrl:
"https://www.compshare.cn/coding-plan?ytag=GPU_YY_YX_git_cc-switch",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"compshare_coding",
"https://cp.compshare.cn/v1",
"gpt-5.5",
),
endpointCandidates: ["https://cp.compshare.cn/v1"],
category: "aggregator",
isPartner: true, // 合作伙伴
partnerPromotionKey: "ucloud", // 促销信息 i18n key(复用)
icon: "ucloud",
iconColor: "#000000",
},
{
name: "CCSub",
websiteUrl: "https://www.ccsub.net",
apiKeyUrl: "https://www.ccsub.net/register?ref=Y6Z8DXEA",
category: "aggregator",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"ccsub",
"https://www.ccsub.net/v1",
"gpt-5.5",
),
endpointCandidates: ["https://www.ccsub.net/v1"],
isPartner: true,
partnerPromotionKey: "ccsub",
icon: "ccsub",
},
{
name: "SSSAiCode",
websiteUrl: "https://sssaicodeapi.com",
apiKeyUrl: "https://sssaicodeapi.com/register?ref=DCP0SM",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"sssaicode",
"https://node-hk.sssaicodeapi.com/api/v1",
"gpt-5.5",
),
endpointCandidates: [
"https://node-hk.sssaicodeapi.com/api/v1",
"https://node-hk.sssaiapi.com/api/v1",
"https://node-cf.sssaicodeapi.com/api/v1",
],
category: "third_party",
isPartner: true, // 合作伙伴
partnerPromotionKey: "sssaicode", // 促销信息 i18n key
icon: "sssaicode",
iconColor: "#000000",
},
{
name: "Micu",
websiteUrl: "https://www.micuapi.ai",
apiKeyUrl: "https://www.micuapi.ai/register?aff=aOYQ",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"micu",
"https://www.micuapi.ai/v1",
"gpt-5.5",
),
endpointCandidates: ["https://www.micuapi.ai/v1"],
category: "third_party",
isPartner: true, // 合作伙伴
partnerPromotionKey: "micu", // 促销信息 i18n key
icon: "micu",
iconColor: "#000000",
},
{
name: "RightCode",
websiteUrl: "https://www.right.codes",
apiKeyUrl: "https://www.right.codes/register?aff=CCSWITCH",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"rightcode",
"https://right.codes/codex/v1",
"gpt-5.5",
),
category: "third_party",
isPartner: true,
partnerPromotionKey: "rightcode",
icon: "rc",
iconColor: "#E96B2C",
},
{
name: "ETok.ai",
websiteUrl: "https://etok.ai",
apiKeyUrl: "https://etok.ai",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"etok",
"https://api.etok.ai/v1",
"gpt-5.5",
),
endpointCandidates: ["https://api.etok.ai/v1"],
category: "third_party",
isPartner: true, // 合作伙伴
partnerPromotionKey: "etok", // 促销信息 i18n key
icon: "etok",
iconColor: "#000000",
},
{
name: "Cubence",
websiteUrl: "https://cubence.com",
apiKeyUrl: "https://cubence.com/signup?code=CCSWITCH&source=ccs",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"cubence",
"https://api.cubence.com/v1",
"gpt-5.5",
),
endpointCandidates: [
"https://api.cubence.com/v1",
"https://api-cf.cubence.com/v1",
"https://api-dmit.cubence.com/v1",
"https://api-bwg.cubence.com/v1",
],
category: "third_party",
isPartner: true, // 合作伙伴
partnerPromotionKey: "cubence", // 促销信息 i18n key
icon: "cubence",
iconColor: "#000000",
},
{
name: "CrazyRouter",
websiteUrl: "https://www.crazyrouter.com",
apiKeyUrl: "https://www.crazyrouter.com/register?aff=OZcm&ref=cc-switch",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"crazyrouter",
"https://cn.crazyrouter.com/v1",
"gpt-5.5",
),
endpointCandidates: ["https://cn.crazyrouter.com/v1"],
isPartner: true,
partnerPromotionKey: "crazyrouter",
icon: "crazyrouter",
iconColor: "#000000",
},
{
name: "DMXAPI",
websiteUrl: "https://www.dmxapi.cn",
category: "aggregator",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"dmxapi",
"https://www.dmxapi.cn/v1",
"gpt-5.5",
),
endpointCandidates: ["https://www.dmxapi.cn/v1"],
isPartner: true, // 合作伙伴
partnerPromotionKey: "dmxapi", // 促销信息 i18n key
},
{
name: "Qiniu",
nameKey: "providerForm.presets.qiniu",
websiteUrl: "https://s.qiniu.com/nMvAvy",
apiKeyUrl: "https://s.qiniu.com/nMvAvy",
category: "aggregator",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"qiniu",
"https://api.qnaigc.com/bypass/openai/v1",
"gpt-5.5",
),
endpointCandidates: [
"https://api.qnaigc.com/bypass/openai/v1",
"https://api.modelink.ai/bypass/openai/v1",
],
isPartner: true,
partnerPromotionKey: "qiniu",
icon: "qiniu",
},
{
name: "SudoCode.chat",
websiteUrl: "https://sudocode.chat",
apiKeyUrl:
"https://sudocode.chat/register?utm_source=ccswitch&utm_medium=partner",
category: "third_party",
auth: generateThirdPartyAuth(""),
config: `model_provider = "custom"
model = "gpt-5.6-sol"
review_model = "gpt-5.6-sol"
model_reasoning_effort = "high"
disable_response_storage = true
[model_providers.custom]
name = "SudoCode"
base_url = "https://api.sudocode.chat/v1"
wire_api = "responses"
requires_openai_auth = true`,
endpointCandidates: ["https://api.sudocode.chat/v1"],
apiFormat: "openai_responses",
isPartner: true,
partnerPromotionKey: "sudocode",
icon: "sudocode",
},
{
name: "SudoCode.us",
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,
icon: "sudocode-us",
},
// ===== 非赞助商预设:应用内展示按显示名排序,此处文件顺序不影响展示 =====
{
name: "Amux",
websiteUrl: "https://amux.ai",
apiKeyUrl: "https://amux.ai",
category: "aggregator",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"amux",
"https://api.amux.ai/v1",
"gpt-5.5",
),
endpointCandidates: ["https://api.amux.ai/v1"],
icon: "amux",
},
{
name: "Azure OpenAI",
websiteUrl:
"https://learn.microsoft.com/en-us/azure/ai-foundry/openai/how-to/codex",
category: "third_party",
isOfficial: true,
auth: generateThirdPartyAuth(""),
config: `model_provider = "custom"
model = "gpt-5.5"
model_reasoning_effort = "high"
disable_response_storage = true
[model_providers.custom]
name = "Azure OpenAI"
base_url = "https://YOUR_RESOURCE_NAME.openai.azure.com/openai"
env_key = "OPENAI_API_KEY"
query_params = { "api-version" = "2025-04-01-preview" }
wire_api = "responses"
requires_openai_auth = true`,
endpointCandidates: ["https://YOUR_RESOURCE_NAME.openai.azure.com/openai"],
theme: {
icon: "codex",
backgroundColor: "#0078D4",
textColor: "#FFFFFF",
},
icon: "azure",
iconColor: "#0078D4",
},
{
name: "DeepSeek",
websiteUrl: "https://platform.deepseek.com",
apiKeyUrl: "https://platform.deepseek.com/api_keys",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"deepseek",
"https://api.deepseek.com",
"deepseek-v4-flash",
),
endpointCandidates: ["https://api.deepseek.com"],
apiFormat: "openai_chat",
modelCatalog: modelCatalog([
{
model: "deepseek-v4-flash",
displayName: "DeepSeek V4 Flash",
contextWindow: 1000000,
},
{
model: "deepseek-v4-pro",
displayName: "DeepSeek V4 Pro",
contextWindow: 1000000,
},
]),
codexChatReasoning: {
supportsThinking: true,
supportsEffort: true,
thinkingParam: "thinking",
effortParam: "reasoning_effort",
effortValueMode: "deepseek",
outputFormat: "reasoning_content",
},
category: "cn_official",
icon: "deepseek",
iconColor: "#1E88E5",
},
{
name: "Zhipu GLM",
websiteUrl: "https://open.bigmodel.cn",
apiKeyUrl: "https://www.bigmodel.cn/claude-code?ic=RRVJPB5SII",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"zhipu_glm",
"https://open.bigmodel.cn/api/coding/paas/v4",
"glm-5.2",
),
endpointCandidates: ["https://open.bigmodel.cn/api/coding/paas/v4"],
apiFormat: "openai_chat",
modelCatalog: modelCatalog([
{ model: "glm-5.2", displayName: "GLM-5.2", contextWindow: 200000 },
]),
codexChatReasoning: {
supportsThinking: true,
supportsEffort: false,
thinkingParam: "thinking",
effortParam: "none",
outputFormat: "reasoning_content",
},
category: "cn_official",
icon: "zhipu",
iconColor: "#0F62FE",
},
{
name: "Zhipu GLM en",
websiteUrl: "https://z.ai",
apiKeyUrl: "https://z.ai/subscribe?ic=8JVLJQFSKB",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"zhipu_glm_en",
"https://api.z.ai/api/coding/paas/v4",
"glm-5.2",
),
endpointCandidates: ["https://api.z.ai/api/coding/paas/v4"],
apiFormat: "openai_chat",
modelCatalog: modelCatalog([
{ model: "glm-5.2", displayName: "GLM-5.2", contextWindow: 200000 },
]),
codexChatReasoning: {
supportsThinking: true,
supportsEffort: false,
thinkingParam: "thinking",
effortParam: "none",
outputFormat: "reasoning_content",
},
category: "cn_official",
icon: "zhipu",
iconColor: "#0F62FE",
},
{
name: "Baidu Qianfan Coding Plan",
websiteUrl: "https://cloud.baidu.com/product/qianfan_modelbuilder",
apiKeyUrl:
"https://console.bce.baidu.com/qianfan/ais/console/applicationConsole/application",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"qianfan_coding",
"https://qianfan.baidubce.com/v2/coding",
"qianfan-code-latest",
),
endpointCandidates: ["https://qianfan.baidubce.com/v2/coding"],
apiFormat: "openai_chat",
modelCatalog: modelCatalog([
{
model: "qianfan-code-latest",
displayName: "Qianfan Code Latest",
contextWindow: 131072,
},
]),
category: "cn_official",
icon: "baidu",
iconColor: "#2932E1",
},
{
name: "Bailian",
websiteUrl: "https://bailian.console.aliyun.com",
apiKeyUrl: "https://bailian.console.aliyun.com/#/api-key",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"bailian",
"https://dashscope.aliyuncs.com/compatible-mode/v1",
"qwen3-coder-plus",
),
endpointCandidates: ["https://dashscope.aliyuncs.com/compatible-mode/v1"],
// 阿里百炼 DashScope 原生支持 OpenAI Responses API/compatible-mode/v1/responses,同一 base_url),无需路由接管转换
apiFormat: "openai_responses",
// 无官方 catalog:合成 MiMo 式(shell_command 编辑、不发 freeform apply_patch
modelCatalog: modelCatalog([
{
model: "qwen3-coder-plus",
displayName: "Qwen3 Coder Plus",
contextWindow: 1048576,
},
]),
category: "cn_official",
icon: "bailian",
iconColor: "#624AFF",
},
{
name: "StepFun",
websiteUrl: "https://platform.stepfun.com/step-plan",
apiKeyUrl: "https://platform.stepfun.com/interface-key",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"stepfun",
"https://api.stepfun.com/step_plan/v1",
"step-3.7-flash",
),
endpointCandidates: ["https://api.stepfun.com/step_plan/v1"],
apiFormat: "openai_chat",
modelCatalog: modelCatalog([
{
model: "step-3.7-flash",
displayName: "Step 3.7 Flash",
contextWindow: 262144,
},
{
model: "step-3.5-flash-2603",
displayName: "Step 3.5 Flash 2603",
contextWindow: 262144,
},
{
model: "step-3.5-flash",
displayName: "Step 3.5 Flash",
contextWindow: 262144,
},
]),
category: "cn_official",
icon: "stepfun",
iconColor: "#16D6D2",
},
{
name: "StepFun en",
websiteUrl: "https://platform.stepfun.ai/step-plan",
apiKeyUrl: "https://platform.stepfun.ai/interface-key",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"stepfun_en",
"https://api.stepfun.ai/step_plan/v1",
"step-3.7-flash",
),
endpointCandidates: ["https://api.stepfun.ai/step_plan/v1"],
apiFormat: "openai_chat",
modelCatalog: modelCatalog([
{
model: "step-3.7-flash",
displayName: "Step 3.7 Flash",
contextWindow: 262144,
},
{
model: "step-3.5-flash-2603",
displayName: "Step 3.5 Flash 2603",
contextWindow: 262144,
},
{
model: "step-3.5-flash",
displayName: "Step 3.5 Flash",
contextWindow: 262144,
},
]),
category: "cn_official",
icon: "stepfun",
iconColor: "#16D6D2",
},
{
name: "ModelScope",
websiteUrl: "https://modelscope.cn",
apiKeyUrl: "https://modelscope.cn/my/myaccesstoken",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"modelscope",
"https://api-inference.modelscope.cn/v1",
"ZhipuAI/GLM-5.1",
),
endpointCandidates: ["https://api-inference.modelscope.cn/v1"],
apiFormat: "openai_chat",
modelCatalog: modelCatalog([
{
model: "ZhipuAI/GLM-5.1",
displayName: "ZhipuAI / GLM-5.1",
contextWindow: 200000,
},
]),
codexChatReasoning: {
supportsThinking: true,
supportsEffort: false,
thinkingParam: "thinking",
effortParam: "none",
outputFormat: "reasoning_content",
},
category: "aggregator",
icon: "modelscope",
iconColor: "#624AFF",
},
{
name: "Longcat",
websiteUrl: "https://longcat.chat/platform",
apiKeyUrl: "https://longcat.chat/platform/api_keys",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"longcat",
"https://api.longcat.chat/openai/v1",
"LongCat-2.0",
),
endpointCandidates: ["https://api.longcat.chat/openai/v1"],
// 美团 LongCat 官方 Codex 文档用 wire_api=responses 对自家 base_url,原生 Responses,无需路由接管转换
apiFormat: "openai_responses",
// 无官方 catalog:合成 MiMo 式(shell_command 编辑、不发 freeform apply_patch)。
// 注:LongCat 的 /responses 工具类型契约文档化程度最低,建议真机冒烟一次
modelCatalog: modelCatalog([
{
model: "LongCat-2.0",
displayName: "LongCat 2.0",
contextWindow: 1048576,
},
]),
category: "cn_official",
icon: "longcat",
iconColor: "#29E154",
},
{
name: "MiniMax",
websiteUrl: "https://platform.minimaxi.com",
apiKeyUrl: "https://platform.minimaxi.com/subscribe/coding-plan",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"minimax",
"https://api.minimaxi.com/v1",
"MiniMax-M3",
),
endpointCandidates: ["https://api.minimaxi.com/v1"],
// MiniMax 官方 API 参考已列 /v1/responses 为正式端点(CN/intl 双区,POST /v1/responses),原生 Responses,无需路由接管转换
apiFormat: "openai_responses",
// 官方 Codex catalogplatform.minimaxi.com/docs/token-plan/codex-cli):
// shell_command 编辑、并行工具、文本+图像,不声明 freeform apply_patch
modelCatalog: modelCatalog([
{
model: "MiniMax-M3",
displayName: "MiniMax-M3",
contextWindow: 1000000,
supportsParallelToolCalls: true,
inputModalities: ["text", "image"],
baseInstructions:
"You are Codex, a coding agent based on MiniMax-M3. You and the user share the same workspace and collaborate to achieve the user's goals.",
},
]),
category: "cn_official",
partnerPromotionKey: "minimax_cn",
theme: {
backgroundColor: "#f64551",
textColor: "#FFFFFF",
},
icon: "minimax",
iconColor: "#FF6B6B",
},
{
name: "MiniMax en",
websiteUrl: "https://platform.minimax.io",
apiKeyUrl: "https://platform.minimax.io/subscribe/coding-plan",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"minimax_en",
"https://api.minimax.io/v1",
"MiniMax-M3",
),
endpointCandidates: ["https://api.minimax.io/v1"],
// MiniMax 官方 API 参考已列 /v1/responses 为正式端点(CN/intl 双区,POST /v1/responses),原生 Responses,无需路由接管转换
apiFormat: "openai_responses",
// 官方 Codex catalogplatform.minimax.io/docs/token-plan/codex):
// shell_command 编辑、并行工具、文本+图像,不声明 freeform apply_patch
modelCatalog: modelCatalog([
{
model: "MiniMax-M3",
displayName: "MiniMax-M3",
contextWindow: 1000000,
supportsParallelToolCalls: true,
inputModalities: ["text", "image"],
baseInstructions:
"You are Codex, a coding agent based on MiniMax-M3. You and the user share the same workspace and collaborate to achieve the user's goals.",
},
]),
category: "cn_official",
partnerPromotionKey: "minimax_en",
theme: {
backgroundColor: "#f64551",
textColor: "#FFFFFF",
},
icon: "minimax",
iconColor: "#FF6B6B",
},
{
name: "BaiLing",
websiteUrl: "https://alipaytbox.yuque.com/sxs0ba/ling/get_started",
apiKeyUrl: "https://ling.tbox.cn/open",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"bailing",
"https://api.tbox.cn/api/llm/v1",
"Ling-2.6-1T",
),
endpointCandidates: ["https://api.tbox.cn/api/llm/v1"],
apiFormat: "openai_chat",
modelCatalog: modelCatalog([
{
model: "Ling-2.6-1T",
displayName: "Ling-2.6-1T",
contextWindow: 262144,
},
]),
category: "cn_official",
},
{
name: "Xiaomi MiMo",
websiteUrl: "https://platform.xiaomimimo.com",
apiKeyUrl: "https://platform.xiaomimimo.com/#/console/api-keys",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"xiaomi_mimo",
"https://api.xiaomimimo.com/v1",
"mimo-v2.5-pro",
),
endpointCandidates: ["https://api.xiaomimimo.com/v1"],
// 小米 MiMo 官方 Codex 文档已声明原生支持 Responses APIwire_api=responses 对自家 base_url),无需路由接管转换
apiFormat: "openai_responses",
// 官方 Codex catalogmimo.mi.com/.../codex-configuration):
// shell_command 编辑、不声明 freeform apply_patch
modelCatalog: modelCatalog([
{
model: "mimo-v2.5-pro",
displayName: "MiMo V2.5 Pro",
contextWindow: 1048576,
inputModalities: ["text"],
baseInstructions:
"You are MiMo, an AI assistant developed by Xiaomi. Today's date: {date} {week}. Your knowledge cutoff date is December 2024.",
},
{
model: "mimo-v2.5",
displayName: "MiMo V2.5",
contextWindow: 1048576,
inputModalities: ["text", "image"],
baseInstructions:
"You are MiMo, an AI assistant developed by Xiaomi. Today's date: {date} {week}. Your knowledge cutoff date is December 2024.",
},
]),
category: "cn_official",
icon: "xiaomimimo",
iconColor: "#000000",
},
{
name: "Xiaomi MiMo Token Plan (China)",
websiteUrl: "https://platform.xiaomimimo.com/#/token-plan",
apiKeyUrl: "https://platform.xiaomimimo.com/#/console/plan-manage",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"xiaomi_mimo_token_plan",
"https://token-plan-cn.xiaomimimo.com/v1",
"mimo-v2.5-pro",
),
endpointCandidates: ["https://token-plan-cn.xiaomimimo.com/v1"],
// 小米 MiMo 官方 Codex 文档已声明原生支持 Responses APIwire_api=responses 对自家 base_url),无需路由接管转换
apiFormat: "openai_responses",
// 官方 Codex catalogmimo.mi.com/.../codex-configuration):
// shell_command 编辑、不声明 freeform apply_patch
modelCatalog: modelCatalog([
{
model: "mimo-v2.5-pro",
displayName: "MiMo V2.5 Pro",
contextWindow: 1048576,
inputModalities: ["text"],
baseInstructions:
"You are MiMo, an AI assistant developed by Xiaomi. Today's date: {date} {week}. Your knowledge cutoff date is December 2024.",
},
{
model: "mimo-v2.5",
displayName: "MiMo V2.5",
contextWindow: 1048576,
inputModalities: ["text", "image"],
baseInstructions:
"You are MiMo, an AI assistant developed by Xiaomi. Today's date: {date} {week}. Your knowledge cutoff date is December 2024.",
},
]),
category: "cn_official",
icon: "xiaomimimo",
iconColor: "#000000",
},
{
name: "Novita AI",
websiteUrl: "https://novita.ai",
apiKeyUrl: "https://novita.ai",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"novita",
"https://api.novita.ai/openai/v1",
"zai-org/glm-5.1",
),
endpointCandidates: ["https://api.novita.ai/openai/v1"],
apiFormat: "openai_chat",
modelCatalog: modelCatalog([
{
model: "zai-org/glm-5.1",
displayName: "GLM-5.1",
contextWindow: 202800,
},
]),
codexChatReasoning: {
supportsThinking: true,
supportsEffort: false,
thinkingParam: "thinking",
effortParam: "none",
outputFormat: "reasoning_content",
},
category: "aggregator",
icon: "novita",
iconColor: "#000000",
},
{
name: "xAI (Grok)",
websiteUrl: "https://x.ai/api",
apiKeyUrl: "https://console.x.ai",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig("xai", "https://api.x.ai/v1", "grok-4.5"),
endpointCandidates: ["https://api.x.ai/v1"],
// xAI 官方以 /v1/responses 为一等端点(docs.x.ai api-reference):Codex 硬依赖的
// store:false / include=["reasoning.encrypted_content"] / reasoning effort 均支持,
// 原生 Responses,无需路由接管转换
apiFormat: "openai_responses",
modelCatalog: modelCatalog([
{
model: "grok-4.5",
displayName: "Grok 4.5",
contextWindow: 500000,
supportsParallelToolCalls: true,
inputModalities: ["text", "image"],
},
]),
category: "third_party",
icon: "xai",
iconColor: "#000000",
},
{
name: "xAI (Grok) OAuth",
websiteUrl: "https://x.ai/grok",
auth: generateThirdPartyAuth(""),
// 托管 OAuth:真实 token 由本地代理按请求注入,CodexAdapter 硬定向
// api.x.ai;这里的 base_url / 空 auth 只是配置快照,转发时不生效。
config: generateThirdPartyConfig("xai", "https://api.x.ai/v1", "grok-4.5"),
apiFormat: "openai_responses",
providerType: "xai_oauth",
requiresOAuth: true,
modelCatalog: modelCatalog([
{
model: "grok-4.5",
displayName: "Grok 4.5",
contextWindow: 500000,
supportsParallelToolCalls: true,
inputModalities: ["text", "image"],
},
]),
category: "third_party",
icon: "xai",
iconColor: "#000000",
},
{
name: "Nvidia",
websiteUrl: "https://build.nvidia.com",
apiKeyUrl: "https://build.nvidia.com/settings/api-keys",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"nvidia",
"https://integrate.api.nvidia.com/v1",
"moonshotai/kimi-k2.5",
),
endpointCandidates: ["https://integrate.api.nvidia.com/v1"],
apiFormat: "openai_chat",
modelCatalog: modelCatalog([
{
model: "moonshotai/kimi-k2.5",
displayName: "Kimi K2.5",
contextWindow: 262144,
},
]),
codexChatReasoning: {
supportsThinking: true,
supportsEffort: false,
thinkingParam: "thinking",
effortParam: "none",
outputFormat: "reasoning_content",
},
category: "aggregator",
icon: "nvidia",
iconColor: "#000000",
},
{
name: "OpenCode Go",
websiteUrl: "https://opencode.ai/go",
apiKeyUrl: "https://opencode.ai/go?ref=2YTRG2NGTX",
partnerPromotionKey: "opencode_go",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"opencode_go",
"https://opencode.ai/zen/go/v1",
"glm-5.2",
),
endpointCandidates: ["https://opencode.ai/zen/go/v1"],
apiFormat: "openai_chat",
modelCatalog: modelCatalog([
{ model: "glm-5.2", displayName: "GLM 5.2", contextWindow: 204800 },
{ model: "glm-5.1", displayName: "GLM 5.1", contextWindow: 204800 },
{
model: "kimi-k2.7-code",
displayName: "Kimi K2.7 Code",
contextWindow: 262144,
},
{ model: "deepseek-v4-pro", displayName: "DeepSeek V4 Pro" },
{ model: "deepseek-v4-flash", displayName: "DeepSeek V4 Flash" },
{
model: "mimo-v2.5-pro",
displayName: "MiMo V2.5 Pro",
contextWindow: 1048576,
},
]),
category: "third_party",
icon: "opencode",
iconColor: "#211E1E",
},
{
name: "AiHubMix",
websiteUrl: "https://aihubmix.com",
category: "aggregator",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"aihubmix",
"https://aihubmix.com/v1",
"gpt-5.5",
),
endpointCandidates: [
"https://aihubmix.com/v1",
"https://api.aihubmix.com/v1",
],
icon: "aihubmix",
iconColor: "#006FFB",
},
{
name: "CherryIN",
websiteUrl: "https://open.cherryin.ai",
apiKeyUrl: "https://open.cherryin.ai/console/token",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"cherryin",
"https://open.cherryin.net/v1",
"openai/gpt-5.5",
),
endpointCandidates: ["https://open.cherryin.net/v1"],
category: "aggregator",
icon: "cherryin",
},
{
name: "RelaxyCode",
websiteUrl: "https://www.relaxycode.com",
apiKeyUrl: "https://www.relaxycode.com/register",
category: "third_party",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"relaxycode",
"https://www.relaxycode.com/v1",
"gpt-5.5",
),
icon: "relaxcode",
},
{
name: "E-FlowCode",
websiteUrl: "https://e-flowcode.cc",
apiKeyUrl: "https://e-flowcode.cc",
auth: {
OPENAI_API_KEY: "",
},
config: `model_provider = "custom"
model = "gpt-5.5"
model_reasoning_effort = "high"
disable_response_storage = true
personality = "pragmatic"
[model_providers.custom]
name = "E-FlowCode"
base_url = "https://e-flowcode.cc/v1"
wire_api = "responses"
requires_openai_auth = true
model_context_window = 1000000
model_auto_compact_token_limit = 9000000`,
category: "third_party",
endpointCandidates: ["https://e-flowcode.cc/v1"],
icon: "eflowcode",
iconColor: "#000000",
},
{
name: "PIPELLM",
websiteUrl: "https://code.pipellm.ai",
apiKeyUrl: "https://code.pipellm.ai/login?ref=uvw650za",
auth: {
OPENAI_API_KEY: "",
},
config: `model_provider = "custom"
model = "gpt-5.5"
model_reasoning_effort = "medium"
disable_response_storage = true
[model_providers.custom]
name = "PIPELLM"
wire_api = "responses"
requires_openai_auth = true
base_url = "https://cc-api.pipellm.ai/v1"`,
category: "aggregator",
endpointCandidates: ["https://cc-api.pipellm.ai/v1"],
icon: "pipellm",
},
{
name: "OpenRouter",
websiteUrl: "https://openrouter.ai",
apiKeyUrl: "https://openrouter.ai/keys",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"openrouter",
"https://openrouter.ai/api/v1",
"gpt-5.5",
),
category: "aggregator",
icon: "openrouter",
iconColor: "#6566F1",
},
{
name: "TheRouter",
websiteUrl: "https://therouter.ai",
apiKeyUrl: "https://dashboard.therouter.ai",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"therouter",
"https://api.therouter.ai/v1",
"openai/gpt-5.3-codex",
),
endpointCandidates: ["https://api.therouter.ai/v1"],
category: "aggregator",
},
];