基础配置
配置文件
服务器默认使用位于项目根目录的 YAML 配置文件(config.yaml)。您可以使用 --config 标志指定不同的配置文件路径:
bash
./cli-proxy-api --config /path/to/your/config.yaml配置文件示例
yaml
# 服务器端口
port: 8317
# 管理 API 设置
remote-management:
# 是否允许远程(非localhost)访问管理接口。为false时仅允许本地访问(但本地访问同样需要管理密钥)。
allow-remote: false
# 管理密钥。若配置为明文,启动时会自动进行bcrypt加密并写回配置文件。
# 所有管理请求(包括本地)都需要该密钥。
# 若为空,/v0/management 整体处于 404(禁用)。
secret-key: ""
# 当设为 true 时,不下载管理面板文件,/management.html 将直接返回 404。
disable-control-panel: false
# 身份验证目录(支持 ~ 表示主目录)。如果你使用Windows,建议设置成`C:/cli-proxy-api/`。
auth-dir: "~/.cli-proxy-api"
# 请求认证使用的API密钥
api-keys:
- "your-api-key-1"
- "your-api-key-2"
# 启用调试日志
debug: false
# 为 true 时将应用日志写入滚动文件而不是 stdout
logging-to-file: true
# 为 false 时禁用内存中的使用统计并直接丢弃所有数据
usage-statistics-enabled: true
# 代理URL。支持socks5/http/https协议。例如:socks5://user:[email protected]:1080/
proxy-url: ""
# 请求重试次数。如果HTTP响应码为403、408、500、502、503或504,将会触发重试。
request-retry: 3
# 配额超限行为
quota-exceeded:
switch-project: true # 当配额超限时是否自动切换到另一个项目
switch-preview-model: true # 当配额超限时是否自动切换到预览模型
# 如果设置为true,则为 WebSocket API(/v1/ws)启用身份验证。
ws-auth: false
# Gemini API 密钥
gemini-api-key:
- api-key: "AIzaSy...01"
base-url: "https://generativelanguage.googleapis.com"
headers:
X-Custom-Header: "custom-value"
proxy-url: "socks5://proxy.example.com:1080"
- api-key: "AIzaSy...02"
# Codex API 密钥
codex-api-key:
- api-key: "sk-atSM..."
base-url: "https://www.example.com" # 第三方 Codex API 中转服务端点
proxy-url: "socks5://proxy.example.com:1080" # 可选:针对该密钥的代理设置
# Claude API 密钥
claude-api-key:
- api-key: "sk-atSM..." # 如果使用官方 Claude API,无需设置 base-url
- api-key: "sk-atSM..."
base-url: "https://www.example.com" # 第三方 Claude API 中转服务端点
proxy-url: "socks5://proxy.example.com:1080" # 可选:针对该密钥的代理设置
# OpenAI 兼容提供商
openai-compatibility:
- name: "openrouter" # 提供商的名称;它将被用于用户代理和其它地方。
base-url: "https://openrouter.ai/api/v1" # 提供商的基础URL。
# 持久化格式:支持每密钥代理配置
api-key-entries:
- api-key: "sk-or-v1-...b780"
proxy-url: "socks5://proxy.example.com:1080" # 可选:针对该密钥的代理设置
- api-key: "sk-or-v1-...b781" # 不进行额外代理设置
# 兼容说明:旧字段 api-keys 会在加载时自动迁移为 api-key-entries,并在保存时移除。
models: # 提供商支持的模型。或者你可以使用类似 openrouter://moonshotai/kimi-k2:free 这样的格式来请求未在这里定义的模型
- name: "moonshotai/kimi-k2:free" # 实际的模型名称。
alias: "kimi-k2" # 在API中使用的别名。
payload: # 可选的 payload 配置
default: # 默认规则:仅在 payload 中对应字段缺失时才写入。
- models:
- name: "gemini-2.5-pro" # 支持通配符(例如 "gemini-*")
protocol: "gemini" # 限定匹配到指定协议,可选:openai、gemini、claude、codex
params: # JSON 路径(gjson/sjson 语法)到值的映射
"generationConfig.thinkingConfig.thinkingBudget": 32768
override: # 覆盖规则:总是写入字段并覆盖已有值。
- models:
- name: "gpt-*" # 支持通配符(例如 "gpt-*")
protocol: "codex" # 限定匹配到指定协议,可选:openai、gemini、claude、codex
params: # JSON 路径(gjson/sjson 语法)到值的映射
"reasoning.effort": "high"