| name | cpa-codex-manager-openai-pool |
| description | Manage OpenAI account pools with automated registration, CLIProxyAPI monitoring, and intelligent auto-replenishment |
| triggers | ["how do I set up CPA Codex Manager for OpenAI account pools","automate OpenAI account registration with CPA manager","configure CLIProxyAPI monitoring and auto-replenishment","manage OpenAI account pools with health checks","set up batch registration for OpenAI accounts","integrate CPA Codex Manager with CLIProxyAPI","monitor and maintain OpenAI account quota","configure emergency defense for account pool management"] |
CPA-Codex-Manager OpenAI Account Pool Management
Skill by ara.so — Codex Skills collection.
CPA-Codex-Manager is a high-performance management panel for OpenAI account pools, featuring automated batch registration, real-time CLIProxyAPI platform monitoring, and intelligent maintenance systems.
What It Does
- Batch Account Registration: Parallel (up to 50 threads, 1000 tasks) and pipeline modes with random intervals
- CLIProxyAPI Auto-Inspection: Detects 401 auth failures and quota exhaustion, auto-removes invalid accounts
- Smart Auto-Replenishment: Monitors pool health, triggers automated replenishment when accounts fall below threshold
- Real-time Monitoring: WebSocket-based log streaming and progress visualization
- Multi-Email Support: Integrates Outlook, TempMail, CloudMail services
- Emergency Defense: Dynamic threshold protection with configurable cooling periods
Installation
Standard Installation
uv sync
pip install -r requirements.txt
Environment Configuration
cp .env.example .env
Edit .env with your configuration:
WEBUI_HOST=0.0.0.0
WEBUI_PORT=8000
WEBUI_ACCESS_PASSWORD=your_secure_password
APP_DATABASE_URL=data/database.db
Docker Installation
mkdir -p ~/CPA-Codex-Manager/data ~/CPA-Codex-Manager/logs
cd ~/CPA-Codex-Manager
curl -O https://raw.githubusercontent.com/Maoleio/CPA-Codex-Manager/main/docker-compose.yml
docker compose up -d
Desktop Mode
pip install pywebview
python desktop.py
Running the Application
Web Mode
python webui.py
Access at http://localhost:8000
Docker Mode
docker compose up -d
docker compose logs -f
docker compose pull && docker compose up -d
Core Python API Usage
Database Models
from app.models import (
AccountPool,
RegistrationTask,
CPAService,
InspectionHistory
)
from app.database import get_db
with get_db() as db:
accounts = db.query(AccountPool).filter(
AccountPool.status == 'ready'
).all()
print(f"Ready accounts: {len(accounts)}")
for acc in accounts:
print(f"Email: {acc.email}, Token: {acc.refresh_token}")
Registration Task Creation
from app.services.registration import RegistrationService
from app.schemas import RegistrationTaskCreate
async def create_batch_registration():
service = RegistrationService()
task_data = RegistrationTaskCreate(
count=100,
email_service="outlook",
mode="parallel",
max_workers=50,
random_interval_min=5,
random_interval_max=15
)
task = await service.create_task(task_data)
print(f"Task created: {task.id}")
await service.start_task(task.id)
CPA Service Integration
from app.services.cpa_service import CPAServiceManager
async def configure_cpa():
manager = CPAServiceManager()
cpa = await manager.add_service(
name="Production CPA",
base_url="https://your-cpa-instance.com",
admin_token="${CPA_ADMIN_TOKEN}",
enabled=True
)
await manager.update_inspection_config(
cpa.id,
enabled=True,
interval_minutes=60,
check_401=True,
check_quota=True,
auto_remove=True
)
Auto-Replenishment Configuration
from app.services.replenishment import ReplenishmentService
async def setup_auto_replenish():
service = ReplenishmentService()
await service.configure(
cpa_service_id=1,
enabled=True,
threshold=50,
replenish_count=100,
mode="parallel",
email_service="outlook"
)
Manual Account Inspection
from app.services.inspection import InspectionService
async def run_inspection():
service = InspectionService()
result = await service.inspect_cpa_accounts(
cpa_service_id=1,
check_401=True,
check_quota=True,
auto_remove=True
)
print(f"Inspection complete:")
print(f" Total checked: {result['total_checked']}")
print(f" Valid: {result['valid_count']}")
print(f" Invalid (401): {result['invalid_401']}")
print(f" Quota exhausted: {result['quota_exhausted']}")
print(f" Removed: {result['removed_count']}")
Emergency Defense Configuration
from app.services.emergency import EmergencyDefenseService
async def configure_emergency_defense():
service = EmergencyDefenseService()
await service.configure(
enabled=True,
threshold_percentage=50,
cleanup_percentage=50,
cooldown_minutes=5
)
WebSocket Integration for Real-time Logs
from fastapi import WebSocket
import asyncio
async def websocket_log_stream(websocket: WebSocket, task_id: int):
await websocket.accept()
async for log_line in get_task_logs(task_id):
await websocket.send_json({
"type": "log",
"task_id": task_id,
"message": log_line,
"timestamp": datetime.utcnow().isoformat()
})
await websocket.close()
Common Patterns
Full Registration Workflow
from app.services.registration import RegistrationService
from app.services.cpa_service import CPAServiceManager
async def full_registration_workflow():
reg_service = RegistrationService()
task = await reg_service.create_task(
count=200,
email_service="outlook",
mode="parallel",
max_workers=50
)
await reg_service.start_task(task.id)
while True:
status = await reg_service.get_task_status(task.id)
print(f"Progress: {status['success']}/{status['total']} "
f"({status['progress_percentage']:.1f}%)")
if status['status'] in ['completed', 'failed']:
break
await asyncio.sleep(5)
cpa_manager = CPAServiceManager()
uploaded = await cpa_manager.upload_accounts(
cpa_service_id=1,
task_id=task.id
)
print(f"Uploaded {uploaded} accounts to CPA")
Scheduled Inspection with Auto-Replenish
import asyncio
from app.services.inspection import InspectionService
from app.services.replenishment import ReplenishmentService
async def scheduled_maintenance():
inspection = InspectionService()
replenish = ReplenishmentService()
while True:
result = await inspection.inspect_cpa_accounts(
cpa_service_id=1,
check_401=True,
check_quota=True,
auto_remove=True
)
ready_count = result['valid_count']
if ready_count < 50:
print(f"Low account count ({ready_count}), triggering replenishment")
await replenish.trigger_replenish(
cpa_service_id=1,
count=100
)
await asyncio.sleep(3600)
Query Account Pool Statistics
from app.database import get_db
from app.models import AccountPool
from sqlalchemy import func
def get_pool_statistics():
with get_db() as db:
stats = db.query(
AccountPool.status,
func.count(AccountPool.id).label('count')
).group_by(AccountPool.status).all()
return {status: count for status, count in stats}
Configuration Best Practices
Inspection Configuration
INSPECTION_CONFIG = {
"interval_minutes": 60,
"check_401": True,
"check_quota": True,
"auto_remove": True,
"emergency_threshold": 50,
}
Replenishment Configuration
REPLENISHMENT_CONFIG = {
"enabled": True,
"threshold": 50,
"replenish_count": 100,
"mode": "parallel",
"email_service": "outlook",
"max_workers": 50
}
Registration Modes
Parallel Mode (fast, high volume):
parallel_config = {
"mode": "parallel",
"max_workers": 50,
"count": 1000
}
Pipeline Mode (stealth, bypass rate limits):
pipeline_config = {
"mode": "pipeline",
"random_interval_min": 10,
"random_interval_max": 30,
"count": 100
}
Troubleshooting
Registration Failures
from app.models import RegistrationTask
with get_db() as db:
failed_tasks = db.query(RegistrationTask).filter(
RegistrationTask.status == 'failed'
).all()
for task in failed_tasks:
print(f"Task {task.id}: {task.error_message}")
CPA Connection Issues
from app.services.cpa_service import CPAServiceManager
async def test_cpa_connection():
manager = CPAServiceManager()
try:
health = await manager.check_health(cpa_service_id=1)
print(f"CPA Status: {health['status']}")
except Exception as e:
print(f"Connection failed: {e}")
Account Pool Health Check
from app.services.inspection import InspectionService
async def health_check():
service = InspectionService()
result = await service.inspect_cpa_accounts(
cpa_service_id=1,
check_401=True,
check_quota=True,
auto_remove=False
)
total = result['total_checked']
valid = result['valid_count']
health_percentage = (valid / total * 100) if total > 0 else 0
print(f"Pool health: {health_percentage:.1f}%")
if health_percentage < 50:
print("⚠️ Pool health critical, consider manual intervention")
Database Migration
from app.database import init_db
from app.models import Base
init_db()
import sqlite3
from app.database import get_db
sqlite_conn = sqlite3.connect('data/database.db')
sqlite_cursor = sqlite_conn.cursor()
accounts = sqlite_cursor.execute(
"SELECT email, password, refresh_token, status FROM account_pool"
).fetchall()
with get_db() as db:
for email, password, token, status in accounts:
account = AccountPool(
email=email,
password=password,
refresh_token=token,
status=status
)
db.add(account)
db.commit()
Desktop Packaging
macOS
chmod +x scripts/build_macos_dmg.sh
./scripts/build_macos_dmg.sh
Windows
scripts\build_windows.bat
REM Output: dist\CPA-Codex-Manager\CPA-Codex-Manager.exe
Environment Variables Reference
| Variable | Default | Description |
|---|
WEBUI_HOST | 127.0.0.1 | Web UI bind address |
WEBUI_PORT | 8000 | Web UI port |
WEBUI_ACCESS_PASSWORD | - | Admin password (required) |
APP_DATABASE_URL | data/database.db | Database connection string |
All secrets should be stored in environment variables or .env file, never hardcoded.