Token导航 LogoToken导航TokenDH.com
研究检索操作浏览器github未标认证来源可访问许可证需确认审计异常

autoteam-f-chatgpt-team-rotationautoteam f chatgpt 团队轮换

Agent Skill

autoteam-f-chatgpt-team-rotation 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

751

周安装

31

GitHub Stars

39

下载量

246
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:autoteam-f-chatgpt-team-rotation(autoteam f chatgpt 团队轮换)
来源仓库:https://github.com/aradotso/trending-skills
仓库路径:skills/autoteam-f-chatgpt-team-rotation
安装命令:
npx skills add https://github.com/aradotso/trending-skills --skill autoteam-f-chatgpt-team-rotation
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/aradotso/trending-skills --skill autoteam-f-chatgpt-team-rotation

简介

autoteam-f-chatgpt-team-rotation 扩展上游 AutoTeam 功能,增加批量免费账号生成与 Bug 修复,支持 FastAPI + Vue 3 仪表盘。

  • 适用于需要同时管理团队账号与个人免费账户、集中管理 OAuth 认证的场景。
  • 使用 uv 包管理与 Playwright 浏览器自动化,依赖云邮箱实例部署。
  • 使用前需部署 cloudflare_temp_email 实例并配置环境变量,注意账号来源合法性。
  • 适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。

SKILL.md

AutoTeam-F ChatGPT Team Rotation & Free Account Generation

Skill by ara.so — Daily 2026 Skills collection.

AutoTeam-F is a Python-based tool for automating ChatGPT Team account rotation, batch free Personal account generation, and Codex OAuth authentication sync to CLIProxyAPI (CPA). It uses Playwright for browser automation, FastAPI for the web backend, and Vue 3 for the dashboard.

F = Fix + Free: it fixes blocking bugs from the upstream cnitlrt/AutoTeam and adds batch free-account production.


Installation

Prerequisites

Linux

git clone https://github.com/ZRainbow1275/AutoTeam-F.git
cd AutoTeam-F
bash setup.sh
# setup.sh runs: uv sync && uv run playwright install chromium

Windows / macOS

git clone https://github.com/ZRainbow1275/AutoTeam-F.git
cd AutoTeam-F
uv sync
uv run playwright install chromium

Docker (recommended for production)

git clone https://github.com/ZRainbow1275/AutoTeam-F.git
cd AutoTeam-F
mkdir -p data && cp .env.example data/.env
# Edit data/.env with your configuration
docker compose up -d

Configuration

Create a .env file (or data/.env for Docker). First-run wizard auto-generates it:

uv run autoteam api  # triggers guided setup on first run

Key .env Variables

# Mail provider: cf_temp_email (default/recommended) or maillab
MAIL_PROVIDER=cf_temp_email
MAIL_BASE_URL=https://your-cf-temp-email.workers.dev

# If using maillab (upstream-compatible legacy)
# MAIL_PROVIDER=maillab
# MAIL_BASE_URL=https://your-cloudmail-instance.com

# OpenAI admin/master account
OPENAI_EMAIL=admin@example.com
OPENAI_PASSWORD=your_password

# CLIProxyAPI (CPA) sync target
CPA_BASE_URL=https://your-cpa-instance.com
CPA_API_KEY=$CPA_API_KEY

# AutoTeam-F API protection
API_KEY=$AUTOTEAM_API_KEY

# Team workspace settings
TEAM_WORKSPACE_ID=your_workspace_id
TARGET_MEMBER_COUNT=5

# Reconcile behavior
RECONCILE_KICK_ORPHAN=false
RECONCILE_KICK_GHOST=false

Mail Provider Notes

  • cf_temp_email (default): Cloudflare Workers-based, widely tested, good OpenAI domain allowlist compatibility
  • maillab: Legacy maillab/cloud-mail backend; must be set explicitly — no longer the default
  • On startup, AutoTeam-F fingerprint-sniffs the base URL and warns if provider/URL mismatch is detected (prevents silent "login success → create mailbox 401" failures)

CLI Commands

# Start Web dashboard + API (port 8787)
uv run autoteam api

# Smart rotation — fill to N active accounts (default: 5)
uv run autoteam rotate [N]

# View account status
uv run autoteam status

# Check quotas (active accounts)
uv run autoteam check

# Check quotas including standby pool (rate-limited, 24h dedup)
uv run autoteam check --include-standby

# Add a new account via automated registration
uv run autoteam add

# Add account via manual OAuth paste
uv run autoteam manual-add

# Fill Team seats to target count
uv run autoteam fill [N]

# Clean up excess Team members
uv run autoteam cleanup [N]

# Sync local auth to CPA
uv run autoteam sync

# Pull auth from CPA to local
uv run autoteam pull-cpa

# Admin login (master account)
uv run autoteam admin-login

# Reconcile workspace vs local — find ghost/orphan/mismatched accounts
uv run autoteam reconcile
uv run autoteam reconcile --dry-run

Web Dashboard

Access at http://localhost:8787 after starting with uv run autoteam api.

PageKey Features
📊 DashboardAccount stats, status table, login/kick/delete/bulk-delete
👥 Team MembersAll workspace members including external
🔁 Pool OperationsRotate / Check / Fill / Add / Generate Free Accounts / Cleanup
🔄 Sync CenterSync accounts, push to CPA, pull from CPA
🔐 OAuth LoginGenerate auth links; auto localhost callback + manual paste fallback
📜 Task HistoryBackground task status + real-time stop button
📋 LogsLive log viewer
⚙️ SettingsAdmin login, master Codex sync, patrol config

REST API

All endpoints require Authorization: Bearer $API_KEY header.

Account Management

# List all accounts
curl -H "Authorization: Bearer $API_KEY" http://localhost:8787/api/accounts

# Trigger rotation (fill to 5 active)
curl -X POST -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"target": 5}' \
  http://localhost:8787/api/tasks/rotate

# Generate free Personal accounts (leave_workspace=true)
curl -X POST -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"target": 3, "leave_workspace": true}' \
  http://localhost:8787/api/tasks/fill

# Check quotas including standby
curl -X POST -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"include_standby": true}' \
  http://localhost:8787/api/tasks/check

# Sync to CPA
curl -X POST -H "Authorization: Bearer $API_KEY" \
  http://localhost:8787/api/tasks/sync

# Pull from CPA
curl -X POST -H "Authorization: Bearer $API_KEY" \
  http://localhost:8787/api/tasks/pull-cpa

Diagnostics & Repair

# Diagnose 401 issues (checks 4 API endpoints)
curl -H "Authorization: Bearer $API_KEY" \
  http://localhost:8787/api/admin/diagnose | jq

# Hot-fix mismatched account_id without re-login
curl -X POST -H "Authorization: Bearer $API_KEY" \
  http://localhost:8787/api/admin/fix-account-id | jq

# Reconcile workspace vs local accounts (dry run)
curl -X POST -H "Authorization: Bearer $API_KEY" \
  "http://localhost:8787/api/admin/reconcile?dry_run=1" | jq

# Stop a running task
curl -X POST -H "Authorization: Bearer $API_KEY" \
  http://localhost:8787/api/tasks/{task_id}/stop

OAuth Flow

# Get OAuth URL for an account
curl -H "Authorization: Bearer $API_KEY" \
  http://localhost:8787/api/oauth/url

# Submit manually-obtained OAuth callback URL
curl -X POST -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"callback_url": "http://localhost:..."}' \
  http://localhost:8787/api/oauth/manual

Key Workflows

1. Batch Generate Free Personal Accounts

The "F" in AutoTeam-F's key feature: register accounts → master invites to Team → accounts leave workspace → Personal OAuth stored.

Via Web: Dashboard → "账号池操作" → "生成免费号" → set count → start.

Via API:

curl -X POST -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"target": 5, "leave_workspace": true}' \
  http://localhost:8787/api/tasks/fill

Constraints: baseline + new_batch ≤ 4 (Team seat limit). AutoTeam-F auto-shrinks the batch if exceeded.

2. Smart Rotation

Accounts with exhausted Codex quota are moved to standby. When standby accounts recover quota, they're promoted back to active before registering new ones.

uv run autoteam rotate 5
# Equivalent API:
curl -X POST -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"target": 5}' \
  http://localhost:8787/api/tasks/rotate

3. Fix 401 "Must be part of this workspace"

API_KEY="$(grep '^API_KEY' .env | cut -d= -f2)"

# Step 1: Diagnose
curl -s -H "Authorization: Bearer $API_KEY" \
  http://localhost:8787/api/admin/diagnose | jq

# Step 2: Hot-fix account_id (no re-login needed)
curl -s -X POST -H "Authorization: Bearer $API_KEY" \
  http://localhost:8787/api/admin/fix-account-id | jq

4. Reconcile Ghost/Orphan Accounts

Identifies: orphaned seats (workspace has seat, no local auth), mismatched accounts, exhausted-but-not-abandoned, ghost accounts.

# Safe dry run first
uv run autoteam reconcile --dry-run

# Apply fixes (behavior controlled by RECONCILE_KICK_ORPHAN / RECONCILE_KICK_GHOST in .env)
uv run autoteam reconcile

5. CPA Bidirectional Sync

# Push local active accounts → CPA
uv run autoteam sync

# Pull CPA accounts → local (import external auth)
uv run autoteam pull-cpa

Account State Machine

registered → active → standby → (recover) → active
                   ↘ (exhausted, no recovery) → abandoned

standby: quota exhausted, waiting for recovery
active: has valid Codex quota
auth_invalid: 401/403 on check → needs re-OAuth
network_error: transient DNS/timeout/5xx → retried next cycle (not marked invalid)

Failure log: Registration failures are persisted to register_failures.json with categories: phone_required, duplicate, kick_failed, oauth_failed.


Python Integration Examples

Check Account Status Programmatically

import httpx
import os

API_KEY = os.environ["AUTOTEAM_API_KEY"]
BASE_URL = "http://localhost:8787"

headers = {"Authorization": f"Bearer {API_KEY}"}

with httpx.Client() as client:
    # Get all accounts
    accounts = client.get(f"{BASE_URL}/api/accounts", headers=headers).json()

    active = [a for a in accounts if a["status"] == "active"]
    standby = [a for a in accounts if a["status"] == "standby"]

    print(f"Active: {len(active)}, Standby: {len(standby)}")

    # Trigger rotation if below threshold
    if len(active) < 3:
        resp = client.post(
            f"{BASE_URL}/api/tasks/rotate",
            headers=headers,
            json={"target": 5}
        )
        task = resp.json()
        print(f"Rotation task started: {task['task_id']}")

Poll Task Until Complete

import httpx
import time
import os

API_KEY = os.environ["AUTOTEAM_API_KEY"]
BASE_URL = "http://localhost:8787"
headers = {"Authorization": f"Bearer {API_KEY}"}

def run_task_and_wait(endpoint: str, payload: dict, timeout: int = 600) -> dict:
    with httpx.Client(timeout=30) as client:
        resp = client.post(
            f"{BASE_URL}/api/tasks/{endpoint}",
            headers=headers,
            json=payload
        )
        resp.raise_for_status()
        task_id = resp.json()["task_id"]

        deadline = time.time() + timeout
        while time.time() < deadline:
            status = client.get(
                f"{BASE_URL}/api/tasks/{task_id}",
                headers=headers
            ).json()

            if status["state"] in ("completed", "failed", "stopped"):
                return status

            time.sleep(5)

        raise TimeoutError(f"Task {task_id} did not complete in {timeout}s")

# Generate 3 free personal accounts
result = run_task_and_wait("fill", {"target": 3, "leave_workspace": True})
print(f"Task result: {result['state']}, accounts: {result.get('result')}")

Export Codex CLI Auth

import httpx
import json
import os

API_KEY = os.environ["AUTOTEAM_API_KEY"]
BASE_URL = "http://localhost:8787"
headers = {"Authorization": f"Bearer {API_KEY}"}

with httpx.Client() as client:
    resp = client.get(f"{BASE_URL}/api/auth/export", headers=headers)
    auth_data = resp.json()

# Write Codex CLI format
with open(os.path.expanduser("~/.codex/auth.json"), "w") as f:
    json.dump(auth_data, f, indent=2)

print("Auth exported to ~/.codex/auth.json")

Docker Compose Reference

# docker-compose.yml (from repo)
services:
  autoteam:
    build: .
    ports:
      - "8787:8787"
    volumes:
      - ./data:/app/data
    environment:
      - DATA_DIR=/app/data
    restart: unless-stopped
# Start
docker compose up -d

# View logs
docker compose logs -f autoteam

# Run CLI commands inside container
docker compose exec autoteam uv run autoteam status
docker compose exec autoteam uv run autoteam reconcile --dry-run

# Restart after config change
docker compose restart autoteam

Linux host access: If CPA or mail service runs on the host, use host.docker.internal (Docker Desktop) or the host's bridge IP (172.17.0.1 typically) instead of localhost in .env.


Troubleshooting

401 "Must be part of this workspace"

Most common cause: account_id stored locally doesn't match OpenAI's records.

API_KEY="$(grep '^API_KEY' data/.env | cut -d= -f2)"
curl -s -H "Authorization: Bearer $API_KEY" http://localhost:8787/api/admin/diagnose | jq
curl -s -X POST -H "Authorization: Bearer $API_KEY" http://localhost:8787/api/admin/fix-account-id | jq

Mail provider mismatch warning on startup

WARNING: MAIL_PROVIDER=cf_temp_email but base_url fingerprint suggests maillab protocol

Fix: ensure MAIL_PROVIDER in .env matches your actual deployed mail service. cf_temp_email uses Cloudflare Workers API; maillab uses the cloud-mail REST API.

Registration fails with phone_required

OpenAI began requiring phone verification for some IPs. Use a residential proxy. Check register_failures.json for categorized failure counts.

Playwright times out during registration

# Increase timeout — edit .env
PLAYWRIGHT_TIMEOUT=120000  # ms, default 60000

Common on high-latency VPS. Consider residential proxy.

Standby accounts never recover

AutoTeam-F uses 24h dedup for standby quota checks to avoid rate-limits. Force a check:

curl -X POST -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"include_standby": true}' \
  http://localhost:8787/api/tasks/check

Personal accounts invalidated after master account ban

This is a known limitation — personal accounts derived from a banned master account (via Team invite → leave → personal OAuth) will also become invalid. The accounts must be regenerated from a new master account.

Task stop is soft, not immediate

Clicking "Stop Task" completes the current account registration (~2 min) before exiting. This is by design to avoid half-registered accounts. The task will show stopping then stopped.

autoteam fill batch auto-shrinks

Team seats are capped: baseline + new_batch ≤ 4. AutoTeam-F auto-reduces batch size. To generate more, run multiple fill cycles after previous accounts have left the workspace.


Project Structure

AutoTeam-F/
├── autoteam/           # Core Python package
│   ├── api/            # FastAPI routes
│   ├── core/           # Account manager, rotation logic
│   ├── playwright_/    # Browser automation (register, OAuth, Codex)
│   ├── mail/           # cf_temp_email + maillab backends
│   └── cli.py          # CLI entry points
├── frontend/           # Vue 3 dashboard source
├── data/               # Runtime data (gitignored)
│   ├── accounts.json   # Account pool state
│   ├── register_failures.json  # Failure analytics
│   └── .env            # Configuration
├── docs/               # Extended documentation
├── docker-compose.yml
└── setup.sh

Links

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

36.87%
按下载量换算91

Claude

26.74%
按下载量换算66

Cursor

18.09%
按下载量换算45

Gemini CLI

9.3%
按下载量换算23

安全审计

Gen Agent Trust Hub

未通过

Socket

可疑

Snyk

未通过

权限和风险

操作浏览器

该 Skill 可能涉及浏览器控制能力,使用时可能读取或操作网页内容,需要在受控环境中确认权限边界。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills