CLIProxyAPI 是一个把 Gemini CLI、Claude Code、OpenAI Codex、Grok Build 等 CLI/OAuth 能力封装成 OpenAI、Gemini、Claude、Codex 兼容 API 的代理服务。简单说,它可以把本地或多账号 CLI 登录能力,变成常见客户端和 SDK 可以调用的统一 API。
一、它能做什么?
- 提供 OpenAI / Gemini / Claude / Codex / Grok 兼容接口。
- 支持 Gemini、OpenAI Codex、Claude Code、Grok Build 等 OAuth 登录。
- 支持多账号轮询、负载均衡、流式响应、工具调用和多模态输入。
- 可以给 Cursor、Claude Code、Open WebUI、OpenAI SDK、各种兼容客户端提供统一 Base URL。
二、部署方式选择
CLIProxyAPI 常见部署方式有三种:直接运行二进制、Docker 部署、源码编译。个人 VPS 推荐 Docker 或二进制;开发者定制可以源码编译。
三、Docker 快速部署
官方文档和社区常用镜像会随版本变化,部署前建议以项目 GitHub / 官方文档为准。下面给出一个通用 Docker 部署模板,实际镜像名按你使用的版本替换。
mkdir -p ~/cliproxyapi && cd ~/cliproxyapi nano docker-compose.yml
services:
cliproxyapi:
image: eceasy/cli-proxy-api:latest
container_name: cliproxyapi
restart: always
ports:
- "8317:8317"
volumes:
- ./data:/app/data
- ./config:/app/config
environment:
- TZ=Asia/Shanghai
docker compose up -d docker compose logs -f
如果你使用的是项目 release 二进制,也可以把配置目录挂载到固定路径,便于升级时保留账号和配置。
四、二进制安装思路
二进制方式适合不想引入 Docker 的 VPS。基本流程是:下载 release、解压、写配置、创建 systemd 服务。
# 示例流程,版本号和文件名请以 GitHub Releases 为准 mkdir -p /opt/cliproxyapi cd /opt/cliproxyapi # 下载对应系统架构的 release # wget https://github.com/router-for-me/CLIProxyAPI/releases/download/vX.X.X/xxx-linux-amd64.tar.gz # tar xzf xxx-linux-amd64.tar.gz chmod +x cliproxyapi ./cliproxyapi --help
创建 systemd 服务示例:
sudo nano /etc/systemd/system/cliproxyapi.service
[Unit] Description=CLIProxyAPI Service After=network.target [Service] Type=simple WorkingDirectory=/opt/cliproxyapi ExecStart=/opt/cliproxyapi/cliproxyapi Restart=always RestartSec=5 Environment=TZ=Asia/Shanghai [Install] WantedBy=multi-user.target
sudo systemctl daemon-reload sudo systemctl enable --now cliproxyapi sudo systemctl status cliproxyapi sudo journalctl -u cliproxyapi -f
五、初始化账号和 OAuth 登录
CLIProxyAPI 的核心是把 CLI/OAuth 账号接入代理。不同后端的登录方式不同,通常会在本地或管理端触发 OAuth 授权流程。常见后端包括:
- Gemini CLI / AI Studio
- OpenAI Codex / ChatGPT OAuth
- Claude Code OAuth
- Grok Build OAuth
- 自定义 OpenAI-compatible 上游
登录完成后,服务会保存账号凭据,并在请求时按配置路由到对应后端。多账号场景下,可以设置轮询、别名、模型映射和 fallback。
六、OpenAI 兼容调用示例
配置完成后,客户端通常可以把 Base URL 指向 CLIProxyAPI。以下是 OpenAI Chat Completions 风格示例:
curl http://127.0.0.1:8317/v1/chat/completions \
-H "Authorization: Bearer sk-your-key" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-3-pro",
"messages": [
{"role": "user", "content": "你好,介绍一下 CLIProxyAPI"}
],
"stream": true
}'
如果客户端支持 OpenAI SDK,也可以这样配置:
from openai import OpenAI
client = OpenAI(
api_key="sk-your-key",
base_url="http://127.0.0.1:8317/v1"
)
resp = client.chat.completions.create(
model="gemini-3-pro",
messages=[{"role": "user", "content": "hello"}]
)
print(resp.choices[0].message.content)
七、反向代理 HTTPS
如果要给外部客户端使用,建议通过 Nginx/Caddy 暴露 HTTPS,不要直接开放裸端口。
server {
listen 80;
server_name cpa.example.com;
location / {
proxy_pass http://127.0.0.1:8317;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
八、接入 Open WebUI
在 Open WebUI 中添加 OpenAI-compatible 连接:
- Base URL:https://你的域名/v1
- API Key:CLIProxyAPI 中配置的访问密钥
- Model:填写 CLIProxyAPI 暴露的模型别名,例如 gemini-3-pro、claude-sonnet、gpt-5 等
九、常用运维命令
# Docker docker compose ps docker compose logs -f docker compose restart docker compose pull && docker compose up -d # systemd sudo systemctl status cliproxyapi sudo journalctl -u cliproxyapi -f sudo systemctl restart cliproxyapi
十、安全建议
- 管理端口尽量只监听 127.0.0.1 或放在内网。
- 公网访问必须加 HTTPS,并建议加 Cloudflare Access、Basic Auth 或 IP 白名单。
- OAuth 凭据目录要备份,但不要公开。
- 不同账号建议做分组和限流,避免单账号被打满。
- 不要把真实 API Key、OAuth token、配置文件发到公开仓库。
十一、总结
CLIProxyAPI 适合把多个 CLI/OAuth 账号统一包装成标准 API,尤其适合 AI 编程工具、多账号池和 OpenAI-compatible 客户端接入。部署时建议先本地或内网测试,确认账号登录、模型映射和调用链路稳定后,再通过 HTTPS 反代提供给外部客户端。