大家好,我是帅进超,曾参与并主导过 Apache APISIX 、CNCF APIOAK 、Orange 等 API 网关的开发。最近我在做一个新项目 — Nyro,一个专为 Agent 设计的原生 AI 网关。
OpenAI 、Anthropic 、Google 等各家一线 LLM 厂商都提供了自家的 AI Coding Agent —— Codex CLI 、Claude Code 、Gemini CLI 且迭代速度之快,几乎以周为单位在刷新,上周还是新功能,这周就已经全部成为了标配。
厂商不计成本的投入 Agent 的开发,这背后共同逻辑是:把开发者锁定在自家的模型生态内,完成从工具到模型的端到端闭环。而数据交互技术协议就是锁定工具与模型的一种重要手段,Claude Code 只走 Anthropic 协议,Codex CLI 绑定 OpenAI Responses API 协议,Gemini CLI 依赖 Google 自家的 GenerateContent 协议,工具越好用,对原厂模型的依赖就越深,迁移成本也越高。
虽然各大 LLM 厂商都提供了功能强大、生态完善的 CLI 工具,但国内开发者来说,带来了几个现实问题:
Anthropic 、OpenAI 、Google 在国内均无法直接访问,需要代理,Anthropic 更是对国内访问严格限制;原厂旗舰模型的 API 百万 Token 输出价格均在 20 美元左右,开发场景的高强度使用成本是必须要考虑的问题。相比之下,国内的 DeepSeek 、GLM 、Kimi 、MiniMax 在价格和访问上有明显优势,部分模型的性能已经相当可观。
好消息是,国内的 GLM (智谱)、Kimi (月之暗面)、MiniMax 都陆续跟进,提供了 OpenAI 兼容协议和 Anthropic 协议,接入 Claude Code 这类工具在技术上已经没有障碍。
坏消息是,各家推出的 Coding Plan 普遍有比较严格的限速和配额限制。真正重度使用下来,很容易碰到 429 报错、响应变慢、或者单日配额跑完等问题,用起来体验大打折扣。
Codex CLI 走 OpenAI Responses API,Gemini CLI 走 Google GenerateContent ——这两套都是各家相对较新的接口规范。而目前国内主流模型提供商( DeepSeek 、GLM 、Kimi 、MiniMax 等)只跟进实现了 OpenAI Chat Completions 兼容层。这意味着,即使你有这些模型的 API Key ,也无法直接把它们接入 Codex CLI 和 Gemini CLI 。
Claude Code 用 Anthropic 协议,Codex CLI 用 Responses API 协议,Gemini CLI 用 Gemini GenerateContent 协议。想把某个模型同时接入这三个工具,要么自己写协议转换程序,逐一修改各工具的配置文件 —— 格式不同、路径不同,换个模型还得重来一遍。
Nyro 是一个桌面原生的 AI 网关。 它让 Claude Code 、Codex CLI 、Gemini CLI 等任意 AI 工具,无需改动任何配置,就能无缝接入 100+ LLM 提供商。Nyro 实现了 OpenAI 、Anthropic 、Gemini 等主流协议的毫秒级协议重写和跨协议工具调用适配。在此基础上,还提供负载均衡、语义缓存、访问控制和用量监控等能力。
Claude Code · Codex CLI · Gemini CLI · OpenCode
OpenAI SDK · Anthropic SDK · Gemini SDK
Any HTTP API Client
↓
Nyro AI Gateway
(localhost:19530)
↓
OpenAI · Anthropic · Google · DeepSeek
MiniMax · xAI · Zhipu · Ollama · ...
GitHub: https://github.com/NYROWAY/NYRO
场景:把 DeepSeek V3 同时接入 Claude Code 、Codex CLI 、Gemini CLI
# 第一步:自己实现或找一个 Anthropic Messages → OpenAI Completions 的协议转换服务
# 第二步:改 Claude Code 配置
vim ~/.claude/settings.json
# 第三步:自己实现或找一个 OpenAI Responses → OpenAI Completions 的协议转换服务
# 第四步:改 Codex CLI 配置
vim ~/.codex/auth.json
vim ~/.codex/config.toml
# 第五步:自己实现或找一个 Google GenerateContent → OpenAI Completions 的协议转换服务
# 第六步:改 Gemini CLI 配置
vim ~/.gemini/.env
vim ~/.gemini/settings.json
# 三个工具,三套协议,五个配置文件,格式不同、路径不同,换个模型还得重来一遍。
第一步:Providers → New ,填入 DeepSeek 的 Base URL 和 API Key
第二步:Routes → New ,设置虚拟模型名,选择 DeepSeek 作为目标
第三步:Connect → 选择 Claude Code / Codex CLI / Gemini CLI ,点击 Sync
后续更换模型或提供商,只需在路由配置中修改目标即可,客户端无需做任何调整。
三个工具、三套协议、五个配置文件 → 三步操作、一次同步、客户端零改动。
macOS (推荐)
brew tap nyroway/nyro
brew install --cask nyro
其他平台
# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/nyroway/nyro/master/scripts/install/install.sh | bash
# Windows (PowerShell)
irm https://raw.githubusercontent.com/nyroway/nyro/master/scripts/install/install.ps1 | iex
也可以直接从 GitHub Releases 下载对应平台的安装包,支持 macOS / Windows / Linux ,Intel 和 ARM 全覆盖。
安装完成后启动应用:

点击 提供商 → 新增提供商,通过快捷选项选择目标提供商。可选供应商已预设基础配置,只需填写名称和 API Key,点击创建即可。
如果厂商的 Base URL 需要代理访问,可以在「系统设置 → 代理」中开启代理转发。

完成提供商创建后,点击 路由 → 新增路由,填写名称、虚拟模型 ID,选择目标提供商,点击创建即可。
路由支持以下进阶能力:

完成路由创建后,点击 接入 → 工具接入 → 选择工具 → 同步配置。
Nyro 会自动检测本机已安装的 AI 工具,生成对应的配置文件并写入正确路径,原配置自动备份。

同步完成后,打开终端启动对应工具,可以看到模型 ID 已更新为 Nyro 虚拟模型 ID ,Vibe Coding 开始。

如果你是通过 SDK 或 HTTP 直接调用,点击 接入 → 代码接入 → 选择协议 → 选择路由 → 复制代码,即可获取对应语言的示例代码。

打开终端 -> 粘贴代码,即可进行验证。

Nyro 除桌面客户端外,同时支持服务器端部署,适合团队共享或生产环境使用。
从 GitHub Releases 下载对应平台架构的二进制文件:

./nyro-server-linux-x86_64 \
--storage-backend postgres \
--postgres-dsn "postgres://user:pass@host:5432/db"
启动后通过 http://127.0.0.1:19531 访问控制台,通过 http://127.0.0.1:19530 访问接入端点。
# config.yaml
providers:
- name: openai
endpoints:
openai:
base_url: https://api.openai.com/v1
api_key: sk-xxx
routes:
- name: gpt-4o
vmodel: gpt-4o
targets:
- provider: openai
model: gpt-4o
./nyro-server-linux-x86_64 --config config.yaml
Standalone 模式不启动控制台,启动后直接通过 http://127.0.0.1:19530 访问接入端点。
启动后可通过以下方式验证三种协议均已正常工作:
OpenAI Completions
curl http://localhost:19530/v1/chat/completions \
-H "Authorization: Bearer sk-00000000000000000000000000000000" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o",
"messages": [{"role": "user", "content": "Hello"}]
}'
Anthropic Messages
curl http://localhost:19530/v1/messages \
-H "x-api-key: sk-00000000000000000000000000000000" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "Hello"}]
}'
Google GenerateContent
curl http://localhost:19530/v1beta/models/gpt-4o:generateContent \
-H "x-goog-api-key: sk-00000000000000000000000000000000" \
-H "Content-Type: application/json" \
-d '{
"contents": [{"role": "user", "parts": [{"text": "Hello"}]}]
}'
Nyro 目前还处于早期阶段,还有很多功能想做、还有很多细节值得打磨。
如果你在使用过程中遇到了问题,或者对 AI 网关有任何想法和建议,欢迎直接来留言评论或者去 GitHub 提 Issue 都行,我都会认真看并回复。
如果觉得这个工具对你有帮助,去 GitHub 点个 Star 是对开发者最直接的支持。
1
Zoozy 20 小时 44 分钟前
支持一个
|
2
shuaijinchao OP @Zoozy 多谢
|
3
Hansah 20 小时 31 分钟前
那岂不是可以用 codex 接入薅来的几千个 grok key 了
|
4
shuaijinchao OP @Hansah 可以使用负载均衡在同一个路由里面接入多个提供商
|
5
vpjacob 20 小时 9 分钟前
ai 写的
ai 时代有必要说这么细吗。 |
6
bgm004 20 小时 2 分钟前
已 Star ,下午试试看
|
7
Ritter 19 小时 59 分钟前
对比 ccswitch 优势是什么
|
8
bgm004 19 小时 37 分钟前
Received message_stop without a current message
-------------- 刚刚试了一下,拿 nvidia 试的。。。 |
9
shuaijinchao OP @bgm004 多谢
|
10
shuaijinchao OP @Ritter Nyro 是一个 AI Gateway ,ccswitch 是一个工具配置的聚合工具,它们本质的区别 ccswitch 只为工具提供服务,而 Nyro 不仅可以在桌面客户端为个人用户提供协议转换的能力,还具备商业环境下提供生产级别的大规模 Prompt 调度能力。如果只在本地使用 ccswitch 已经做的很好了。
|
11
nohaneww 18 小时 1 分钟前
对比 CliProxyApi 有什么不同点或者说优势呢
|
12
shuaijinchao OP @nohaneww CliProxyApi 跟楼上那位兄弟说的 ccswitch 在软件属性上差不多,CliProxyApi 的优势是可以通过 oauth 的方式模拟客户端工具将 api 桥接到 CliProxyApi 中,由 CliProxyApi 转发并维护服务端的请求及认证状态,我理解它的定位更偏向客户端代理,而不是 AI Gateway ,所以你会看到 Nyro 中不止提供了最基础的协议转换,还提供了语义缓存、动态负载均衡、指标、审计等功能;考虑到个人、团队的使用场景 Nyro 还提供桌面版、Servser 版本全平台各指令集架构的支持。
|
13
keepfun 17 小时 8 分钟前
为啥不起一个 响亮 和 ai router 关联度高的名字啊 这个太绕口了
|
14
nh1010 16 小时 43 分钟前
暂时没有 oauth
|
15
nohaneww 16 小时 29 分钟前
@shuaijinchao #12 我下载试试看
|
16
shuaijinchao OP @keepfun 兄弟这是历史原因,Nyro 的 base 是我之前开发的 APIOAK 项目,它的技术栈 Nginx + Rust + OpenResty 就取了每个技术栈一个字母作为项目名字,后来因为 AI Gateway 和 API Gateway 在底层处理逻辑上的差异比较大就全面转向了 Rust ,名字也保留下来了没有变更。
|
17
shuaijinchao OP @nh1010 你好兄弟,oauth 已经在支持中了,预计这周 codex 的 oauth 就会上线。
|
18
shuaijinchao OP @nohaneww 好的,这个项目刚刚开始起步,还有很多不完善的地方,相信有大家的洞见,可以把它变得越来越完善。
|
19
imnpc 16 小时 20 分钟前
没有 OAuth openAI 的 plus 没办法接入了吧
|
20
shuaijinchao OP @imnpc 是的兄弟,功能已经在 PR 阶段了 https://github.com/nyroway/nyro/pull/58 ,合并发版后就可以使用了。
|
21
zhwithsweet 15 小时 22 分钟前
|
22
shuaijinchao OP @zhwithsweet 你好兄弟,接入链路是:Codex → Nyro → z.ai
Codex 只需要把请求地址指向 Nyro ,Nyro 负责中间的协议转换 —— 收到 Codex 发来的请求后,自动转成 z.ai 能识别的格式发出去,拿到响应后再转回 Codex 能理解的格式返回。整个过程对 Codex 完全透明,只要配置一次就好。 |
23
waityan 15 小时 8 分钟前
要不搞个群?没看懂怎么用的
|
24
BenCoper 15 小时 7 分钟前
|
25
zhwithsweet 15 小时 6 分钟前
@shuaijinchao 听起来非常 nice ,晚上试试
|
26
shuaijinchao OP @zhwithsweet 好的,有问题欢迎反馈。
|
27
shuaijinchao OP @BenCoper 没有了解过这个项目,看起来项目很不错。
|
28
shuaijinchao OP @waityan 你好兄弟,说的有道理,可以先加我 wx:xincps ,我来拉群。
|
29
jy01264313 14 小时 20 分钟前
单独买 api token 都非常贵,之前用 gpt-5.3-codex 一天工作日经常 70-100 刀,但是现在基本都订阅 plus 会员,20 刀一个月,便宜很多。
用了 plus 会员后,怎么配置这些 proxy 的代理呢? |
30
teaguexiao 14 小时 5 分钟前
Claude Code 通过设置 ANTHROPIC_BASE_URL 和 ANTHROPIC_API_KEY 就能接国产模型,但 Codex / Gemini 的协议转换确实麻烦,这个自动同步配置很实用。
|
31
shuaijinchao OP @jy01264313 你好兄弟,这个需求正在 PR 中: https://github.com/nyroway/nyro/pull/58 ,合并发版后即可支持。PR 合并后支持把 ChatGPT Plus 账号作为一个供应商接入 Nyro ,创建一条路由,Nyro 会自动把请求转发给对应账号。如果同时订阅了多个 Plus 账号,还可以把它们组成一个账号池,通过负载均衡自动分配请求,多个账号的额度叠加使用。目前一个朋友在通过 Nyro 这样使用,上面的 PR 就来自这个朋友。希望这个回答对你有帮助。
|
32
shuaijinchao OP @teaguexiao 是的兄弟,Claude Code 协议大部分国产模型都已经支持了,但如果通过 Nyro 接入,可以获得负载均衡(将多家厂商组成一个额度池,解决配额限度等问题)、请求审计能力(检查 Agent 每一条请求细节及消耗)、语义缓存(降低调用成本和优化客户端体验)等功能。
|
33
jukanntenn 11 小时 56 分钟前
类似项目挺多的,目前在用的 axonhub
|
34
shuaijinchao OP @jukanntenn 社区中确实有很多优秀的项目,找到满足自己需求的产品用下去就可以。
|
35
jy01264313 10 小时 40 分钟前
@shuaijinchao 好的感谢
|