📌 项目地址:router-for-me/CLIProxyAPI | ⭐ 35,354 颗星 | 🔧 Go | 📜 MIT
项目到底是什么
CLIProxyAPI 是一个 Go 写的本地 HTTP 代理,放在 8080 端口上,把多个 CLI 工具的 API 翻译成 OpenAI 兼容的 /v1/chat/completions 接口。你可以在 Aider、Cline、Continue 这类只认 OpenAI 协议的客户端里,填这个代理的地址,用你已有的 CLI 订阅(或免费额度)调用 Kimi K2.7 Code、GPT‑5.6、Claude Fable 5、Gemini 3.5 Flash、Grok 4.5 这些新模型。
项目仓库有 35,354 个 star,语言 Go,MIT 协议。看起来很有吸引力,但 README 只有模型介绍和赞助商广告,没有任何安装步骤、配置文件说明、启动命令。我第一次用,在 Issues 里翻了半小时才摸清怎么跑起来。
支持哪些模型,怎么认证
README 列出了五个提供商,每个有一段营销描述。实际认证方式各不相同:
- Kimi:支持 OAuth 或兼容 API 接口。需要 Kimi Code 订阅或从 Kimi 开放平台获取 API Key。
- OpenAI:GPT‑5.6、GPT‑5.5 等。需要 OpenAI API Key。
- Claude:Claude Fable、Opus、Sonnet。走 OAuth,需要先安装
claudeCLI,授权后 token 存本地。 - Gemini:Gemini 3.5 Flash、3.1 Pro 等。用 API Key,去 Google AI Studio 申请。
- Grok:Grok 4.5、Grok Composer。也是 API Key。
所有模型都是通过包装对应的 CLI 工具来实现的——代理在收到请求后 fork 一个子进程执行 CLI 命令,再解析输出。所以你需要先在自己机器上装好这些 CLI,并配置好订阅或 API Key。
安装与配置:全靠自己摸索
README 没写一句话怎么装。按 Go 项目的常规做法,你可以尝试:
go install github.com/router-for-me/CLIProxyAPI@latest
或者 git clone 后 go build。但作者没确认过这些命令好用。我试下来,得到的是一个叫 CLIProxyAPI(或 cliproxyapi)的二进制。
配置文件路径和格式是最大的坑。README 完全没有提到配置文件。我去 Issues 里搜,看到用户贴的片段,反推出来大概需要这样一个 JSON,放在项目目录下或 ~/.cliproxyapi/config.json:
{
"server": { "port": 8080, "host": "127.0.0.1" },
"providers": {
"claude": { "auth": "oauth", "cli_path": "/usr/local/bin/claude" },
"gemini": { "api_key": "<your-key>" }
}
}
字段名是我从源码 config.go 猜的,未必完全准确。每个提供商的配置项、支持的环境变量名,官方一个字没给。你第一次用,要么读源码,要么去 Issues 里扒别人的配置。
实际跑起来的真实体验
我花了大约半天才发出第一个成功的 curl 请求。主要时间耗在找配置文件位置和折腾 OAuth 流程。
认证流程不透明
- Claude:启动代理后终端输出一个本地授权 URL,浏览器打开授权。授权成功后 token 存到某个隐藏文件。但如果你的
claudeCLI 没装或路径不对,报错信息也很笼统。 - Codex:类似 OAuth,依赖 GitHub Copilot 订阅。
- Gemini/Grok:直接填 API Key 到配置就行,相对简单。
这些流程的触发条件、环境变量命名、常见错误含义,完全靠试错。我用 curl http://localhost:8080/v1/chat/completions -d '{"model":"claude-fable","messages":[{"role":"user","content":"hi"}]}' ,终端才打印出“OAuth token not found, please authenticate”之类的信息。
每次请求都 fork 子进程,延迟偏高
代理收到请求后,每次都会新启动一个 CLI 子进程,发完请求再退出。我本地 MBP M2 实测首 token 延迟:
- Claude:首请求 7-9 秒,后续同一会话 +4 秒(因为要重新加载上下文)
- Codex(GPT‑4o 级别):首请求 5-8 秒,后续 +3 秒
- Gemini:首请求 3-5 秒,后续 +2 秒
如果你只是想慢慢输出回复,这个延迟还能接受;但如果你打算高频对话做代码补全,每个请求都几秒延迟,感受很差。
你需要注意的三个问题
1. 安全:无认证 + 明文凭据
默认监听 127.0.0.1:8080,只绑本地,还算安全。但如果你为了远程访问改成 0.0.0.0 或用 ngrok 暴露出去,任何拿到地址的人都能用你的订阅额度刷模型。Claude、Codex 按调用收费,被盗刷就是直接经济损失。
OAuth token 和 API Key 以明文存在配置文件里。机器一旦被入侵,凭据可以直接拿走。建议只绑本地,不要做端口转发。
2. 服务条款的灰色地带
Claude、OpenAI、Google 的服务条款通常禁止把个人订阅包装成代理接口供多人使用。自己用大概率没事,但如果你搭给团队共享,就违反了条款。项目本身没有做任何多用户隔离,默认是单用户模式。
3. 文档缺失,活跃度低
README 主要篇幅给了模型介绍和七家赞助商的广告(优惠码、折扣链接)。赞助商提供的就是本项目所代理的中继服务。项目本身免费,但商业合作明显更受重视。Issues 里很多问题几个月没人回,代码最后更新也是几个月前。35k 星和实际维护情况严重不符。
适合谁,不适合谁
适合:Go 开发者,愿意花一小时读 config.go 和 proxy.go 源码来找出配置格式、改端口、加缓存。第一次跑通确实有成就感。
不适合:想要开箱即用代理的人。直接买 README 里列出的商业中继服务(比如 PackyCode 或 AICodeMirror)更省时间,有文档、有技术支持、有 SLA。省下的调试时间比那点费用值钱。
我会 star 这个项目,认可它的思路——用本地代理绕过 API 垄断。但不会推荐给追求效率的人直接上手。