CLI Proxy API 完全指南:统一多个 AI 服务的代理解决方案
发表于更新于
字数总计:1.8k阅读时长:8分钟 深圳
前言
在 AI 编程助手百花齐放的今天,开发者常常需要同时使用多个 AI 服务:Claude Code、Gemini CLI、OpenAI Codex 等。每个服务都有独立的认证方式、API 格式和调用方法,管理起来相当繁琐。
CLI Proxy API 正是为解决这个问题而生。它是一个开源代理服务器,提供统一的 OpenAI/Gemini/Claude 兼容 API 接口,让你通过单一端点访问所有 AI 服务。
项目地址:https://github.com/router-for-me/CLIProxyAPI
核心价值
- 统一接口:一套 API 访问所有 AI 模型
- OAuth 认证:无需 API Key,使用 OAuth 登录即可
- 负载均衡:多账户轮询,提高可用性
- 协议兼容:支持 Chat Completions、Response、Gemini、Claude 等多种协议
核心特性
支持的 AI 服务
| 服务 |
认证方式 |
特性 |
| Claude Code |
OAuth 登录 |
完整功能支持 |
| Gemini CLI |
OAuth 登录 |
多账户负载均衡 |
| OpenAI Codex |
OAuth 登录 |
GPT 模型访问 |
| Qwen Code |
OAuth 登录 |
通义千问模型 |
| iFlow |
OAuth 登录 |
集成支持 |
主要功能
- 流式和非流式响应
- 函数调用 / 工具支持
- 多模态输入(文本 + 图像)
- 模型别名映射
- 请求重试机制
- WebSocket 支持
安装部署
macOS
使用 Homebrew 一键安装:
1 2 3 4 5
| brew install cliproxyapi
brew services start cliproxyapi
|
Linux
一键安装脚本:
1
| curl -fsSL https://raw.githubusercontent.com/brokechubb/cliproxyapi-installer/refs/heads/master/cliproxyapi-installer | bash
|
Arch Linux (AUR):
1 2 3 4 5
| yay -S cli-proxy-api-bin
paru -S cli-proxy-api-bin
|
服务管理:
1 2 3 4 5
| systemctl --user start cli-proxy-api
systemctl --user enable cli-proxy-api
|
配置文件初始化:
1 2
| mkdir -p ~/.cli-proxy-api cp /usr/share/doc/cli-proxy-api-bin/config.example.yaml ~/.cli-proxy-api/config.yaml
|
Windows
从 GitHub Releases 下载最新版本,或使用桌面 GUI 应用。
Docker 部署
1 2 3 4
| docker run --rm -p 8317:8317 \ -v /path/to/config.yaml:/CLIProxyAPI/config.yaml \ -v /path/to/auth-dir:/root/.cli-proxy-api \ eceasy/cli-proxy-api:latest
|
Docker Compose:
1 2 3 4 5 6 7 8 9
| services: cli-proxy-api: image: eceasy/cli-proxy-api:latest ports: - "8317:8317" volumes: - ./config.yaml:/CLIProxyAPI/config.yaml - ./auth:/root/.cli-proxy-api restart: unless-stopped
|
源码编译
1 2 3 4 5 6 7 8 9 10 11 12
| git clone https://github.com/router-for-me/CLIProxyAPI.git cd CLIProxyAPI
go build -o cli-proxy-api ./cmd/server
go build -o cli-proxy-api.exe ./cmd/server
./cli-proxy-api
|
配置详解
配置文件使用 YAML 格式,默认位置为 ~/.cli-proxy-api/config.yaml。
基础配置
1 2 3 4 5 6 7 8 9 10
| host: "" port: 8317 debug: false logging-to-file: false
tls: cert: /path/to/cert.pem key: /path/to/key.pem
|
认证配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| api-keys: - "your-api-key-1" - "your-api-key-2"
auth-dir: ~/.cli-proxy-api
ws-auth: true
remote-management: allow-remote: false secret-key: "your-secret" disable-control-panel: false
|
Gemini 配置
1 2 3 4 5 6 7 8 9
| gemini-api-key: - api-key: "AIzaSy..." prefix: "test" base-url: "https://generativelanguage.googleapis.com" models: - name: "gemini-2.5-flash" alias: "gemini-flash" excluded-models: - "gemini-2.5-*"
|
Claude 配置
1 2 3 4 5 6 7 8
| claude-api-key: - api-key: "sk-atSM..." cloak: mode: "auto" strict-mode: false sensitive-words: - "API" - "proxy"
|
OpenAI 兼容配置
1 2 3 4 5
| openai-compatibility: - name: "openrouter" base-url: "https://openrouter.ai/api/v1" api-key-entries: - api-key: "sk-or-v1-..."
|
高级配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| routing: strategy: "round-robin"
request-retry: 3 max-retry-interval: 30s
proxy-url: "http://127.0.0.1:7890"
streaming: keepalive-seconds: 30
payload: default: - models: - name: "gemini-2.5-pro" params: "generationConfig.thinkingConfig.thinkingBudget": 32768
|
API 使用
服务启动后,默认监听 http://localhost:8317。
兼容端点
CLI Proxy API 提供多种兼容格式的端点:
| 端点 |
兼容格式 |
/v1/chat/completions |
OpenAI Chat Completions |
/v1/responses |
OpenAI Responses |
/v1beta/models |
Gemini API |
/v1/messages |
Claude API |
调用示例
OpenAI 格式调用:
1 2 3 4 5 6 7 8 9 10
| curl http://localhost:8317/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer your-api-key" \ -d '{ "model": "gemini-2.5-flash", "messages": [ {"role": "user", "content": "Hello!"} ], "stream": false }'
|
Python 调用:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| from openai import OpenAI
client = OpenAI( base_url="http://localhost:8317/v1", api_key="your-api-key" )
response = client.chat.completions.create( model="gemini-2.5-flash", messages=[ {"role": "user", "content": "用 Python 写一个快速排序"} ] )
print(response.choices[0].message.content)
|
管理 API
管理 API 基础路径:http://localhost:8317/v0/management
认证方式:
1 2 3 4
| Authorization: Bearer <management-secret-key>
X-Management-Key: <management-secret-key>
|
常用端点:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| curl -H "Authorization: Bearer <KEY>" \ http://localhost:8317/v0/management/config
curl -H "Authorization: Bearer <KEY>" \ http://localhost:8317/v0/management/usage
curl -H "Authorization: Bearer <KEY>" \ http://localhost:8317/v0/management/anthropic-auth-url
curl -H "Authorization: Bearer <KEY>" \ "http://localhost:8317/v0/management/gemini-cli-auth-url?project_id=<PROJECT_ID>"
curl -H "Authorization: Bearer <KEY>" \ http://localhost:8317/v0/management/auth-files
|
实战示例
多账户负载均衡
配置多个 Gemini 账户实现负载均衡:
1 2 3 4 5 6 7
| gemini-api-key: - api-key: "AIzaSy...account1" - api-key: "AIzaSy...account2" - api-key: "AIzaSy...account3"
routing: strategy: "round-robin"
|
模型别名映射
将复杂的模型名映射为简短别名:
1 2 3 4
| oauth-model-alias: gpt4: "gpt-4-turbo-preview" claude: "claude-3-opus-20240229" gemini: "gemini-2.5-pro"
|
调用时直接使用别名:
1 2
| curl http://localhost:8317/v1/chat/completions \ -d '{"model": "gemini", "messages": [...]}'
|
IDE 集成
VS Code 配置(settings.json):
1 2 3 4
| { "openai.apiKey": "your-api-key", "openai.baseUrl": "http://localhost:8317/v1" }
|
Cursor 配置:
在 Cursor 设置中将 API Base URL 设置为 http://localhost:8317/v1。
生态工具
CLI Proxy API 拥有丰富的生态系统:
| 工具 |
平台 |
说明 |
| vibeproxy |
macOS |
菜单栏应用,无需 API Key 使用 AI |
| ProxyPal |
macOS |
GUI 管理工具 |
| CodMate |
macOS |
SwiftUI 会话管理应用 |
| ProxyPilot |
Windows |
Windows 原生客户端 |
| Claude Proxy VSCode |
VSCode |
VSCode 扩展 |
| ZeroLimit |
Windows |
配额监控工具 |
| CPA-XXX Panel |
Web |
轻量级 Web 管理面板 |
常见问题
服务无法启动
检查配置文件格式是否正确:
1 2
| cat ~/.cli-proxy-api/config.yaml | python -c "import yaml,sys; yaml.safe_load(sys.stdin)"
|
OAuth 登录失败
- 确保网络可以访问对应服务
- 检查是否需要配置代理:
1
| proxy-url: "http://127.0.0.1:7890"
|
请求超时
调整重试配置:
1 2
| request-retry: 5 max-retry-interval: 60s
|
总结
CLI Proxy API 是一个功能强大的 AI 服务代理工具,它解决了多 AI 服务管理的痛点:
- 统一入口:一个端点访问所有 AI 模型
- 简化认证:OAuth 登录,无需管理多个 API Key
- 高可用:多账户负载均衡,自动重试
- 灵活配置:模型别名、请求修改、协议转换
无论你是个人开发者还是团队使用,CLI Proxy API 都能显著提升 AI 服务的使用体验。
相关链接: