# [Feature]: 增加 LiteLLM Gateway 一等预设 / Add a first-class LiteLLM gateway preset ## Problem / pain point / 问题 LiteLLM 是很常见的 LLM gateway / proxy 方案。现在 Open CoDesign 虽然能通过 generic custom provider 接 LiteLLM,但体验仍然太手工: - 用户需要自己判断该选什么 wire - keyless 与 proxy-key 场景不够清晰 - diagnostics 不是 LiteLLM-aware - 虽然能用,但不是“官方支持感”的路径 LiteLLM can already work through generic custom-provider flows, but the setup is too manual and not clearly first-class. ## Proposed solution / 方案 在 Settings / onboarding 中增加 `LiteLLM Gateway` 预设: - 提供默认 wire 和 base URL 指引 - 支持 proxy key 与 keyless / IP allowlist 部署 - 给出 LiteLLM-specific 帮助文案 - 与 diagnostics 和 model discovery 集成 This does not bundle LiteLLM. It only improves support for externally hosted LiteLLM gateways. ## Alternatives considered / 备选方案 - 继续让用户使用 custom provider - 成本高,易出错 - 把 LiteLLM 打包进应用 - 违反项目约束与架构方向 ## Scope / 范围 Provider / model ## Acceptance criteria / 验收标准 - 可直接添加 `LiteLLM Gateway` 预设,无需手工配置 custom provider - 支持 proxy key 与 keyless 两种部署 - diagnostics 提供 LiteLLM 相关提示 - 模型发现可在支持时通过 gateway 正常工作 - 保持 BYOK / local-first 约束不变 ## Likely touchpoints / 可能涉及 - provider presets / onboarding UI - `apps/desktop/src/main/connection-ipc.ts` - `apps/desktop/src/main/provider-settings.ts` - shared provider config schema
Activity
Sun-sunshine06 commentedon Apr 23, 2026
Parent epic / 所属总 issue: #214
github-actions commentedon Apr 23, 2026
感谢反馈,这个方向和当前代码现状是对得上的。
从当前仓库代码看,LiteLLM 现在确实只能走通用 OpenAI-compatible / custom provider 路径,暂时没有
LiteLLM Gateway的一等预设,也没有 LiteLLM 专属 diagnostics 文案。Open CoDesign 已经有通用 OpenAI-compatible relay、模型发现和部分 keyless gateway 的底层支持,但这些能力目前仍分散在 generic custom-provider 流程里。项目现在还在v0.1.3的 pre-alpha 阶段,README 里的 roadmap 也明确把 provider / API config polish、custom providers 和 connection diagnostics 继续列为进行中。Relevant code:
README.md:52— README 明确宣称支持 “any OpenAI-compatible endpoint”README.md:221— README 写明支持 keyless / IP-allowlisted proxiesREADME.md:250— 当前仍在v0.1.3,provider/API config polish 与 custom providers / diagnostics 还在 roadmap 中packages/shared/src/config.ts:19— 内建 onboarding provider 目前只有anthropic、openai、openrouter、ollamaapps/desktop/src/renderer/src/components/Settings.tsx:2646— “Add provider” 菜单目前只有 Codex、Claude Code、Ollama、Custom、CLIProxyAPI,没有 LiteLLM 项packages/shared/src/proxy-presets.ts:5— 当前预设列表里没有 LiteLLM presetapps/desktop/src/renderer/src/components/AddCustomProviderModal.tsx:73— 现有自定义 provider 流程是通用 wire/baseUrl/model 表单apps/desktop/src/renderer/src/components/AddCustomProviderModal.tsx:342— 当前表单只有通用API Key输入,没有 LiteLLM 专属 proxy-key / keyless 引导apps/desktop/src/renderer/src/components/AddCustomProviderModal.tsx:125— 自定义 provider 已有模型发现逻辑apps/desktop/src/main/connection-ipc.ts:724— 已支持对已保存 provider 拉取模型列表apps/desktop/src/main/connection-ipc.ts:834— 已支持按 wire 测试自定义 endpointpackages/providers/src/index.ts:43— provider runtime 明确把 LiteLLM 归入 custom endpoint / synthetic wire model 路径apps/desktop/src/main/provider-settings.ts:72— 运行时允许“显式声明为 keyless”的 providerapps/desktop/src/main/onboarding-ipc.ts:631— 新增 custom provider 时仍会写入 secretapps/desktop/src/main/keychain.ts:23— 空 secret 会被拒绝,所以当前自定义 UI 不是完整的 keyless-first 流程apps/desktop/src/renderer/src/components/ConnectionDiagnosticPanel.tsx:184— diagnostics 目前只有通用 gateway / app allowlist 提示,不是 LiteLLM-specificapps/desktop/src/main/imports/claude-code-config.ts:26— Claude Code 导入路径已经把 localhost proxy 标注为典型 “Claude Code Proxy / LiteLLM setup”Need more info:
open-codesign Bot
Sun-sunshine06 commentedon Apr 23, 2026
补一个来自 #214 讨论的提醒:LiteLLM 这类 preset 的价值不只是“少填几个字段”,还应该降低用户在 provider + model 管理上的决策成本。
我觉得有两个点值得提前记在这个 issue 里:
这样更符合 LiteLLM / gateway 的真实使用方式,因为很多部署既可能暴露
/models,也可能更适合直接手填一个已知可用模型。把 preset 做成“给出好起点,但不假设远端一定是标准形态”会更稳。feat(shared,desktop): add provider capability profiles (#215)
github-actions commentedon May 1, 2026
感谢您提出这个功能请求。LiteLLM Gateway 作为一等预设确实能显著降低用户的手工配置成本,而且当前项目代码已经为这种升级准备好了大部分基础设施。
从代码分析来看,当前已经具备的基础:
packages/shared/src/config.ts:19定义了BUILTIN_ONBOARDING_PROVIDERS,目前包含anthropic、openai、openrouter、ollama,可以在此处新增litellm条目。apps/desktop/src/renderer/src/components/Settings.tsx:2646的“Add provider”菜单可以增加一个 LiteLLM 选项,类似已有的 CLIProxyAPI 预设。packages/shared/src/proxy-presets.ts:5存储代理预设,可以新增一个LiteLLM预设,默认 wire 为openai-compatible,默认 base URL 建议http://localhost:4000(典型部署)。apps/desktop/src/renderer/src/components/AddCustomProviderModal.tsx:73的自定义 provider 表单可复用,只需在预设选择时自动填充字段。apps/desktop/src/main/provider-settings.ts:72已允许“显式声明为 keyless”,但上游apps/desktop/src/main/keychain.ts:23拒绝空 secret,需在预设中绕过校验。apps/desktop/src/renderer/src/components/ConnectionDiagnosticPanel.tsx:184的 diagnostics 通用分支可扩展 LiteLLM-specific 提示(例如检查/v1/models是否返回正常)。apps/desktop/src/main/connection-ipc.ts:724支持,LiteLLM 自带的/models端点可直接使用。建议实现步骤(优先级从高到低):
BUILTIN_ONBOARDING_PROVIDERS中添加litellm,映射到预设配置对象,指定 wire 为openai-compatible,base URL 为环境变量或默认值。AddCustomProviderModal的 preset 下拉列表中添加LiteLLM Gateway,选择后自动填充 wire、base URL,并提供选项让用户选择 keyless 或提供 proxy key。keychain.ts使其在 preset 标记为 keyless 时允许空 secret。ConnectionDiagnosticPanel以识别 LiteLLM 端点并给出针对性诊断(如检查/v1/models响应、代理延迟等)。/models端点,同时允许手动输入模型 ID。需要您进一步提供的信息:
此 feature 与项目 BYOK/local-first 约束完全兼容,不会引入额外的外部依赖。感谢您考虑项目架构方向!
Open-CoDesign Bot
feat(desktop): add LiteLLM Gateway provider preset (#463)
feat(desktop): add LiteLLM-aware connection diagnostics (#464)