diff --git a/src/config/claudeProviderPresets.ts b/src/config/claudeProviderPresets.ts index c335ceb61..2c408c8cd 100644 --- a/src/config/claudeProviderPresets.ts +++ b/src/config/claudeProviderPresets.ts @@ -838,13 +838,20 @@ export const providerPresets: ProviderPreset[] = [ { name: "PIPELLM", websiteUrl: "https://www.pipellm.ai", + apiKeyUrl: "https://code.pipellm.ai/login?ref=uvw650za", settingsConfig: { env: { - ANTHROPIC_BASE_URL: "https://api.pipellm.ai", + ANTHROPIC_BASE_URL: "https://cc-api.pipellm.ai", ANTHROPIC_AUTH_TOKEN: "", + ANTHROPIC_MODEL: "claude-opus-4-6", + ANTHROPIC_DEFAULT_HAIKU_MODEL: "claude-haiku-4-5-20251001", + ANTHROPIC_DEFAULT_SONNET_MODEL: "claude-sonnet-4-6", + ANTHROPIC_DEFAULT_OPUS_MODEL: "claude-opus-4-6", }, + includeCoAuthoredBy: false, }, category: "aggregator", + icon: "pipellm", }, { name: "Xiaomi MiMo", diff --git a/src/config/codexProviderPresets.ts b/src/config/codexProviderPresets.ts index b7fe49bb2..02379839f 100644 --- a/src/config/codexProviderPresets.ts +++ b/src/config/codexProviderPresets.ts @@ -406,6 +406,27 @@ model_auto_compact_token_limit = 9000000`, icon: "eflowcode", iconColor: "#000000", }, + { + name: "PIPELLM", + websiteUrl: "https://www.pipellm.ai", + apiKeyUrl: "https://code.pipellm.ai/login?ref=uvw650za", + auth: { + OPENAI_API_KEY: "", + }, + config: `model_provider = "custom" +model = "gpt-5.4" +model_reasoning_effort = "medium" +disable_response_storage = true + +[model_providers.custom] +name = "custom" +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", diff --git a/src/config/openclawProviderPresets.ts b/src/config/openclawProviderPresets.ts index be82b277c..b62c08118 100644 --- a/src/config/openclawProviderPresets.ts +++ b/src/config/openclawProviderPresets.ts @@ -1010,30 +1010,38 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [ { name: "PIPELLM", websiteUrl: "https://www.pipellm.ai", + apiKeyUrl: "https://code.pipellm.ai/login?ref=uvw650za", settingsConfig: { - baseUrl: "https://api.pipellm.ai", + baseUrl: "https://cc-api.pipellm.ai", apiKey: "", api: "anthropic-messages", models: [ { id: "claude-opus-4-6", - name: "Claude Opus 4.6", + name: "claude-opus-4-6", contextWindow: 1000000, cost: { input: 5, output: 25 }, }, { id: "claude-sonnet-4-6", - name: "Claude Sonnet 4.6", + name: "claude-sonnet-4-6", contextWindow: 1000000, cost: { input: 3, output: 15 }, }, + { + id: "claude-haiku-4-5-20251001", + name: "claude-haiku-4-5-20251001", + contextWindow: 200000, + cost: { input: 0.8, output: 4 }, + }, ], }, category: "aggregator", + icon: "pipellm", templateValues: { apiKey: { label: "API Key", - placeholder: "", + placeholder: "pipe-...", editorValue: "", }, }, @@ -1045,6 +1053,7 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [ modelCatalog: { "pipellm/claude-opus-4-6": { alias: "Opus" }, "pipellm/claude-sonnet-4-6": { alias: "Sonnet" }, + "pipellm/claude-haiku-4-5-20251001": { alias: "Haiku" }, }, }, }, diff --git a/src/config/opencodeProviderPresets.ts b/src/config/opencodeProviderPresets.ts index ce41ba945..5c44ef295 100644 --- a/src/config/opencodeProviderPresets.ts +++ b/src/config/opencodeProviderPresets.ts @@ -997,24 +997,27 @@ export const opencodeProviderPresets: OpenCodeProviderPreset[] = [ { name: "PIPELLM", websiteUrl: "https://www.pipellm.ai", + apiKeyUrl: "https://code.pipellm.ai/login?ref=uvw650za", settingsConfig: { npm: "@ai-sdk/anthropic", name: "PIPELLM", options: { - baseURL: "https://api.pipellm.ai/v1", + baseURL: "https://cc-api.pipellm.ai", apiKey: "", setCacheKey: true, }, models: { - "claude-opus-4-6": { name: "Claude Opus 4.6" }, - "claude-sonnet-4-6": { name: "Claude Sonnet 4.6" }, + "claude-opus-4-6": { name: "claude-opus-4-6" }, + "claude-sonnet-4-6": { name: "claude-sonnet-4-6" }, + "claude-haiku-4-5-20251001": { name: "claude-haiku-4-5-20251001" }, }, }, category: "aggregator", + icon: "pipellm", templateValues: { apiKey: { label: "API Key", - placeholder: "", + placeholder: "pipe-...", editorValue: "", }, }, diff --git a/src/icons/extracted/index.ts b/src/icons/extracted/index.ts index aae68b7a0..5402dc151 100644 --- a/src/icons/extracted/index.ts +++ b/src/icons/extracted/index.ts @@ -3,6 +3,7 @@ import _dds from "./dds.svg?url"; import _eflowcode from "./eflowcode.png"; +import _pipellm from "./pipellm.png"; import _shengsuanyun from "./shengsuanyun.svg?url"; import _xcode from "./xcode.svg?url"; @@ -81,6 +82,7 @@ export const icons: Record = { export const iconUrls: Record = { dds: _dds, eflowcode: _eflowcode, + pipellm: _pipellm, shengsuanyun: _shengsuanyun, xcode: _xcode, }; diff --git a/src/icons/extracted/metadata.ts b/src/icons/extracted/metadata.ts index 60f1dd7e0..161b30c3b 100644 --- a/src/icons/extracted/metadata.ts +++ b/src/icons/extracted/metadata.ts @@ -366,6 +366,13 @@ export const iconMetadata: Record = { keywords: ["openrouter", "router", "aggregator"], defaultColor: "#6566F1", }, + pipellm: { + name: "pipellm", + displayName: "PIPELLM", + category: "ai-provider", + keywords: ["pipellm", "pipe"], + defaultColor: "currentColor", + }, eflowcode: { name: "eflowcode", displayName: "E-FlowCode", diff --git a/src/icons/extracted/pipellm.png b/src/icons/extracted/pipellm.png new file mode 100644 index 000000000..839fa5bc3 Binary files /dev/null and b/src/icons/extracted/pipellm.png differ