Skip to content

About

Auto Team 5x 自动轮转

Resources

Stars

36 stars

Watchers

0 watching

Forks

Repository files navigation

Team 轮转

QQ 交流群:1127955876

欢迎交流使用反馈、功能建议、部署经验和开源协作。

一个面向 Team 空间和 Free 账号池的轻量管理台,适合需要统一维护 Team、账号、席位轮转和 Sub2API 数据的个人开发者与小型团队。

项目简介

Team 轮转提供前后端一体的本地管理能力:前端负责 Team 与账号记录、额度和运行状态展示,服务端负责状态持久化、额度检测、自动补位、OAuth 登录流程衔接以及 Sub2API JSON 导入/导出。项目默认以本地部署为主,不内置演示账号,也不会伪造登录、邮箱验证码、Turnstile 或浏览器设备校验结果。

项目当前定位为可替换适配层和管理工具,真实登录、Team 邀请、workspace 切换、额度查询与 Sub2API 推送均保留了独立边界,便于按实际服务环境继续接入和扩展。

主要能力

  1. 在 Team 维护中查看所有者、席位和当前成员。
  2. 在 Team 成员列表中查看每个账号的 5h / 7d 额度。
  3. 自动踢出条件可选择 5h、7d 或按加入时间;按时间模式默认加入 12 小时后轮转,可在设置中自定义小时数。额度仍会检测并更新,但不会作为按时间模式的踢出条件。
  4. 从待加入池补满空席位。
  5. 封号检测只接受明确的 OpenAI 停用/封禁错误信号;确认后从 Team 移出、在 Free 记录中永久标记,并排除后续补位。
  6. 每个 Team 默认每天最多轮转 3 个账号,可在 Team 编辑中单独调整;跨日自动重置。
  7. 在 Free 账号维护中记录邮箱、密码/2FA 是否已录入、加入过的 Team 和 Sub2API 状态。
  8. 下载 Sub2API JSON,后续可替换为真实推送适配器。

友情开源项目

  • icloud-mail:另一个独立开源项目,帮助有需要的朋友注册 iCloud 邮箱,让邮箱账号更充足。

开源协议

本项目采用 MIT License 开源。你可以自由使用、复制、修改、合并、发布和再授权本项目,但请保留原作者版权声明和许可声明。协议不对软件适用性、稳定性或特定用途作任何明示或默示保证;使用项目处理真实账号、凭据和第三方服务时,请自行承担相应的安全、合规与运营责任。

下载安装

安装 Node.js 22.12.0 或更高的兼容版本,推荐 Node.js 24 LTS,并安装 Git。在终端运行:

git clone https://github.com/sheelkiro/auto-team-custom.git
cd auto-team-custom
npm ci
npm run build
npm run server

打开 http://127.0.0.1:8786/,使用默认密码 xiaoyu 登录。不使用 Git 时,也可以在仓库页面选择 Code → Download ZIP,解压后在项目目录执行最后三条命令。首次启动是空数据,需要自行导入账号和配置服务连接;Roxy 自动授权需要另行安装 Roxy 并配置其本机 API。

开发启动

npm install
npm run server

在另一个终端运行前端开发服务:

npm run dev

然后打开 http://localhost:5173,使用默认密码 xiaoyu 登录。开发模式需要同时运行 npm run server 和 npm run dev:Vite 将 /api 代理至本机服务端。前端和服务端默认从空状态启动,不包含预置母号、子号或历史记录。数据以服务端 data/state.json 为准;该文件使用 AES-256-GCM 加密,可以在“设置”中调整预警阈值和轮询周期。

前端不会生成演示账号。Free 账号可以通过“导入 Sub2API JSON”导入真实 accounts[].credentials 和 accounts[].extra,也可以粘贴 邮箱----密码----2FA(或使用 |、逗号)保存已完成手机号验证的登录凭据。开启自动补位后,没有 Free JSON 的账号会先通过 RT 或邮箱、密码、2FA 完成 Codex OAuth;已有 AT 过期时优先用 RT 刷新。遇到额外邮箱验证码、Turnstile 或浏览器设备校验时不会伪造成功,界面会保留验证状态。JSON 的完整凭据只提交并加密保存在服务端,界面和 API 响应只返回脱敏 token。

配置并启用 Sub2API 后,Codex OAuth 优先使用目标连接的 /api/v1/admin/openai/generate-auth-url 创建 PKCE 会话,登录完成后通过 /api/v1/admin/openai/exchange-code 换取完整凭据,再按“邮箱 + chatgpt_account_id”写入指定分组。Free JSON 使用列表中的默认连接并选择 personal 空间;Team JSON 使用该 Team 绑定的连接并选择其 accountId 空间。未配置可用连接时保留本地 PKCE 流程,生成的 JSON 仍可手动导出或推送。

混合 Sub2API 文件会按 credentials.plan_type 分流:team 记录按 chatgpt_account_id 合并为空间,并保留该空间的多个所有者;free 记录进入 Free 账号池。同一邮箱同时存在 Free 和 Team 记录时不会互相覆盖。

正式部署并由服务端提供已构建页面时,先构建再运行:

npm run build
npm run server

服务监听 http://127.0.0.1:8786,并提供 /api/state、/api/history、/api/settings、/api/mothers/*(Team 所有者与空间操作)、/api/children/import、/api/children/:id/login、/api/children/:id/acquire、/api/children/:id/join、/api/children/:id/switch、/api/children/:id/kick、/api/maintenance/check、/api/maintenance/refill 和 /api/sub2api/export。Free 账号只用于登录、取得凭据和加入 Team,不单独检测额度;5h / 7d 额度只保存和检测在对应 Team 空间下。/api/state 额外返回脱敏的 teams 汇总、账号凭据状态、加入历史和 Sub2API 状态;前端同步时可传 includeHistory=false 跳过历史。/api/history?page=1&pageSize=20 返回当前页 items 及 total、totalPages 等分页信息,不带分页参数时保持返回完整数组。单个成员检测失败只记录为部分失败,不会阻断其他成员或已确认额度状态的补位。

版本标识

当前版本以 package.json 的 version 为准,并在管理台显示为版本标识。项目不连接 GitHub 仓库检测更新;版本变更记录见 CHANGELOG.md。

发布时按语义化版本更新 package.json 与 package-lock.json,并补充变更记录。

安全配置

  • 管理台默认登录密码是 xiaoyu;启动服务端前设置 TEAM_ROTATION_LOGIN_PASSWORD 可覆盖。远程部署应更换强密码。登录成功后使用路径为 /api 的 HttpOnly、SameSite=Lax Cookie,会话有效期 7 天并仅保存在服务端内存中;服务端重启后需要重新登录,退出会使当前会话失效。
  • 默认只监听 127.0.0.1。设置非本机 HOST 时,必须同时设置 TEAM_ROTATION_API_TOKEN,否则服务拒绝启动。管理台登录不替代 API Token:配置了 Token 时,页面登录后访问受保护 API 仍需输入 Token,Token 仅保存到当前浏览器会话并在退出时清除。携带有效 Token 的程序化 HTTP 客户端可不建立管理台 Cookie 会话。
  • 状态文件默认使用 data/.state-key 加密;非本机监听必须设置独立的 TEAM_ROTATION_DATA_KEY(32 字节 Base64、64 位十六进制或高强度口令),并单独备份该密钥。密钥丢失后无法解密状态数据。
  • 跨域前端通过 TEAM_ROTATION_ALLOWED_ORIGINS 配置允许来源,多个来源使用逗号分隔。默认只允许同源以及本机 Vite 开发地址。
  • MCP 认证机制不受管理台登录影响:默认复用 TEAM_ROTATION_API_TOKEN,也可以单独设置 MCP_AUTH_TOKEN。远程部署仍应在 HTTPS 反向代理后使用。

Agent MCP 接入

服务端同时提供符合 MCP Streamable HTTP 规范的 POST /mcp 端点。先启动 npm run server,然后在支持 HTTP MCP 的 Agent 中配置:

{
  "mcpServers": {
    "team-rotation": {
      "url": "http://127.0.0.1:8786/mcp"
    }
  }
}

只支持本地 stdio 的客户端可以使用仓库内的桥接命令(同样需要服务端运行)。将 cwd 替换为你解压或克隆项目后的实际绝对路径:

{
  "mcpServers": {
    "team-rotation": {
      "command": "npm",
      "args": ["run", "mcp"],
      "cwd": "/path/to/auto-team-custom",
      "env": { "QUOTA_HUB_MCP_URL": "http://127.0.0.1:8786/mcp" }
    }
  }
}

MCP 工具包括 get_state、list_teams、list_accounts、get_history、check_team_quota、check_all_teams、refill_team、refill_all_teams、acquire_missing_free_json 和 update_settings。其中检测、补位、批量获取 Free JSON 和设置更新会真实改变系统状态;MCP 返回沿用脱敏投影,不返回完整密码、2FA、Access Token 或 refresh token。需要跨机器接入时设置 HOST=0.0.0.0 和 MCP_AUTH_TOKEN,客户端使用 Authorization: Bearer <token>。

About

Auto Team 5x 自动轮转

Resources

Stars

36 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages