From 337224546cd2aa609296c4444f531580dd1e7a24 Mon Sep 17 00:00:00 2001 From: Jason Date: Fri, 10 Apr 2026 22:09:21 +0800 Subject: [PATCH] feat: update PIPELLM preset with full config, add Codex support and icon Update base URL to cc-api.pipellm.ai, add complete model definitions (Opus/Sonnet/Haiku), add Codex preset with custom TOML config, add pipellm PNG icon, and set apiKeyUrl to referral link. --- src/config/claudeProviderPresets.ts | 9 ++++++++- src/config/codexProviderPresets.ts | 21 +++++++++++++++++++++ src/config/openclawProviderPresets.ts | 17 +++++++++++++---- src/config/opencodeProviderPresets.ts | 11 +++++++---- src/icons/extracted/index.ts | 2 ++ src/icons/extracted/metadata.ts | 7 +++++++ src/icons/extracted/pipellm.png | Bin 0 -> 1969 bytes 7 files changed, 58 insertions(+), 9 deletions(-) create mode 100644 src/icons/extracted/pipellm.png 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 0000000000000000000000000000000000000000..839fa5bc3c334d44f6bc69e2277690f6fc3acaad GIT binary patch literal 1969 zcmV;i2Tu5jP)t<80drDELIAGL9O(c600d`2O+f$vv5yPc73`Uqi%{LEH1Z#o^W%9UbibN}6a+-=2NnkJ=StDuHgv%~ostGrEjirXuK++#DVq zUnQn;=#tzZrn2~wKb`W|N0b8=TygSBX2BMaM=}exgshTTutj8%%z`aLRWb{<5EaQR z*ivLAvtWynk<5ZECrvU7c7P~%%H8ACFzDnzb;1z(X?&xO#lv$Noi;aEro z*b3obT{K%&wp_r1skhu-5gG%SDtTIf2CzfWTI(737hV3I$QBBp1|Ha9A$p)SaE3V2%}HajBf4 z0#%a>YAHA>H@ttHnwnBNUL&ZYTu?i~(P0^p8%|Eh9<2#eRk@&6smkbr3Ue-oWmn~b z+6a!y#r6jaD$KL4$_2F$9F-d`=b;$ys$Af_;9g0L{r&x5-bJr2R?Di`A{RI>63h~Mieb75SQ3#=4uTMK8ISSMKZ+_KpFCM7mpl?$vA zoTY^`?GXwt%LUd5&eBejmbr3WF0evy7P;8>;zB{c*YI2ixuEib^Y-T=u~BvlXPH!5 zaNaIIteT_ITPL}ovVwKAa7Mf9>n0ae^4M$^x!CWDBd{na;CypcS~$z3a)Pt2meEfH zFf2oEm0CEXT}^ zEcZI436AT}1&B)Ik0CUzn?4N7y-6v8!*U^Ydwcs@azdq}UchpDV_a}Fa)n&XsrYU` z)vkKLa^o>7I6CKwv?AmpIgtgHn~bqsbg$-XF)Sl;v%qrGF(NprKR5bJM_E{|9EA&x z>(2#QI{X03m8Vd_+@D)Mg$a&JKZ^V@7FKoW&n=rm1SjQ|Mf5_j3M@Ap+65=cMNT;! z!LqR2>}VC7RuvLol+5Wzb7&JRQ_mF**s`femYW|ff@O>KqL?5fnC0prw_uf%7-EP{ z>#%3J`p7N#>By> zj>Cc-#~19qBF0%79(8{w#!WnLt>M2sCdN^^&zgt(yBn>s2~+?UiE)OmAGq5u|6U2Q z|Gwn4k+JbV{Ynp>hH{S>OYvU$4%hu_Y3t>SRebU