Skip to content
aimod-ccPublic

About

本地反向代理 + OpenAI 兼容 AI 网关:复用桌面客户端登录态,一个 base_url 调用十余家模型额度 · Local OpenAI-compatible gateway for AI coding clients — WorkBuddy, Raccoon, CatPaw, AutoClaw, Qoder, Cline, Accio, ZCode, CodeArts, Trae and more.

Topics

Resources

Stars

1.1k stars

Watchers

0 watching

Forks

Repository files navigation

Agent2API

把多家 AI 桌面客户端的登录态,变成一个本地 OpenAI 兼容 API 网关

简体中文 | English | 繁體中文 | 日本語 | 한국어 | Português (BR)

license release docker pulls stars platform

✨ 核心特性 • 💬 社区与支持 • 🤝 支持的提供商 • 🚀 快速开始 • 🐳 Docker 部署 • 📸 界面预览 • 🔧 开发与构建 • 📜 使用声明


Agent2API 把多家 AI 桌面客户端里已登录的账号接到一起,共用一套 OpenAI 兼容接口。任何支持自定义 base_url 的客户端,填上 http://127.0.0.1:3065/v1 就能直接调用这些账号的模型额度 —— 不需要上游 API Key,也不需要改客户端。

✨ 核心特性

  • 🔌 OpenAI 兼容 —— 客户端填个 base_url 就能用,Chat / Responses / Messages 三种协议都支持
  • 🏪 内置 17 家提供商 —— WorkBuddy、小浣熊、CatPaw、Qoder、Trae 等开箱即用,也支持自定义提供商
  • 🔁 凭证自动续期 —— Token 到期自动换新,临期凭证可批量刷新,模型目录也不会过期
  • 🪂 多账号轮转 —— 按优先级排队,429 自动换账号,限额冷却期内不空等
  • 🛡️ 出网代理 —— 每个账号可配独立出口,出站指纹按官方客户端伪装
  • 🔑 网关安全 —— 多把网关 Key 可分权、登录有人机验证,没配 Key 时默认拒绝请求
  • 📊 请求报表 —— 请求量、成功率、Token 消耗一览,还有缓存命中率与 365 天热力图
  • ⏰ 定时任务 —— 自动签到、凭证维护、模型目录刷新,开关与间隔在一页里管理
  • 💰 余额与用量 —— 账号行内直接看余额与用量,支持跨账号并发查询
  • 🖥️ 两种部署 —— 桌面端托盘常驻、免装 Node;Docker 版面板与网关同端口,界面六语

❤️ 赞助商

ProxyLane(赞助位)

ProxyLane 感谢 ProxyLane 赞助了本项目!ProxyLane 提供 AI 账号专用的原生静态住宅 IP(Static Residential ISP):IP 来自真实家庭宽带运营商,Scamalytics 低欺诈评分,每个 IP 独享,不限流量,$3.90 起。在「网络代理」页给每个账号配一个出口即可。首次购买使用优惠码 AGENT2API25 享 75 折。

💬 社区与支持

  • QQ 群:Agent2API 交流群,群号 1127656296 —— 在 QQ 里搜索群号即可加入,使用答疑与问题反馈都在这里。
  • 💖 赞赏:如果 Agent2API 帮到了你,欢迎请作者喝杯咖啡;赞赏完全自愿,不解锁任何功能。
  • 🤝 赞助 / 商务合作:想赞助本项目,或想让你的产品出现在这里?发邮件到 541675139@qq.com。

🤝 支持的提供商

支持情况一览(✓ 支持 · ✗ 不支持 · — 无此概念):

平台 LLM 请求 Token 自动续期 模型列表 余额查询 签到 领取类
WorkBuddy 国内版 ✓ ✓ ✓ ✓ ✓ ✓
WorkBuddy 国际版 ✓ ✓ ✓ ✓ ✗ —
小浣熊 ✓ ✓ ✓ ✓ ✓ —
CatPaw ✓ ✗ ✓ ✓ ✗ —
AutoClaw(国内版 / 国际版) ✓ ✓ ✓ ✓ ✓ —
Qoder ✓ ✓ ✓ ✓ ✓ —
Cline(Free / Pass) ✓ ✓ ✓ ✓ — —
Accio(国际版 / 国内版) ✓ ✓ ✓ ✓ — —
ZCode(国内版 / 国际版) ✓ ✗ ✗ ✓ — ✓
CodeArts ✓ ✓ ✓ ✓ — ✓
Trae ✓ ✓ ✓ ✓ — —
Loomy(讯飞) ✓ ✗ ✓ ✓ ✓ —
KukuAI(百度文库) ✓ ✗ ✓ ✓ ✓ —
MonkeyCode(长亭科技,国内版 / 国际版) ✓ ✗ ✓ — — —
Command Code ✓ ✗ ✓ — — —
Antigravity(Google,Gemini) ✓ ✓ ✓ — — —
OfficeAce(华为云果办 / OfficeClaw) ✓ ✓ ✓ ✓ ✓ —
自定义提供商 ✓ — ✓ — — —

注:模型列表的 ✓ 表示支持在线自动拉取,部分平台另有内置静态表兜底;ZCode 仅有内置静态表。Token 续期列 ✗ 表示该平台没有可用的续期接口(账号在有效期内不受影响)。Qoder 签到仅中国版可用。

/v1/chat/completions、/v1/responses、/v1/messages(含 count_tokens)与 /v1/models 对所有平台一视同仁;模型映射、全局优先级队列、429 降级、出网代理、出站指纹脱敏与请求报表同样全平台通用。

本项目仅供学习与交流使用。 它以非官方客户端形态复用你自己账号的登录态,可能不符合上游服务的使用条款,风险(含账号被风控、封禁)自负;禁止商用或绕过计费。详见使用声明与 LICENSE。

本项目与各上游厂商及其官方产品均无关(名单见使用声明);接口形态来自对各家客户端通信的观察,上游随时可能调整。

🚀 快速开始

从 Releases 下载安装包(NSIS,简体中文,默认装到 C:\Program Files\Agent2API,安装时需要管理员授权),安装后启动即可,无需安装 Node 或任何其它运行时。

  1. 首次启动即在应用进程内启动本机网关(端口 3065)并打开主窗口;若检测到旧版本的数据目录或数据文件,会弹窗提示迁移,按指引操作即可。
  2. 点「账号」页的「添加账号」,选提供商后按弹窗提示完成登录或填写凭证即可(方式以弹窗为准:网页登录 / 手机验证码 / 粘贴凭证 / 导入本机登录态)。
  3. 把 OpenAI 客户端的 base_url 填成 http://127.0.0.1:3065/v1,api_key 随便填(例如 sk-local,未启用鉴权时服务端不校验)。

关闭窗口默认最小化到托盘,网关继续在后台转发;彻底退出请在托盘图标右键选「退出」。

验证

网关起来后,用 curl 确认联通性(model 填 GET /v1/models 里任一实际存在的名字):

curl http://127.0.0.1:3065/health
curl http://127.0.0.1:3065/v1/models

curl http://127.0.0.1:3065/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -d '{"model":"deepseek-v4.1-flash","messages":[{"role":"user","content":"你好"}],"stream":true}'

客户端接入示例(Python SDK):

from openai import OpenAI

client = OpenAI(base_url="http://127.0.0.1:3065/v1", api_key="sk-local")
resp = client.chat.completions.create(
    model="deepseek-v4.1-flash",     # 名单里有哪家就是哪家,见 GET /v1/models
    messages=[{"role": "user", "content": "你好"}],
)
print(resp.choices[0].message.content)

浏览器页面(自建 Web UI 等)用 fetch 直连会被跨源预检拒绝——网关默认不应答 CORS,预检落到 API Key 校验上得 401。两种解法:① 设置页「安全 → 网关跨域访问」打开(来源 *;此时任何网页都能借本机网关打上游,建议同时配「网关 Key」);② 页面与网关同源——本地静态服务托管页面并把 /v1 反代到 127.0.0.1:3065。

局域网访问

默认只监听 127.0.0.1。开启「设置 → 通用 → 局域网访问」后改听所有网卡,局域网设备把 API 地址指向本机 IP 即可共用(界面会给出完整地址)。出于安全,开启前必须注册面板管理员:管理接口要求管理员会话或网关 Key,无可用 Key 时转发接口同样拒绝服务(开启流程会自动补一把「默认」Key);也可选择同时开放网页面板(默认关闭)。改动重启生效。

🐳 Docker 部署

docker run -d --name agent2api --restart unless-stopped \
  -p 3065:3065 -v ./data:/data \
  aimodcc/agent2api:latest

浏览器打开 http://<主机>:3065,首次进入会引导注册管理员账号;登录后在「网关 Key」页建一把 API Key 给客户端用 —— http://<主机>:3065/v1 即 OpenAI 兼容端点(未建 Key 前拒绝转发)。状态(SQLite 库 / 配置 / 日志)都在 ./data 一个卷里。

compose 用户(amd64 / arm64 都有镜像):

services:
  agent2api:
    image: aimodcc/agent2api:latest
    container_name: agent2api
    restart: unless-stopped
    ports:
      - "3065:3065"
    volumes:
      - ./data:/data

环境变量(都可选):

变量 说明
AGENT2API_ADMIN_USER + AGENT2API_ADMIN_PASSWORD 预置管理员账号密码(密码明文填,启动时自动转哈希);不填走面板注册
AGENT2API_PANEL_PORT 面板分端口:设后面板(界面 + /api/*)单独监听该端口,公网只映射主端口即可把管理面留在内网(面板端口绑回环,写 127.0.0.1:3066:3066)
AGENT2API_HOST / AGENT2API_PROXY_PORT 监听地址(默认 0.0.0.0)/ 端口(默认 3065)
AGENT2API_ALLOW_NO_KEY 置 1 关闭 fail-closed(未配 Key 也放行 /v1,仅限纯内网)
AGENT2API_CAPTCHA_ENABLED 登录页人机验证:默认 1 开启,0 关闭
AGENT2API_SELF_UPDATE 容器内的更新入口:默认 1 开启(面板可「下载并更新」);置 0 关闭,只走手动升级
WORKBUDDY_UPDATE_REPO + WORKBUDDY_UPDATE_API_BASE 进阶:把「检查更新 / 下载更新」换成自建源。前者换仓库(默认跟上游 aimod-cc/agent2api,fork 后可改),后者换 API 根(默认 https://api.github.com,需返回与 GitHub 同形的 release JSON)。配了自建源后,下载白名单只额外放行该源自己的域名(按源的 scheme:配 http:// 就允许明文下载,仅建议本地演练/内网镜像用)

从源码构建:克隆本仓库后 docker compose up -d --build(镜像里只有网关与面板,不含 Rust 工具链)。

网页端功能差异(源于「没有本机桌面客户端」):网页登录(WorkBuddy / Qoder / Cline)、手机验证码、粘贴凭证完全可用;需要本机回调的网页登录(AutoClaw / CatPaw / Accio / CodeArts / Trae)与「导入本机登录态」不可用,请改用粘贴凭证。

📸 界面预览

账号

账号管理页:全局队列、按模型限额冷却、有效期与余额

添加账号:

添加账号:选择提供商与版本,然后走网页登录

模型管理

模型管理页:按提供商查看模型清单、倍率、上下文与映射

报表

概览:请求数 / 成功率 / Token 总量 / Top 模型与账号、提供商排名,附用量环图与 365 天活跃热力图:

报表概览:统计卡片、Top 账号 / 提供商、模型与提供商用量环形图

趋势:24 小时缓存命中率(折线)与 Token 消耗(面积)双轴同图,底部按天 Token 柱状图:

报表趋势:缓存命中率与 Token 消耗双轴趋势、按天 Token 柱状图

签到中心

签到中心页:签到总览与每日签到分组

🔧 开发与构建

环境要求

  • Rust >= 1.77 与 Tauri 2 工具链(编译桌面端本体;Windows 上还需 WebView2 运行时)
  • Node.js >= 18.17(只用于 npm run tauri:* 与前端构建脚本,桌面端运行时不依赖 Node)

常用脚本

npm run tauri:install      # 安装桌面端依赖(等价 npm --prefix desktop-tauri install)
npm run tauri:dev          # 开发模式调起桌面端(自动热重载)
npm run tauri:build        # 构建桌面端安装包

npm run build:icon         # 生成图标源图(改图标设计后执行,再跑 tauri icon)

打包产物为 target/release/bundle/nsis/Agent2API_<版本>_x64-setup.exe(当前约 3.0 MB;src-tauri/.cargo/config.toml 把 cargo 的 target-dir 指到了项目根的 target/)。

📜 使用声明

仅供学习与交流

本项目是一个用于学习 HTTP 反向代理、SSE 流式透传、多上游协议适配与桌面端打包(Tauri)等技术主题的实践项目,仅供个人学习与研究使用。它不是官方产品,与腾讯公司及 WorkBuddy / CodeBuddy、美团及 CatPaw、商汤及小浣熊、智谱及 AutoClaw / autoglm、阿里巴巴及 Qoder / Accio、华为云及 CodeArts / OfficeAce、字节跳动及 Trae、科大讯飞及 Loomy、百度文库及 KukuAI、长亭科技及 MonkeyCode、Command Code、Google 及 Antigravity 均无任何关联,未获得其授权、认可或赞助。

关于反向代理行为

本项目实现的是本地反向代理:在你自己的机器上复用你自己账号的登录态,把请求转发到官方上游网关。它不破解、不绕过任何付费或权限校验,使用的额度始终来自你自己账号本就拥有的配额。但需要明确的是,这种「以非官方客户端形态复用登录态」的转发方式,可能不符合上游服务的用户协议或使用条款;是否使用、由此产生的一切后果(包括但不限于账号被限流、被风控、被冻结或封禁),均由使用者自行承担。

禁止用途

禁止将本项目用于任何商业用途、二次分发牟利、批量账号运营、绕过上游计费或配额限制、或其他违反当地法律法规的活动。如需在生产环境或商业场景中调用相关模型服务,请使用官方渠道与官方 API。

凭证与数据风险

本项目会把账号凭证(accessToken / refreshToken 等)以明文形式保存在本机配置目录(默认 ~/.agent2api/)中,导出功能生成的文件同样包含明文凭证。请自行妥善保管,切勿提交到公开仓库、上传到网盘或分享给他人。因凭证泄露造成的损失由使用者自行承担。

无担保与权利通知

本项目按「现状」提供,作者不对其可用性、稳定性、安全性或对特定用途的适用性作任何承诺。上游接口随时可能变更,本项目可能随时失效而不再维护。完整条款见 LICENSE。本项目中的接口形态、协议字段等信息来自对各官方客户端公开网络通信的观察与整理,相关商标与服务的权利归其各自所有者;若权利方认为本项目存在不当之处,请联系作者,将及时调整或删除。

📄 许可

本项目基于 MIT License,可自由使用、修改与分发,须保留版权声明。

需要留意的是:LICENSE 正文之后附有一份使用声明,其中第 3 条在 MIT 之上追加了限制(禁止商业用途、禁止二次分发牟利、禁止批量账号运营)。因此本项目不是纯粹的 MIT 项目——MIT 条款与使用声明共同构成完整的授权与使用约定,两者对同一行为给出不同结论时以更严格的一方为准。这也是 Cargo.toml 用 license-file 指向 LICENSE、而不声明 SPDX "MIT" 的原因。

⭐ Star History

Star History Chart

下载最新版 • 问题反馈

如果这个项目对你有帮助,欢迎点一个 ⭐️ Star!

About

本地反向代理 + OpenAI 兼容 AI 网关:复用桌面客户端登录态,一个 base_url 调用十余家模型额度 · Local OpenAI-compatible gateway for AI coding clients — WorkBuddy, Raccoon, CatPaw, AutoClaw, Qoder, Cline, Accio, ZCode, CodeArts, Trae and more.

Topics

Resources

Stars

1.1k stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages