AIstudioProxyAPI 常用 CLI 命令与工具详解
AIstudioProxyAPI v4.1.2_py 命令详解:launch_camoufox.py 全参数实测、模式与端口组合验证、camoufox fetch、systemd 管理与 OpenAI 兼容 API 调用及生命周期判断。
AIstudioProxyAPI 常用 CLI 命令与工具详解
目标:系统梳理 AIstudioProxyAPI v4.1.2_py 的命令行使用——
launch_camoufox.py启动器全参数详解(含真实--help回显)、参数组合实测、camoufox 辅助工具、systemd 服务管理与 OpenAI 兼容 API 调用命令。本项目不提供独立 CLI 二进制,命令面由「启动器脚本参数 + curl API 调用 + 系统服务管理」三部分构成,全部命令在 Ubuntu 22.04 实测取证。
一、环境信息
- 操作系统:Ubuntu 22.04(x86_64)
- AIstudioProxyAPI:v4.1.2_py(2026-04-18 发布),安装路径
/opt/AIstudioProxyAPI - Python 3.10.12 + Poetry 2.5.1(命令经
poetry run前缀执行) - Camoufox 浏览器:
/root/.cache/camoufox/(经camoufox fetch安装,约 2.4GB) - 实测端口:主 API 2048/8150、Camoufox 调试端口 9222
- 项目命令入口清单:
launch_camoufox.py(主启动器)、server.py(服务本体,见 4.6)、camoufox(浏览器管理)、simple_start.sh(快捷脚本)
二、工具概览
| 命令/工具 | 定位 | 典型用法 |
|---|---|---|
poetry run python launch_camoufox.py | 主启动器:拉起 Camoufox 浏览器 + FastAPI 服务 | 日常启停、首次登录、无头常驻 |
poetry run python server.py | FastAPI 服务本体(不管理浏览器) | 仅连接外部浏览器实例时使用 |
poetry run camoufox fetch | Camoufox 浏览器本体下载 | 安装/重装浏览器 |
curl | OpenAI 兼容 API 调用与健康检查 | /health、/v1/models、/v1/chat/completions |
systemctl | systemd 服务托管 | 生产常驻启停 |
poetry run pytest | 项目测试套件 | 开发/改码后回归 |
命令间关系:launch_camoufox.py 是唯一推荐的完整入口,它内部完成「依赖检查 → 端口检查 → 启动 Camoufox 子进程 → 注入 CAMOUFOX_WS_ENDPOINT → 启动 FastAPI(server.py 的 app)」全链路;server.py 只是链路的最后一段,单独运行必须自备浏览器端点。
三、前置条件
- 已按《AIstudioProxyAPI 安装指南》完成安装:Poetry 依赖就位、
camoufox fetch已执行、系统 GUI 库已补齐; - headless 模式需要
auth_profiles/active/存在有效认证 JSON(首次用--debug登录生成;无认证时的实测报错见安装指南 4.8 排障实录); - 本篇全部命令默认在项目目录执行:
cd /opt/AIstudioProxyAPI。
四、各工具详解
4.1 launch_camoufox.py 参数总览与 --help 实测
先看帮助(真实回显,实测照抄;日志头尾为启动器初始化输出):
poetry run python launch_camoufox.py --help
usage: launch_camoufox.py [-h] [--server-port SERVER_PORT]
[--stream-port STREAM_PORT] [--helper HELPER]
[--camoufox-debug-port CAMOUFOX_DEBUG_PORT]
[--debug | --headless | --virtual-display]
[--active-auth-json ACTIVE_AUTH_JSON]
[--auto-save-auth] [--save-auth-as SAVE_AUTH_AS]
[--auth-save-timeout AUTH_SAVE_TIMEOUT]
[--exit-on-auth-save]
[--auto-auth-rotation-on-startup AUTO_AUTH_ROTATION_ON_STARTUP]
[--server-log-level {DEBUG,INFO,WARNING,ERROR,CRITICAL}]
[--server-redirect-print] [--debug-logs]
[--trace-logs]
Launcher for Camoufox browser simulation and FastAPI proxy server.
options:
-h, --help show this help message and exit
--server-port SERVER_PORT
Port number for FastAPI server (Default: 2048)
(default: 2048)
--stream-port STREAM_PORT
Port for stream proxy server. Provide --stream-port=0
to disable. Default: 3120 (default: 3120)
--helper HELPER Helper server getStreamResponse endpoint (e.g.,
http://127.0.0.1:3121/getStreamResponse). Provide
empty string (e.g., --helper='') to disable. Default:
(default: )
--camoufox-debug-port CAMOUFOX_DEBUG_PORT
Debug port number for internal Camoufox instance
(Default: 9222) (default: 9222)
--debug Start debug mode (browser UI visible, allows
interactive auth) (default: False)
--headless Start headless mode (no browser UI, requires saved
auth file) (default: False)
--virtual-display Start headless mode with virtual display (Xvfb, Linux
only) (default: False)
--active-auth-json ACTIVE_AUTH_JSON
[Headless/Debug Optional] Path to active auth JSON file (in auth_profiles/active/ or saved/, or absolute path).
If not provided, headless mode uses latest in active/, debug mode prompts or uses none. (default:
None)
--auto-save-auth [Debug Mode] Automatically prompt to save new auth
state after successful login if no auth file was
loaded. (default: False)
--save-auth-as SAVE_AUTH_AS
[Debug Mode] Specify filename for saving new auth file
(without .json suffix). (default: None)
--auth-save-timeout AUTH_SAVE_TIMEOUT
[Debug Mode] Timeout (seconds) for auto-save auth or
filename input. Default: 30 (default: 30)
--exit-on-auth-save [Debug Mode] Automatically close launcher and all
processes after successful auth save via UI.
(default: False)
--auto-auth-rotation-on-startup AUTO_AUTH_ROTATION_ON_STARTUP
Enable auto-rotation to saved/emergency profiles on
startup if active profile is missing (true/false).
(default: false)
--server-log-level {DEBUG,INFO,WARNING,ERROR,CRITICAL}
Log level for server.py. Default: INFO (default: INFO)
--server-redirect-print
Redirect print output in server.py to its logging
system. Default is not to redirect so input() prompts
in debug mode are visible. (default: False)
--debug-logs Enable DEBUG level detailed logs inside server.py (env
DEBUG_LOGS_ENABLED). (default: False)
--trace-logs Enable TRACE level more detailed logs inside server.py
(env TRACE_LOGS_ENABLED). (default: False)
参数按功能域解读:
| 功能域 | 参数 | 说明 |
|---|---|---|
| 模式选择(三选一互斥) | --debug / --headless / --virtual-display | 浏览器可见调试 / 无头常驻 / Xvfb 虚拟显示无头 |
| 端口 | --server-port、--stream-port、--camoufox-debug-port | 主 API 端口(默认 2048)、流代理端口(0=关闭)、浏览器调试端口(默认 9222) |
| 认证 | --active-auth-json、--auto-save-auth、--save-auth-as、--auth-save-timeout、--exit-on-auth-save | 指定认证文件、自动保存、保存命名、保存超时、保存后退出 |
| 轮转 | --auto-auth-rotation-on-startup | 启动时 active 缺失则自动轮转到 saved/emergency 池 |
| 日志 | --server-log-level、--debug-logs、--trace-logs、--server-redirect-print | 级别与详细度控制 |
| 外部 helper | --helper | 指定外部流式响应端点,空串禁用 |
4.2 模式组合实测:指定端口 + 关闭流代理
换端口并关闭流式代理的组合(2048 被占用时常用),实测启动(认证未配置,预期止步于认证检查,但端口参数生效可从日志确认):
poetry run python launch_camoufox.py --headless --server-port 8150 --stream-port 0
实测日志关键行(照抄):
--- Step 2: Check if FastAPI server target port (8150) is in use ---
✅ Port 8150 (host 0.0.0.0) is currently available.
--- Step 5: Start Integrated FastAPI Server (Listening on: 8150) ---
验证结论:--server-port 同时作用于端口检查(Step 2)与 FastAPI 监听(Step 5);--stream-port 0 时启动日志中不再出现 STREAM proxy 相关行。
4.3 LAUNCH_MODE 环境变量与命令行参数的优先级实测
.env 设 LAUNCH_MODE=headless、命令行给 --debug,验证覆盖关系:
grep '^LAUNCH_MODE=' .env
LAUNCH_MODE=headless
poetry run python launch_camoufox.py --debug 2>&1 | grep 'Final selected launch mode'
Final selected launch mode: debug mode
验证结论:命令行参数优先于 .env 环境变量——启动器日志明确打印最终选择的模式。与《AIstudioProxyAPI 配置参数详解》3.1 的优先级规则一致。
4.4 日常启停命令速查
# 首次登录(浏览器可见,登录后自动保存认证)
poetry run python launch_camoufox.py --debug --auto-save-auth --save-auth-as admin
# 无头常驻(需已完成登录保存认证)
poetry run python launch_camoufox.py --headless
# 无图形界面的 Linux 服务器(Xvfb 虚拟显示)
poetry run python launch_camoufox.py --virtual-display
# 指定认证文件启动
poetry run python launch_camoufox.py --headless --active-auth-json auth_profiles/active/admin.json
# 指定日志级别启动(排障)
poetry run python launch_camoufox.py --headless --server-log-level DEBUG --debug-logs
停止运行:前台运行直接 Ctrl+C(启动器会清理 Camoufox 子进程,实测日志:--- Starting cleanup routine (launch_camoufox.py) --- → ✓ Camoufox (PID: 5515) successfully terminated via SIGTERM.);systemd 托管用 systemctl stop aistudio-proxy。
4.5 camoufox 浏览器管理工具
浏览器本体下载与校验(安装指南 4.4 的完整用法):
poetry run camoufox fetch
验证浏览器就位:
ls /root/.cache/camoufox/ | head -6
addons
application.ini
browser
camoufox
camoufox-bin
camoufox.cfg
⚠️ 注意:未执行 fetch 直接启动会报
FileNotFoundError: Version information not found at /root/.cache/camoufox/version.json. Please run 'camoufox fetch' to install.(实测,见安装指南 FAQ Q6);模型定义文件与浏览器下载均需可访问外网,必要时先 exporthttp_proxy/https_proxy。
4.6 server.py:服务本体(限制用法)
server.py 启动 FastAPI 服务但不管浏览器,直接运行的实测结果(照抄关键行):
poetry run python server.py
22:26:23.036 INF SYS Starting STREAM proxy on port 3120 with upstream proxy:
22:26:23.038 INF SYS [SUCCESS] Received 'READY' signal from STREAM proxy.
22:26:23.075 INF SYS Starting Playwright...
22:26:23.241 CRT SYS Application startup failed: CAMOUFOX_WS_ENDPOINT environment variable is missing.
ValueError: CAMOUFOX_WS_ENDPOINT environment variable is missing.
结论:缺浏览器端点即退出。仅当已有独立运行的 Camoufox/Chrome(如远程浏览器)并在 .env 配置 CAMOUFOX_WS_ENDPOINT=ws://127.0.0.1:9222 时才可用此形态;日常一律用 launch_camoufox.py。
4.7 systemd 服务管理
服务文件与启用步骤见《AIstudioProxyAPI 安装指南》4.10,日常管理命令:
systemctl start aistudio-proxy # 启动
systemctl stop aistudio-proxy # 停止
systemctl restart aistudio-proxy # 重启(改 .env 后生效用)
systemctl status aistudio-proxy --no-pager # 状态与近期日志
journalctl -u aistudio-proxy -f # 跟踪实时日志
4.8 API 调用命令(curl)
服务完整启动(认证校验通过)后,OpenAI 兼容 API 的调用命令如下(端点清单取证自官方 docs/api-usage.md;响应结构以官方文档口径为准):
# 健康检查:200=正常;503 时看 details 中 browser/page/worker 状态
curl http://127.0.0.1:2048/health
# 模型列表
curl http://127.0.0.1:2048/v1/models
# 非流式对话
curl -X POST http://127.0.0.1:2048/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"gemini-2.5-pro","messages":[{"role":"user","content":"你好"}]}'
# 流式对话
curl -X POST http://127.0.0.1:2048/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"gemini-2.5-pro","stream":true,"messages":[{"role":"user","content":"写一段 100 字短文"}]}' \
--no-buffer
# 请求队列查看与取消
curl http://127.0.0.1:2048/v1/queue
curl -X POST http://127.0.0.1:2048/v1/cancel/abc1234
配置了 API Key 时加请求头(二选一):-H "Authorization: Bearer <token>" 或 -H "X-API-Key: <token>"。
服务未就绪/未启动时的实测回显(实验环境无 Google 认证、服务止步于认证校验,curl 表现照抄):
curl -s -m 3 http://127.0.0.1:8150/health; echo " exit=$?"
exit=7
curl 退出码 7 = 连接被拒(进程已退出、端口未监听)。据此可判断服务生命周期:exit=7 服务未在运行;HTTP 503 服务在、浏览器/页面未就绪;HTTP 200 全链路就绪。
⚠️ 注意:对话接口的真实转译输出依赖有效 Google 认证(需自备 Google 账号完成登录),本篇实验环境无法登录 Google,故对话接口仅给官方口径的命令形态与判断方法,未展示编造的模型响应。
五、注意事项
- 模式三选一:
--debug/--headless/--virtual-display是互斥参数,同给多个会报 argparse 冲突错误; - headless 前必须有认证:先
--debug登录保存,否则启动即报No active profile found(实测见安装指南 4.8); - 端口冲突先看 Step 2:启动器自检端口占用并给出明确报错,换端口用
--server-port(生效实测见 4.2); - 命令行参数优先:与 .env 冲突时以命令行为准(实测见 4.3),systemd 单元里的 ExecStart 参数要和 .env 口径核对一致;
- 清理靠启动器:停止服务用 Ctrl+C 或 systemctl,让启动器的 cleanup 例程回收 Camoufox 子进程;强杀进程组可能留下浏览器孤儿进程,可用
pgrep -f camoufox复查; - 升级后重跑 fetch:
git pull切新版本后,若 Camoufox 大版本变化需重跑poetry run camoufox fetch,再poetry install同步依赖。
六、常见问题(FAQ)
Q1:--help 都报错,提示 browserforge 数据文件缺失?
模型定义文件未下载成功(需外网)。export http_proxy/https_proxy 后重跑 --help 触发自动下载(实测过程见安装指南 4.4)。
Q2:--stream-port 0 与流式请求的关系?
0 关闭的是流式代理服务(3120 端口进程),/v1/chat/completions 的 stream:true 仍可用;外部 helper 场景才需要 --helper 指定端点。
Q3:systemd 启动后日志在哪?
journalctl -u aistudio-proxy -f 看 stdout;应用日志在项目目录 logs/launch_app.log 与 logs/app.log。
Q4:如何验证我的认证文件会被 headless 使用?
启动日志会打印实际加载文件:Using first alphabetic JSON file in '/opt/AIstudioProxyAPI/auth_profiles/active': <文件名>(实测照抄);也可用 --active-auth-json 显式指定。
Q5:8150 端口启动后 curl 报 exit=7? 按 4.8 判断:服务进程没活到监听阶段。回看启动日志最后 20 行定位(常见为认证失败、端口检查失败、浏览器启动失败三类),对应处置见安装指南第八章 FAQ。
七、参考链接
- 官方部署与运维指南(systemd 示例来源):https://github.com/CJackHwang/AIstudioProxyAPI/blob/main/docs/deployment-and-operations.md
- 官方 API 使用说明(端点清单来源):https://github.com/CJackHwang/AIstudioProxyAPI/blob/main/docs/api-usage.md
- 官方排障指南:https://github.com/CJackHwang/AIstudioProxyAPI/blob/main/docs/troubleshooting.md
- 日常使用文档:https://github.com/CJackHwang/AIstudioProxyAPI/blob/main/docs/daily-usage.md
- 本专栏相关篇目:《AIstudioProxyAPI 安装指南》《AIstudioProxyAPI 配置参数详解》《AIstudioProxyAPI 介绍与选型指南》