Files
CC-Switch/src/config/codexProviderPresets.ts
T
Jason 9079935d72 feat(presets): add NekoCode partner preset for 6 apps
Partner aggregator (New API gateway) across Claude Code, Claude Desktop,
Codex, OpenCode, OpenClaw, and Hermes -- no Gemini, since its /v1beta
surface falls through to the web app. Claude Code and Claude Desktop use
the bare host https://nekocode.ai; Codex, OpenCode, OpenClaw, and Hermes
use /v1 with gpt-5.5.

Marks isPartner with the ?aff=CCSWITCH referral on apiKeyUrl only (the
website URL and every API endpoint stay bare, so the attribution param
never rides on a real request). Adds the partnerPromotion blurb in all
four locales and a sponsor row appended to the end of all four READMEs,
surfacing the CC Switch offer: 10% off top-ups with promo code cc-switch.
Registers the logo-derived nekocode-icon.png via URL import; the README
banner is normalized to the standard 1920x798 aspect ratio.
2026-07-01 22:27:10 +08:00

1513 lines
45 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,
} 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;
// 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?source=ccswitch",
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-Preview",
),
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-Preview",
displayName: "LongCat 2.0 Preview",
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: "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",
},
];