一个给 Windows 用的托盘管理工具,用来启动和管理
CLIProxyAPI(Main)与CLIProxyAPI Plus(Plus)。这是社区项目,不是 CLIProxyAPI 官方核心仓库。
这项目能做什么
- 托盘常驻,单实例运行
- Main / Plus 通道互斥启动与切换
- 自动检测并下载最新可用版本
- 版本隔离存放在
versions/<version>/ - 一键打开管理页面(WebUI)
- 自动检查并写入
remote-management.secret-key - 支持开关控制“启动/重启后是否自动打开管理页面”
环境要求
- Windows 10 / Windows 11
- PowerShell 5.1 或更高版本
- 能访问 GitHub Releases
快速开始(推荐)
方式 A:普通用户(桌面快捷方式)
- 下载并放到同一目录:
cli-proxy-api.ps1cli-proxy-api.vbscreate-shortcut.batconfig.example.yaml
- 双击运行
create-shortcut.bat - 桌面会生成
CLIProxyAPI Tray快捷方式 - 以后直接双击桌面快捷方式启动
方式 B:开发者(直接运行脚本)
powershell -NoProfile -WindowStyle Hidden -ExecutionPolicy Bypass -File .\cli-proxy-api.ps1
首次运行会发生什么
首次启动时,脚本会按顺序做这些事:
- 检查是否已有实例在运行(避免多开)
- 若
config.yaml不存在,则从config.example.yaml自动复制 - 检查
remote-management.secret-key- 为空时会弹窗让你输入密码,并写回
config.yaml
- 为空时会弹窗让你输入密码,并写回
- 检查当前版本是否已安装
- 未安装时会询问是否下载 Main/Plus 最新版本
- 按
lastChannel启动服务并更新托盘状态
日常使用说明
托盘菜单
Channel -> Main:启动 MainChannel -> Plus:启动 PlusOpen -> WebUI:打开http://127.0.0.1:<port>/management.htmlOpen -> Folder:打开脚本目录Reset Password:重置secret-keyAuto Open WebUI:切换“启动/重启后自动开页”Update:检查并安装最新版本Restart:重启当前运行通道;若未运行则启动lastChannelStop:停止 Main/Plus 进程Exit:退出托盘并停止进程
托盘双击行为
- 当前有服务在运行:直接打开 WebUI
- 当前没有服务在运行:启动
lastChannel
Auto Open WebUI 开关说明(重要)
当前实现里,这个开关只影响“自动打开”行为:
- 会影响:
- 通过
Channel启动后是否自动开页 Restart后是否自动开页Update安装完成后重启时是否自动开页- 脚本启动时(检测到已运行)是否自动开页
- 通过
- 不会影响:
- 手动点击
Open -> WebUI - 托盘双击且当前已运行时的开页动作
- 手动点击
目录结构
CLIProxyAPI_Tray/
├─ cli-proxy-api.ps1
├─ cli-proxy-api.vbs
├─ create-shortcut.bat
├─ config.example.yaml
├─ README.md
└─ LICENSE
运行后通常会出现:
CLIProxyAPI_Tray/
├─ config.yaml
├─ state.json
├─ versions/
│ └─ vX.Y.Z/
│ ├─ cli-proxy-api.exe
│ └─ cli-proxy-api-plus.exe
└─ logs/ # 仅在 config 开启 logging-to-file 时写入
状态文件与数据路径
- 主状态文件:
<脚本目录>\state.json - 回退状态文件:
%LOCALAPPDATA%\CLIProxyAPI_Tray\state.json- 当脚本目录不可写时会自动回退
- 版本目录:
<脚本目录>\versions\<mainTag>\
state.json 主要字段:
lastChannelversionplusTagarchautoOpenWebUIupdatedAt
最小配置建议
建议至少确认这几个配置项:
port: 8317 show-update-progress: true remote-management: allow-remote: false secret-key: "请设置一个强密码"
说明:
port:WebUI 与服务监听端口show-update-progress:是否显示下载进度窗口remote-management.secret-key:管理接口密钥,不能为空
更新与版本管理机制
- 点击
Update才会检查更新,不会后台定时更新 - 更新会同时处理 Main/Plus 的对应发布包
- 已下载版本会保留,不会自动清理旧版本目录
- 下载失败时只清理临时目录,不会删已有版本
常见问题(FAQ)
1. 托盘没出现
- 先确认没有重复实例在运行
- 用 PowerShell 手动执行一次脚本,看是否有安全策略或权限提示
2. WebUI 打不开
- 确认服务已启动(托盘状态不是
Not Running) - 确认
config.yaml里的port,再访问http://127.0.0.1:<port>/management.html
3. 首次启动一直让输密码
- 检查
config.yaml是否可写 - 确认
remote-management.secret-key已成功写入
4. 更新下载失败
- 检查网络是否可访问 GitHub Releases
- 若在公司网络环境,检查代理或防火墙策略
5. state.json 保存失败
- 把项目放到当前用户有写权限的目录
- 脚本也会尝试自动回退到
%LOCALAPPDATA%\CLIProxyAPI_Tray\state.json
重置与卸载
- 托盘菜单点
Exit - 删除桌面快捷方式(如果你是用 bat 创建的)
- 按需删除以下文件/目录:
config.yamlstate.jsonversions/logs/
许可证
本项目采用 MIT License。
反馈
有问题或建议,欢迎提 Issue: