diff --git a/README.md b/README.md
index a564e4d..70f73bb 100644
--- a/README.md
+++ b/README.md
@@ -177,6 +177,20 @@ Codex support is powered by [musistudio/codexl](https://github.com/musistudio/co
TeamoRouter
+
+
+
+
+ code0.ai
+
+ |
+
+
+
+
+ claudeapi
+
+ |
diff --git a/README_zh.md b/README_zh.md
index f7056a5..710c17a 100644
--- a/README_zh.md
+++ b/README_zh.md
@@ -176,6 +176,20 @@ CCR 可以完全通过桌面 UI 完成配置。首次使用建议按下面顺序
TeamoRouter
+
+
+
+
+ code0.ai
+
+ |
+
+
+
+
+ claudeapi
+
+ |
diff --git a/docs/public/provider-icons/claudeapi.png b/docs/public/provider-icons/claudeapi.png
new file mode 100644
index 0000000..776ced8
Binary files /dev/null and b/docs/public/provider-icons/claudeapi.png differ
diff --git a/docs/public/provider-icons/code0.png b/docs/public/provider-icons/code0.png
new file mode 100644
index 0000000..32d81c1
Binary files /dev/null and b/docs/public/provider-icons/code0.png differ
diff --git a/docs/src/content/docs/en/configuration/provider-deeplink.md b/docs/src/content/docs/en/configuration/provider-deeplink.md
index 80e6cf0..b2dd290 100644
--- a/docs/src/content/docs/en/configuration/provider-deeplink.md
+++ b/docs/src/content/docs/en/configuration/provider-deeplink.md
@@ -78,6 +78,14 @@ Choose a provider below to get started. CCR shows what will be added before savi
TeamoRouterAnthropic / Chat / Responses
+
+
+ code0.aiAnthropic / Chat / Responses
+
+
+
+ claudeapiAnthropic Messages
+
## Embeddable Button Component
diff --git a/docs/src/content/docs/zh/configuration/provider-deeplink.md b/docs/src/content/docs/zh/configuration/provider-deeplink.md
index 703ad8e..ac471c7 100644
--- a/docs/src/content/docs/zh/configuration/provider-deeplink.md
+++ b/docs/src/content/docs/zh/configuration/provider-deeplink.md
@@ -78,6 +78,14 @@ lead: 快速添加常见模型供应商,确认无误后即可保存,减少
TeamoRouterAnthropic / Chat / Responses
+
+
+ code0.aiAnthropic / Chat / Responses
+
+
+
+ claudeapiAnthropic Messages
+
## 嵌入式按钮组件
diff --git a/docs/src/styles/global.css b/docs/src/styles/global.css
index 215d8c2..094438b 100644
--- a/docs/src/styles/global.css
+++ b/docs/src/styles/global.css
@@ -1318,6 +1318,18 @@ h1 {
--provider-brand-3: #f4f4f5;
}
+.doc-markdown a.provider-import-button.provider-code0 {
+ --provider-brand: #101214;
+ --provider-brand-2: #267dff;
+ --provider-brand-3: #d8e8ff;
+}
+
+.doc-markdown a.provider-import-button.provider-claudeapi {
+ --provider-brand: #0d1b2a;
+ --provider-brand-2: #2f8f83;
+ --provider-brand-3: #d7fff8;
+}
+
.doc-markdown a.provider-import-button.provider-deepseek {
--provider-brand: #173aa8;
--provider-brand-2: #4e69ff;
diff --git a/packages/core/src/providers/presets/claudeapi/index.ts b/packages/core/src/providers/presets/claudeapi/index.ts
new file mode 100644
index 0000000..85a7b65
--- /dev/null
+++ b/packages/core/src/providers/presets/claudeapi/index.ts
@@ -0,0 +1,15 @@
+import { defaultProviderAccountConfig, type ProviderPreset } from "@ccr/core/providers/presets/types";
+
+export const claudeApiProviderPreset: ProviderPreset = {
+ account: defaultProviderAccountConfig,
+ aliases: ["claudeapi", "claudeapi.com", "www.claudeapi.com"],
+ endpoints: [
+ {
+ baseUrl: "https://gw.claudeapi.com",
+ protocols: ["anthropic_messages"]
+ }
+ ],
+ id: "claudeapi",
+ name: "claudeapi",
+ websiteUrl: "https://www.claudeapi.com?source=claudecoderouter"
+};
diff --git a/packages/core/src/providers/presets/code0/index.ts b/packages/core/src/providers/presets/code0/index.ts
new file mode 100644
index 0000000..b87be18
--- /dev/null
+++ b/packages/core/src/providers/presets/code0/index.ts
@@ -0,0 +1,15 @@
+import { defaultProviderAccountConfig, type ProviderPreset } from "@ccr/core/providers/presets/types";
+
+export const code0ProviderPreset: ProviderPreset = {
+ account: defaultProviderAccountConfig,
+ aliases: ["code0", "code0.ai", "code 0"],
+ endpoints: [
+ {
+ baseUrl: "https://console.code0.ai",
+ protocols: ["anthropic_messages", "openai_chat_completions", "openai_responses"]
+ }
+ ],
+ id: "code0",
+ name: "code0.ai",
+ websiteUrl: "https://code0.ai?source=claudecoderouter"
+};
diff --git a/packages/core/src/providers/presets/index.ts b/packages/core/src/providers/presets/index.ts
index 760c2b1..85c1c86 100644
--- a/packages/core/src/providers/presets/index.ts
+++ b/packages/core/src/providers/presets/index.ts
@@ -1,5 +1,7 @@
import { anthropicProviderPreset } from "@ccr/core/providers/presets/anthropic/index";
import { bailianProviderPreset } from "@ccr/core/providers/presets/bailian/index";
+import { claudeApiProviderPreset } from "@ccr/core/providers/presets/claudeapi/index";
+import { code0ProviderPreset } from "@ccr/core/providers/presets/code0/index";
import { deepSeekProviderPreset } from "@ccr/core/providers/presets/deepseek/index";
import { geminiProviderPreset } from "@ccr/core/providers/presets/gemini/index";
import { kimiCodingProviderPreset } from "@ccr/core/providers/presets/kimi-coding/index";
@@ -42,7 +44,9 @@ export const providerPresets: ProviderPreset[] = [
bailianProviderPreset,
siliconFlowProviderPreset,
runApiProviderPreset,
- teamoRouterProviderPreset
+ teamoRouterProviderPreset,
+ code0ProviderPreset,
+ claudeApiProviderPreset
];
export function getProviderPresets(): ProviderPreset[] {
diff --git a/packages/ui/src/assets/provider-icons/claudeapi.png b/packages/ui/src/assets/provider-icons/claudeapi.png
new file mode 100644
index 0000000..776ced8
Binary files /dev/null and b/packages/ui/src/assets/provider-icons/claudeapi.png differ
diff --git a/packages/ui/src/assets/provider-icons/code0.png b/packages/ui/src/assets/provider-icons/code0.png
new file mode 100644
index 0000000..32d81c1
Binary files /dev/null and b/packages/ui/src/assets/provider-icons/code0.png differ
diff --git a/packages/ui/src/pages/home/shared/options.ts b/packages/ui/src/pages/home/shared/options.ts
index 2415bb1..18ad4c8 100644
--- a/packages/ui/src/pages/home/shared/options.ts
+++ b/packages/ui/src/pages/home/shared/options.ts
@@ -43,6 +43,8 @@ import type {
} from "@ccr/core/contracts/app";
import anthropicProviderIconUrl from "@/assets/provider-icons/anthropic.png";
import bailianProviderIconUrl from "@/assets/provider-icons/bailian.ico";
+import claudeapiProviderIconUrl from "@/assets/provider-icons/claudeapi.png";
+import code0ProviderIconUrl from "@/assets/provider-icons/code0.png";
import deepseekProviderIconUrl from "@/assets/provider-icons/deepseek.ico";
import geminiProviderIconUrl from "@/assets/provider-icons/gemini.svg";
import mistralProviderIconUrl from "@/assets/provider-icons/mistral.webp";
@@ -319,6 +321,8 @@ export const mcpStdioMessageModeOptions: Array<{ label: string; value: GatewayMc
export const providerPresetIconUrls: Record = {
anthropic: anthropicProviderIconUrl,
bailian: bailianProviderIconUrl,
+ claudeapi: claudeapiProviderIconUrl,
+ code0: code0ProviderIconUrl,
deepseek: deepseekProviderIconUrl,
gemini: geminiProviderIconUrl,
"kimi-coding": moonshotProviderIconUrl,