把各家 AI 订阅配额接进任意编程工具(OpenRelay)
OpenRelay 是一个 TypeScript 写的本地 AI 配额聚合代理,读取本机已登录应用与直连 API 的可用模型,统一成一个本地端点供 Claude Code、Cursor、Aider 等工具调用。这篇文章梳理它的主要功能、安装方式、关键参数与真实用户踩过的坑,帮你判断它是否适合自己手上的多客户端场景。
手上同时开着 Claude Code、Cursor、Windsurf、Aider 的人大概都碰过这种局面:Claude Pro 的额度只能在 Claude Desktop 里花,Kiro 的配额锁在 Kiro 里,Groq 免费但每个工具都得手动填一遍地址,Cursor 的 500 次请求用完之后只剩等待。订阅费按月交,能调的模型却被封在各自的应用里,工具换得越勤,麻烦越多。
OpenRelay 是 TypeScript 编写的本地 AI 配额聚合代理,把本机已登录应用与直连 API 的可用模型统一成一个本地端点,供 Claude Code、Cursor、Aider 等工具调用。
它的工作方式是在本机跑一个进程,默认监听 18765 端口,读到的凭据留在本地 ~/.openrelay/ 目录下,AI 请求从你的机器直接发往所选供应商,官方服务器不在请求链路上。面板用浏览器打开,支持中英双语。
接入的一端是你「已经登录过的应用」:Claude Desktop、Claude Code、Kiro、Windsurf、Antigravity、OpenCode、VS Code Copilot、OpenAI Codex、Gemini CLI、Rovo Dev、QClaw 等。另一端是 45 个直连 API 或本地端点,包括 Groq、Gemini API、DeepSeek、Mistral、OpenRouter、LongCat、千帆、七牛、Anthropic API、Ollama。README 里把这个盘子描述成「58 个非虚拟提供商。一个面板。一个端点。」
适合它的场景很具体:你已经持有若干来源的配额,客户端不止一个,切换和配环境变量的时间比写代码还多。仓库地址是 https://github.com/romgX/openrelay,主要语言 TypeScript(占比 100%),当前 Star 2316、Fork 324、开放 Issue 1 个;框架部分采用 MIT 许可证,Pro 功能走商业授权。
主要功能
- 自动发现本机 AI 配额。启动后接入已经存在的 AI 来源,已发现的本地配额在面板里统一管理。注意:部分来源需要你先登录原应用或配置 API Key,OpenRelay 不会替你完成上游登录。
- 任意配额用在任意工具。把环境变量指过来即可,Anthropic 兼容的工具都能吃到这份配额:
# Windows (PowerShell)
$env:ANTHROPIC_BASE_URL="http://localhost:18765"
$env:ANTHROPIC_API_KEY="unused"
# macOS / Linux
export ANTHROPIC_BASE_URL=http://localhost:18765
export ANTHROPIC_API_KEY=unused- 按路径切换供应商。想让 Aider 用 Kiro 的免费 Claude Sonnet,把地址改成
ANTHROPIC_BASE_URL=http://localhost:18765/kiro即可。路径前缀对应不同来源。 - 一键配置 CLI 工具。在 Web 面板选 Provider、点开关,Claude Code、OpenClaw、Aider、Goose、OpenCode 的模型配置会被写下去,重开终端生效,不用手动编辑
.zshrc。 - IDE 代理接入。Cursor 走 RPC 代理(ConnectRPC,HTTP/2),Windsurf 走 RPC 代理(ConnectRPC),VS Code Copilot 走 Ollama BYOK 桥接,Antigravity 走 Gemini REST 代理。前提是在面板里先把代理启动起来。
- 自定义模型组与故障转移。可以把多个 Provider 合并成一个虚拟模型,例如
"fast-group" = Groq (Llama 90B) + Cerebras (Llama 70B) + SambaNova (Llama 405B);一个来源的额度不可用时自动切下一个,跨 Provider 轮询会继续使用你配置的可用额度。README 把模型组合列为 Pro 功能。 - 直连 API 与本地端点。除本机应用外,还可以把 API Key 或端点填进面板复用,Ollama 这类本地服务也在支持列表内。
- 版本侧的新接入。v0.10.68 新增 Muse 供给侧接入,复用已有的浏览器登录态,从认证后的 VM 发现和调用真实模型;该接入目前是原生 Agent 文本聊天,暂不支持调用方自定义工具、图片和外部导入历史,macOS 与 Linux 已完成真实请求验证。
安装与依赖
README 明确写了「直接下载可执行文件运行,无需 npm install / node 环境」。所以不存在把包名当依赖装进项目这一步,官方也没有发布到 npm 仓库(Issue 区有人试过 npm install -g openrelay 报 404)。
Windows 下载 openrelay-windows-x64.exe 后双击运行。macOS 下载 openrelay-macos,然后在终端执行:
chmod +x openrelay-macos
xattr -d com.apple.quarantine openrelay-macos
./openrelay-macos其中 xattr 用于解除 macOS 对未签名程序的限制,不加会提示「无法打开」。Linux 分 x64 与 ARM64 两个文件:
chmod +x openrelay-linux-x64
./openrelay-linux-x64
chmod +x openrelay-linux-arm64
./openrelay-linux-arm64平台差异需要提前知道:Linux 支持的本地/CLI Provider 为 Claude Code、Kiro、Windsurf、OpenCode、VS Code Copilot、OpenAI Codex、Gemini CLI、Rovo Dev;Claude Desktop 和 Antigravity 目前没有 Linux 版本;QClaw 取决于桌面应用和本地 gateway,可降级运行。Linux 上凭证存取走 secret-tool(gnome-keyring)或文件缓存。
最短能跑通的用法
启动可执行文件后,浏览器打开 http://localhost:18765,所有管理动作都在这个 Web 面板里完成。第一步看 Provider 面板确认已经发现了哪些来源和配额状态;第二步进 Work 页面给目标 CLI 工具挑 Provider 并打开开关;第三步重开终端,让工具读到新的环境变量。
不通过面板、手动配也可以,导出两个变量就够:
export ANTHROPIC_BASE_URL=http://localhost:18765
export ANTHROPIC_API_KEY=unused想让某个工具走特定来源,把前缀挂在地址后面,例如 http://localhost:18765/kiro。IDE 类客户端需要先在面板里启动对应的代理,再去客户端侧生效。
关键参数
18765:默认监听端口,面板地址与 API 地址共用。ANTHROPIC_BASE_URL/ANTHROPIC_API_KEY:让 Anthropic 兼容工具指向本地代理。README 的示例里 Key 位置填的是unused,因为真实凭据由 OpenRelay 在本机侧提供。- 路径前缀(如
/kiro):用于把请求指定到某个来源。 ~/.openrelay/:通过 OpenRelay 添加的 API Key 的存放位置。- 凭证读取:Linux 通过
secret-tool(gnome-keyring)或文件缓存;凭据处理代码在仓库的cookie.ts中,README 称可自行审计。 - 调试开关:消息内容默认不写入日志、缓存或持久化,只有显式开启本地 request-shape 调试时才会输出排障信息。该开关的具体字段名仓库里没有在 README 正文中给出,需要去面板或 faq 文档里找。
结果在哪里看
看三个地方。一是浏览器里的 http://localhost:18765 面板,Provider 面板显示自动发现的来源与配额状态,Work 页面显示 CLI 工具的模型与 CLI 绑定情况,自定义模型组在对应页面维护。二是你启动代理的那个终端窗口,进程日志与启动信息在这里。三是客户端侧的反馈:Claude Code 这类工具切换成功与否,直接体现在它实际调用到哪个模型上。
仓库里没有说明独立的日志文件路径。默认情况下提示词内容不落盘,排查问题时只能靠显式打开调试开关,或者去官方论坛与 FAQ 文档(faq.md)看对应条目。
实际使用中的坑
- 安装阶段的报错最集中。有用户看到
No such xattr: com.apple.quarantine加一串Code cache data rejected警告,即使机器上已经装了 openclaw 和 ollama 仍然出现。该 Issue 状态为已解决。 - 有用户的 Windsurf 明明已经打开,仍然收到
Windsurf IDE is not running. Please start Windsurf first,耗时 45ms 就失败。同类反馈还有「Windsurf 有额度但一直显示配额耗尽」,两条均为已解决。 - 把包名当 npm 依赖安装会失败:
npm install -g openrelay返回 E404,因为官方走的是可执行文件分发,没有发布到 npmjs。对应 Issue 已解决,但这条路确实走不通。 - IDE 与 CLI 的启动联动不稳定。有用户反馈在 Web 里点击启动 Cursor 显示配置成功却没有 Cursor 页面;先手动打开 Cursor 再点重新启动,Cursor 反而被关闭。另有人反映在 Work 里设置了模型和 CLI,启动 Claude Code 后模型没有切过去,重开终端也无效(Debian Linux 13,v0.10.16)。两条均为已解决。
- 代理链路本身也会干扰配置。有用户用 Clash Verge 与 v2rayN 时,gemini CLI 能检查到模型但测试失败。此外 Issue 区出现过「并未开源,风险自担」的质疑,涉及管理多平台账户这一点,该条同样标记为已解决。
和同类放在一起看
| 项目 | 适合谁 | 部署方式 | 主要限制 | 什么情况下选它更合适 | 项目地址 || OpenRelay | 同时使用 Claude Code、Cursor、Windsurf 等多个客户端,想把各家免费或订阅配额汇总到一个端点的个人开发者 | 下载单文件可执行程序,覆盖 Windows / macOS / Linux,无需 Node 环境 | 模型组合与更高请求量上限属于 Pro 功能,走商业授权而非 MIT 框架;本身不提供模型额度,依赖本机已登录应用或自备 API Key | 手里来源多、切换频繁,需要一个面板统一管理与故障转移 | OpenRelay |
| ccproxy | 想在 Claude Code 内部拦截并改写请求、做 mod 的开发者 | 仓库没有说明 | 定位集中在 Claude Code 的请求 hook 与响应改写,不做跨供应商的配额聚合与自动故障转移(这是定位差异,未逐一核实其全部能力) | 只需要改请求或响应内容,不需要统一管理多家来源 | ccproxy |
如果你只需要在 Claude Code 内部拦截和改写请求,ccproxy 这类聚焦 hook 的项目更贴合,OpenRelay 的 Provider 发现与面板在那种场景下是多余的一层。反过来,如果你只有一个来源、也愿意直接调 API,本地再架一层代理并不划算。OpenRelay 的价值出现在来源多、客户端杂、切换频繁的时候;来源少的时候,它带来的配置成本可能高于收益。
授权与合规前提
OpenRelay 会读取本机已登录应用的凭据,并把订阅配额转发给其他工具使用,这一链路必须限定在你自己的账户和自有设备上。把别人的账号凭据接进来、代管多平台账户、或绕过供应商的额度与限速设计,可能违反对应平台的服务条款,轻则封号,重则涉及法律责任。它的设计取向是本机直连、不自建中转,但「技术可行」与「服务条款允许」是两件事,动手之前先确认每个来源的授权范围。仓库根目录提供了 DISCLAIMER.md、PRIVACY.md、COMMERCIAL-LICENSE.txt,README 也提示详见这两份文档,遇到边界不清的地方以它们为准。
适合谁
手上同时持有两个以上 AI 来源、又要在多个客户端之间来回切换的人,最值得试。尤其适合那些已经登录了 Claude Desktop、Kiro、Windsurf 之类的应用,却希望把这些额度喂给 Claude Code、Aider、Goose 使用的开发者。想要一个面板管住所有模型来源、还希望来源挂掉时自动切换的人,也能直接用上模型组功能。
只有单一供应商账户、平时也不折腾客户端配置的人,不需要它。在意代码完全自主可控、不愿引入任何商业授权组件的团队,需要先看清 MIT 框架与 Pro 功能的分界。对上游账号合规性有疑虑的人,建议先读完 DISCLAIMER 再决定要不要装。
焚评:这个项目的量化评分
本项目的选题来自 焚.com(一个按公开公式给 GitHub 项目打分的站)。焚评当前总分 9.0 分(满分 10)。下表是各维度的得分:
| 评分维度 | 得分 |
|---|---|
| 热度动量(权重 25%) | 10.0 / 10 |
| 开发活跃(权重 25%) | 7.0 / 10 |
| 社区响应(权重 15%) | 10.0 / 10 |
| 文档质量(权重 15%) | 8.2 / 10 |
| 发布节奏(权重 10%) | 10.0 / 10 |
| 风险控制(权重 10%) | 10.0 / 10 |
评分口径、权重与计算方式见焚.com 的评分方法页;数据随 GitHub 指标刷新,具体数值以焚.com 当前页面为准。本文正文为诀.com 独立撰写,评分数据由焚.com 授权引用。
内容核验说明
把多客户端共用各家 AI 配额这件事拆成了可核对的清单:默认端口、环境变量、路径前缀、平台差异、Pro 与 MIT 的分界都写清了。适合同时握着两个以上来源、又要频繁切客户端的人;只有单一供应商、或不愿引入商业授权组件的团队不必看。踩坑部分来自仓库 Issue 的他人反馈,不保证复现;凭据转发牵涉平台条款,动手前需自行确认授权范围。
项目指标(Star 2316、Fork 324、开放 Issue 1 个)与焚评分数由原文引用,诀.com 未独立验证;文中的数据来自原作者公开披露,诀.com 未独立验证;所列踩坑案例来自仓库 Issue 反馈,本站未复现,结果不保证重现。用户反馈摘要
根据仓库 Issue 来看,反馈集中在几类:安装与下载环节,macOS 出现 xattr 与 Code cache 警告,npm install -g openrelay 返回 E404,提交者确认官方未发布到 npmjs;Windsurf 明明已打开仍报「IDE is not running」,也有提交者反映有额度却显示配额耗尽;Cursor 点击启动显示成功但无页面,Claude Code 切换模型无效。另有提交者用 Clash Verge 与 v2rayN 时 gemini CLI 测试失败,以及「并未开源、管理多平台账户风险自担」的质疑。以上状态均为已解决。
基于该仓库公开 Issue 整理,只反映提交者报告的现象与诉求,不代表诀.com 立场,也不代表问题已被确认。项目来源与说明
开源项目:romgX(romgX)
本文由诀.com 编辑基于该项目的公开信息独立撰写,属原创解读,不是对项目文档的翻译或转载;文中提到的功能与参数以官方仓库为准,代码与文档版权归原作者所有。
查看项目仓库