mirror of
https://github.com/farion1231/cc-switch.git
synced 2026-07-24 12:44:18 +08:00
7fada72dd4
Replace the ?source=ccswitch referral with the new agent register invite link (https://code0.ai/agent/register/B2XHxGjGmRvqgznY) on code0's apiKeyUrl across all seven presets and the sponsor rows in all four READMEs. API endpoints stay bare per the referral red-line.
1513 lines
45 KiB
TypeScript
1513 lines
45 KiB
TypeScript
/**
|
||
* Codex 预设供应商配置模板
|
||
*/
|
||
import { ProviderCategory } from "../types";
|
||
import type {
|
||
CodexApiFormat,
|
||
CodexCatalogModel,
|
||
CodexChatReasoning,
|
||
} 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.toml(TOML 字符串)
|
||
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;
|
||
// Codex Chat 本地路由模式下的模型目录
|
||
modelCatalog?: CodexCatalogModel[];
|
||
// Codex Responses -> Chat Completions reasoning capability defaults
|
||
codexChatReasoning?: CodexChatReasoning;
|
||
}
|
||
|
||
/**
|
||
* 生成第三方供应商的 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; omit to inherit the native template defaults
|
||
// (supports_parallel_tool_calls=false, input_modalities=["text"]).
|
||
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",
|
||
},
|
||
{
|
||
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: "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: "火山Agentplan",
|
||
websiteUrl: "https://www.volcengine.com/product/ark",
|
||
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",
|
||
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://www.volcengine.com/product/doubao",
|
||
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: "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: "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: "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: "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: "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: "ZetaAPI",
|
||
websiteUrl: "https://zetaapi.ai",
|
||
apiKeyUrl: "https://zetaapi.ai/go/ccs",
|
||
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: "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: "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: "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: "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: "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: "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,
|
||
},
|
||
]),
|
||
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",
|
||
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: "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 catalog(platform.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 catalog(platform.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 API(wire_api=responses 对自家 base_url),无需路由接管转换
|
||
apiFormat: "openai_responses",
|
||
// 官方 Codex catalog(mimo.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 API(wire_api=responses 对自家 base_url),无需路由接管转换
|
||
apiFormat: "openai_responses",
|
||
// 官方 Codex catalog(mimo.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: "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: "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: "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",
|
||
],
|
||
},
|
||
{
|
||
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: "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: "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: "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: "APINebula",
|
||
websiteUrl: "https://apinebula.com",
|
||
apiKeyUrl: "https://apinebula.com/02rw5X",
|
||
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: "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: "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",
|
||
icon: "sudocode",
|
||
},
|
||
{
|
||
name: "ClaudeCN",
|
||
websiteUrl: "https://claudecn.top",
|
||
apiKeyUrl: "https://claudecn.top/register?aff=ccswitch",
|
||
category: "third_party",
|
||
auth: generateThirdPartyAuth(""),
|
||
config: generateThirdPartyConfig(
|
||
"claudecn",
|
||
"https://claudecn.top/v1",
|
||
"gpt-5.5",
|
||
),
|
||
isPartner: true,
|
||
partnerPromotionKey: "claudecn",
|
||
icon: "claudecn",
|
||
},
|
||
{
|
||
name: "RunAPI",
|
||
websiteUrl: "https://runapi.co",
|
||
apiKeyUrl: "https://runapi.co",
|
||
category: "aggregator",
|
||
auth: generateThirdPartyAuth(""),
|
||
config: generateThirdPartyConfig(
|
||
"runapi",
|
||
"https://runapi.co/v1",
|
||
"gpt-5.5",
|
||
),
|
||
isPartner: true,
|
||
partnerPromotionKey: "runapi",
|
||
icon: "runapi",
|
||
},
|
||
{
|
||
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: "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: "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: "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: "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: "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: "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: "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: "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: "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: "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",
|
||
},
|
||
];
|