手把手带你用上AI神器 - CLIProxyAPI(壹:项目介绍+Qwen实战)

由于该系列教程篇幅较长,因此我按主题拆分,大家可以点击目录快速跳转到感兴趣的篇章

CLIProxyAPI 是一款使用 Go 语言编写的开源 AI 代理工具。也许是因为名字朴实无华,许多人可能对它还很陌生。在遇到它之前,为了能“白嫖” Gemini 模型,我曾先后折腾过 AIStudioProxyAPI、AIStudio-Build-Proxy、Gemini-FastAPI 等多款反代工具,但它们或多或少都有些不尽如人意的地方。

直到我发现了 CLIProxyAPI 并深度使用了几个月,我可以肯定地说:无论是在性能、功能还是适用性上,它都是我用过最出色的 AI 代理工具,没有之一。称之为“神器”也毫不为过。

官方仓库地址https://github.com/router-for-me/CLIProxyAPI

它究竟能做什么?

软件功能特性 支持的模型
为 CLI 模型提供 OpenAI/Gemini/Claude/Codex 兼容的 API 端点 gemini-2.5-pro
新增 OpenAI Codex(GPT 系列)支持(OAuth 登录) gemini-2.5-flash
新增 Claude Code 支持(OAuth 登录) gemini-2.5-flash-lite
新增 Qwen Code 支持(OAuth 登录) gemini-2.5-flash-image-preview
新增 iFlow 支持(OAuth 登录) gpt-5
新增 Gemini Web 支持(通过 Cookie 登录) gpt-5-codex
支持流式与非流式响应 claude-opus-4-1-20250805
函数调用/工具支持 claude-opus-4-20250514
多模态输入(文本、图片) claude-sonnet-4-20250514
多账户支持与轮询负载均衡(Gemini、OpenAI、Claude、Qwen 与 iFlow) claude-sonnet-4-5-20250929
简单的 CLI 身份验证流程(Gemini、OpenAI、Claude、Qwen 与 iFlow) claude-3-7-sonnet-20250219
支持 Gemini AIStudio API 密钥 claude-3-5-haiku-20241022
支持 Gemini CLI 多账户轮询 qwen3-coder-plus
支持 Claude Code 多账户轮询 qwen3-coder-flash
支持 Qwen Code 多账户轮询 qwen3-max
支持 iFlow 多账户轮询 qwen3-vl-plus
支持 OpenAI Codex 多账户轮询 deepseek-v3.2
通过配置接入上游 OpenAI 兼容提供商(例如 OpenRouter) deepseek-v3.1
可复用的 Go SDK deepseek-r1
deepseek-v3
kimi-k2
glm-4.5
tstars2.0
以及其他 iFlow 支持的模型

简单来说,CLIProxyAPI 的核心优势包括:

  • 无需安装 Gemini CLI,即可将其授权转换为通用的 API Key,从而在任何应用中调用功能完整的 Gemini 2.5 Pro、Gemini 2.5 Flash、Gemini 2.5 Flash Lite 模型。当正式版模型配额用尽后,它会自动切换到 Preview 模型(如 gemini-2.5-pro-preview-05-06),基本能用足每天 1000 次的调用配额,轻松实现“Gemini 自由”。

  • 无需安装 Qwen Code,即可将其授权转换为通用的 API Key,在任何地方调用 Qwen3 Coder Plus、Qwen3 Coder Flash 模型,实现“Qwen3 Coder 自由”。

  • 无需安装 Codex,即可将其授权转换为通用的 API Key,在任何地方调用 GPT-5、GPT-5-Codex 模型。尤其在目前可以免费开设 Team 账户的活动下,轻松实现“GPT 自由”。

  • 将 Gemini 网页版转换为 API Key,在任何地方调用 Nano Banana 等网页版模型(需客户端支持。据网友分享,免费版 Gemini 网页账户每天可调用约 100 次,而 Gemini Pro 用户则高达 1000 次)。

  • 强大的负载均衡能力。CLIProxyAPI 支持将不同来源(无论是 API Key 还是 OAuth 授权)的多个账户整合在一起进行负载均衡轮询,这意味着你可以轻松地将调用配额翻倍。

  • 极低的资源消耗。值得一提的是,该程序对系统资源的消耗极低。程序本身仅 10MB 左右,启动时内存占用不到 10MB,长时间峰值内存占用也仅有 100MB 左右,几乎任何电脑都能流畅运行。

程序的使用非常简单。官方不仅提供了适用于各平台的二进制文件和 Docker 部署方式,还提供了 EasyCLI 和 WebUI,对新手十分友好。所有设置均通过 config.yaml 配置文件管理,且支持热重载——修改配置后即时生效,无需重启程序。完整的配置项解说详见 手把手带你用上AI神器 - CLIProxyAPI(配置详细解说)

实战教程:转换 Qwen Code 为 API Key

下面,我们以在 Windows 平台下将 Qwen Code 转换为 API Key 为例,演示 CLIProxyAPI 的具体使用方法。

  1. 下载并解压

    首先,从官方仓库下载预编译的可执行文件,并将其解压到任意文件夹。在本例中,我将其放在 Z:\CLIProxyAPI 目录下。我们只需要用到图中的两个文件。

  2. 编辑配置文件

    config.example.yaml 重命名为 config.yaml,然后用文本编辑器打开,仅需保留并修改以下基础配置项:

    port: 8317
    
    # 文件夹位置请根据你的实际情况填写
    auth-dir: "Z:\\CLIProxyAPI\\auths"
    
    request-retry: 3
    
    quota-exceeded:
      switch-project: true
      switch-preview-model: true
    
    api-keys:
    # Key请自行设置,用于客户端访问代理
    - "ABC-123456"
    
  3. 获取授权

    CLIProxyAPI 目录下打开终端,输入 cli-proxy-api --qwen-login 后回车。程序会自动打开浏览器,请在浏览器中登录你的 Qwen 账户并完成授权。

    完成授权后,回到终端,程序会尝试获取认证信息。成功后,会要求输入邮箱或昵称(如图中红色箭头所示)。这只是一个用于标识账户的别名,可以随意填写。我这里填的是 qwen-example。回车后,可以看到认证文件已成功生成,并保存到了配置文件 auth-dir 指定的位置。

    提示:如果系统没有自动弹出浏览器,请不必担心。手动复制终端中红框标出的网址,粘贴到浏览器中打开即可完成授权。

  4. 启动代理服务

    以上步骤完成了账户认证。现在,我们来正式启动代理服务。直接双击可执行文件 (cli-proxy-api.exe),出现以下窗口即代表启动成功。

  5. 在客户端中配置和测试

    至此,一切准备就绪。下面我们使用 Cherry Studio 来进行测试。

    • 在 Cherry Studio 中添加一个新的模型提供商。

    • 模型提供商类型可以选择除 Azure 之外的任意类型。这里我们以 OpenAI-Response 为例,供应商名称可自定义,例如 CLIProxyAPI

    • API密钥:填写我们在 config.yaml 中自己设置的 Key,本例中为 ABC-123456
    • API地址:填写我们本地服务的地址和端口。还记得配置文件中的端口号 8317 吗?这里我们填入 http://127.0.0.1:8317

    • 点击“管理模型”,你就可以看到通过代理加载的 Qwen Code 模型了。

    • 添加模型后,我们来测试一下。

可以看到,模型已成功返回消息。整个配置过程是不是很简单?

267 个赞

佬友太强了!

2 个赞

感谢教程 !

5 个赞

搭建成功后,自行上传Gemini cli的json文件以后,获取不到模型列表啥情况啊,佬

1 个赞

日志里显示什么?如果auth文件没问题的话,就会有模型注册的日志

2 个赞
[2025-10-06 21:01:58] [debug] [watcher.go:996] processing auth file 10: tonal-studio-473005-f5-1758606904.json
[2025-10-06 21:01:58] [debug] [watcher.go:996] processing auth file 11: valid-task-473203-d6-1758770918.json
[2025-10-06 21:01:58] [debug] [watcher.go:1008] auth directory scan complete - found 11 .json files, 11 readable
[2025-10-06 21:01:58] [debug] [watcher.go:607] loaded 11 file-based clients
[2025-10-06 21:01:58] [debug] [watcher.go:647] triggering server update callback before auth refresh
[2025-10-06 21:01:58] [debug] [reconcile.go:158] auth providers unchanged after config update
server clients and configuration updated: 11 clients (11 auth files + 0 GL API keys + 0 Claude API keys + 0 Codex keys + 0 OpenAI-compat)
[2025-10-06 21:01:58] [info] [watcher.go:653] full client load complete - 11 clients (11 auth files + 0 GL API keys + 0 Claude API keys + 0 Codex keys + 0 OpenAI-compat)
[2025-10-06 21:01:58] [info] [service.go:411] file watcher started for config and auth directory changes
[2025-10-06 21:01:58] [info] [service.go:417] core auth auto-refresh started (interval=15m0s)
[2025-10-06 21:01:59] [info] [updater.go:124] management asset updated successfully (hash=9714862e8f880d1abf85b2fdaf7347c4f092f6a6e8464ea67597889c20ac9021)
[2025-10-06 21:11:18] [warning] [gin_logger.go:55] [GIN] 2025/10/06 - 21:11:18 | 401 | 0s | 103.135.103.18 | GET "/v1/models"
[2025-10-06 21:22:05] [warning] [gin_logger.go:55] [GIN] 2025/10/06 - 21:22:05 | 401 | 0s | 103.135.103.18 | GET "/v1/models"
3 个赞

佬,能否参考这个 GitHub - coulsontl/qwen-code-api 添加tokendaoqo自动刷新以及状态展示,并且可以从web端直接发起授权申请跳转

3 个赞

刷新这个本来就有,所有使用oauth的供应商都有token自动刷新功能,包括claude、codex、gemini cli、qwen、iflow,都有自动刷新功能

token状态展示这个暂时没有,token状态我们认为用户可能并不关心

web端发起授权这个事情比较玄妙:

127.0.0.1(localhost、::1)访问的url,支持web端发起授权。

除此之外的地址需要使用配套的桌面客户端发起授权,因为除了qwen使用oauth2 device authorization flow,其他家都是callback flow

2 个赞

只有几个账户轮询用,还是希望可以看到token的状态的,如果哪一个掉了可以手动重新补,现在看不到token对应的账号也不知道是不是有效。关于web端callback,即使cli只支持localhost的回调,在回调回来以后我可以在浏览器里直接手动把地址里的localhost换成服务端ip就行了,这样就完全不需要记那个ssh加密隧道的命令了操作更加方便

3 个赞

涉及的问题很多,解释成本很高

:rofl:

之前我们也是这么想的,还是有很多人来问怎么操作。

毕竟很多人无法理解这个把连接主机名更换这个事情。

然后我们就搓了个客户端:

改造完以后,远程模式下,服务器就不开启callback端口了,所以你在远程模式下,下手改回调地址也没那功能了

远程模式下要么使用客户端,要么在本地生成好以后手工上传或者通过webui上传

至于token状态的显示,这个倒是可以优化一下

4 个赞

感谢佬的耐心解答 :+1:

1 个赞

佬,建议认证文件按照供应商进行分类,并展示解析之后的信息和状态;比如下面是我上传的一个iflow的认证文件,现在完全记不住是哪个号的了。并且我又上传了一个qwen的auth文件,发现qwen的文件把iflow的给覆盖了 :sweat_smile:

希望可以按这种样式的去管理,简洁方便明了

刚刚也尝试了一下使用ssh方式auth,第一步就被卡住了 :sweat_smile: docker compose exec cli-proxy-api /CLIProxyAPI -no-browser --qwen-login 提示 no configuration file provided: not found 还是希望佬可以保留web发起auth的能力让用户自己选择

2 个赞

建议你完整看一下教程,认证文件不是你安装了qwen什么的,然后复制出来的,而是要由cliproxyapi发起请求去获取的,每个认证文件前边都会有前缀,可以指示provider的类型

1 个赞

佬太强了,按照教程一步步完成第一2api的操作,教程里面有个图裂了,“ 直接双击可执行文件 (cli-proxy-api.exe ),出现以下窗口即代表启动成功。”这个地方的图裂开了,刷新也显示不了,其他完美。btw,纯菜鸡弱弱的额问下模型列表为什么只有两个corder模型,没有qwen的其他模型?

1 个赞

这个工具太好了!就是这个工具会有封号风险么?

1 个赞

因为Qwen Code只有这两个,现在推荐使用iFlow,模型更多

2 个赞

不能保证,但是至少我自己几个月用下来还是稳的

佬,我是docker部署的,按照readme发起认证请求时就报错了 docker compose exec cli-proxy-api /CLIProxyAPI -no-browser --qwen-login 提示 no configuration file provided: not found

1 个赞

你得先有配置文件

佬,配置文件已经映射到容器里了,控制台已经可以正常加载了