diff --git a/README.md b/README.md index 72cad555..91b46716 100644 --- a/README.md +++ b/README.md @@ -133,6 +133,16 @@ This project is maintained in the author's spare time. Corporate or individual s Thanks to TeamoRouter for sponsoring this project. TeamoRouter is an enterprise-grade Agentic LLM gateway for developers, AI teams, and businesses. Without any subscription, it lets you use Claude Code, Codex, Gemini CLI, and other popular AI agents through a single unified API, with API pricing at discounts of up to 90%. It aggregates hundreds of official model providers and trusted infrastructure partners — including OpenAI, Anthropic, Vertex, Azure, and AWS Bedrock — each verified for 100% Agent protocol compatibility, cache performance, and request traceability, delivering near-official TTFT, a 99.6% SLA, throughput up to 5,000 QPM, and industry-leading cache hit rates rather than reverse-engineered endpoints. It also offers centralized billing, team management, BYOK, smart routing, usage analytics, and dedicated support, and Teamo Desktop lets you use these AI agents with one-click setup. New users who register through this link receive 10% off their first top-up. + + + + XuanShu API + + + + Thanks to XuanShu API for sponsoring this project. XuanShu API is an all-in-one, enterprise-grade AI gateway that gives you access to leading global models through a single unified API, and works out of the box with popular AI coding tools such as Claude Code, Codex, and Gemini CLI. Stability comes first: multi-account pool scheduling and automatic failover smooth out upstream account fluctuations. Model calls are priced as low as 25% of official rates, and balance top-ups get roughly a 20% bonus with no expiry. New users who register through this link receive a $5 credit. + + diff --git a/README.zh-CN.md b/README.zh-CN.md index 6ea96301..0f0fab37 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -133,6 +133,16 @@ cp .env.example .env 感谢 TeamoRouter 赞助本项目!TeamoRouter 是面向开发者、AI 团队与企业的企业级 Agentic LLM 网关,无需任何订阅即可通过统一 API 使用 Claude Code、Codex、Gemini CLI 等热门 AI Agent,API 价格最高可享 90% 折扣。平台聚合 OpenAI、Anthropic、Vertex、Azure、AWS Bedrock 等数百家官方模型提供商与可信基础设施,全部经过 100% Agent 协议兼容、缓存性能与请求可追踪性验证,官方直连、非逆向,提供接近官方的 TTFT、99.6% SLA、最高 5,000 QPM 吞吐与行业领先的缓存命中率;同时支持集中账单、团队管理、BYOK、智能路由、用量分析与专属支持,并可通过 Teamo Desktop 一键使用各类 AI Agent。新用户通过 专属链接 注册,首次充值可享 10% 折扣。 + + + + 玄枢API + + + + 感谢 玄枢API 赞助本项目!玄枢API 是一站式企业级 AI 网关,通过一个统一 API 即可接入 Claude Code、Codex、Gemini CLI 等热门 AI 编程工具,调用全球顶尖模型。平台以稳定为前提,通过多账号池调度与自动故障切换屏蔽上游账号波动;模型调用低至官方定价 2.5 折,余额充值再享约 8 折优惠且不设有效期。新用户通过 专属链接 注册即赠 5 美元额度。 + + diff --git a/desktop/src/config/providerPresets.test.ts b/desktop/src/config/providerPresets.test.ts index 35d45d2b..6a48b821 100644 --- a/desktop/src/config/providerPresets.test.ts +++ b/desktop/src/config/providerPresets.test.ts @@ -71,6 +71,7 @@ describe('bundled provider presets', () => { const selectableIds = selectableProviderPresets(BUNDLED_PROVIDER_PRESETS).map((p) => p.id) expect(selectableIds).not.toContain('shengsuanyun') expect(selectableIds).toContain('teamorouter') + expect(selectableIds).toContain('xuanshuapi') expect(selectableIds).toContain('custom') }) diff --git a/docs/en/start/models.md b/docs/en/start/models.md index 6ce99e24..54531e9f 100644 --- a/docs/en/start/models.md +++ b/docs/en/start/models.md @@ -44,7 +44,7 @@ With an API key in hand, this is the fastest route. Click "Add Provider", pick s The built-in presets, as they appear in the dialog: - **DeepSeek** · **Zhipu GLM** · **Kimi** · **MiniMax** — major Chinese model vendors; the base URLs point at each one's Anthropic-compatible endpoint. -- **TeamoRouter** — a routing service that gives you access to official Claude models through its own gateway. +- **TeamoRouter** · **XuanShu API** — routing services that give you access to official Claude models through their own gateways. - **LM Studio** · **Ollama** — local models; see the next section. - **Custom** — anything not listed above. diff --git a/docs/images/sponsors/xuanshuapi-logo.svg b/docs/images/sponsors/xuanshuapi-logo.svg new file mode 100644 index 00000000..16323db2 --- /dev/null +++ b/docs/images/sponsors/xuanshuapi-logo.svg @@ -0,0 +1,16 @@ + + 玄枢API + + + + + + + + + + + + + + diff --git a/docs/start/models.md b/docs/start/models.md index 0f8bbcca..cb9cf9b0 100644 --- a/docs/start/models.md +++ b/docs/start/models.md @@ -44,7 +44,7 @@ Claude Code Haha 自己不带模型,它只是那个替你干活的壳。装完 内置预设(按弹窗里的排列): - **DeepSeek** · **Zhipu GLM** · **Kimi** · **MiniMax** — 国内主流模型厂商,接口地址是各家的 Anthropic 兼容端点。 -- **TeamoRouter** — 中转类服务商,用它们的通道调 Claude 官方模型。 +- **TeamoRouter** · **玄枢API** — 中转类服务商,用它们的通道调 Claude 官方模型。 - **LM Studio** · **Ollama** — 本地模型,见下一节。 - **Custom** — 上面都没有,自己填。 diff --git a/src/server/__tests__/provider-presets.test.ts b/src/server/__tests__/provider-presets.test.ts index 7dabb19f..7ead5ed1 100644 --- a/src/server/__tests__/provider-presets.test.ts +++ b/src/server/__tests__/provider-presets.test.ts @@ -69,6 +69,7 @@ describe('provider presets API', () => { const minimax = PROVIDER_PRESETS.find((preset) => preset.id === 'minimax') const shengsuanyun = PROVIDER_PRESETS.find((preset) => preset.id === 'shengsuanyun') const teamorouter = PROVIDER_PRESETS.find((preset) => preset.id === 'teamorouter') + const xuanshuapi = PROVIDER_PRESETS.find((preset) => preset.id === 'xuanshuapi') expect(lmstudio?.baseUrl).toBe('http://localhost:1234') expect(lmstudio?.apiFormat).toBe('anthropic') @@ -127,6 +128,14 @@ describe('provider presets API', () => { expect(teamorouter?.defaultModels.sonnet).toBe('claude-sonnet-5') expect(teamorouter?.defaultModels.opus).toBe('claude-opus-4-8') expect(teamorouter?.modelContextWindows?.['claude-opus-4-8']).toBe(1000000) + expect(xuanshuapi?.baseUrl).toBe('https://www.xuanshuapi.com') + expect(xuanshuapi?.apiFormat).toBe('anthropic') + expect(xuanshuapi?.authStrategy).toBe('auth_token') + expect(xuanshuapi?.defaultModels.main).toBe('claude-opus-5') + expect(xuanshuapi?.defaultModels.haiku).toBe('claude-haiku-4-5') + expect(xuanshuapi?.defaultModels.sonnet).toBe('claude-sonnet-5') + expect(xuanshuapi?.defaultModels.opus).toBe('claude-opus-5') + expect(xuanshuapi?.modelContextWindows?.['claude-opus-5']).toBe(1000000) }) test('configured presets can expose optional API key and promo metadata', () => { @@ -138,6 +147,7 @@ describe('provider presets API', () => { const minimax = PROVIDER_PRESETS.find((preset) => preset.id === 'minimax') const shengsuanyun = PROVIDER_PRESETS.find((preset) => preset.id === 'shengsuanyun') const teamorouter = PROVIDER_PRESETS.find((preset) => preset.id === 'teamorouter') + const xuanshuapi = PROVIDER_PRESETS.find((preset) => preset.id === 'xuanshuapi') const custom = PROVIDER_PRESETS.find((preset) => preset.id === 'custom') expect(lmstudio?.needsApiKey).toBe(false) @@ -187,6 +197,14 @@ describe('provider presets API', () => { ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES: 'none', }) expect(teamorouter?.modelContextWindows?.['claude-sonnet-5']).toBe(1000000) + expect(xuanshuapi?.apiKeyUrl).toBe('https://www.xuanshuapi.com/register?aff=CC-HAHA&promo=CC-HAHA') + expect(xuanshuapi?.promoText).toContain('5 美元') + expect(xuanshuapi?.featured).toBe(true) + expect(xuanshuapi?.defaultEnv).toEqual({ + CLAUDE_CODE_SUBAGENT_MODEL: 'claude-sonnet-5', + ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES: 'none', + }) + expect(xuanshuapi?.modelContextWindows?.['claude-sonnet-5']).toBe(1000000) expect(custom?.promoText).toBeUndefined() expect(custom?.authStrategy).toBe('auth_token') expect(custom?.defaultEnv).toBeUndefined() diff --git a/src/server/config/providerPresets.json b/src/server/config/providerPresets.json index b0695fed..98fb9b3f 100644 --- a/src/server/config/providerPresets.json +++ b/src/server/config/providerPresets.json @@ -213,6 +213,36 @@ "claude-haiku-4-5-20251001": 200000 } }, + { + "id": "xuanshuapi", + "name": "玄枢API", + "baseUrl": "https://www.xuanshuapi.com", + "apiFormat": "anthropic", + "defaultModels": { + "main": "claude-opus-5", + "haiku": "claude-haiku-4-5", + "sonnet": "claude-sonnet-5", + "opus": "claude-opus-5" + }, + "needsApiKey": true, + "websiteUrl": "https://www.xuanshuapi.com", + "apiKeyUrl": "https://www.xuanshuapi.com/register?aff=CC-HAHA&promo=CC-HAHA", + "promoText": "玄枢API 为 cc-haha 的用户提供了专属福利,通过此链接注册的新用户即赠 5 美元额度!", + "featured": true, + "authStrategy": "auth_token", + "defaultEnv": { + "CLAUDE_CODE_SUBAGENT_MODEL": "claude-sonnet-5", + "ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES": "none" + }, + "modelContextWindows": { + "claude-opus-5": 1000000, + "claude-fable-5": 1000000, + "claude-opus-4-8": 1000000, + "claude-sonnet-5": 1000000, + "claude-haiku-4-5": 200000, + "claude-haiku-4-5-20251001": 200000 + } + }, { "id": "lmstudio", "name": "LM Studio",