codex-console-openai-registration

SkillAI & models

codex-console is an enhanced, actively-maintained fork of cnlimiter/codex-manager. It provides a Web UI and CLI for automated OpenAI account registration, login, token retrieval, batch task management, log viewing, and data export.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the codex-console-openai-registration skill

About this capability

Trending Claude Code skills

What this skill tells your AI

The instructions your AI receives, as published by reason-machines/trending-skills in skills/codex-console-openai-registration/SKILL.md and read by ahel’s review.

---
name: codex-console-openai-registration
description: Skill for using codex-console, an integrated console for automated OpenAI account registration, login, token retrieval, batch processing, and data export with Web UI management.
triggers:
  - "set up codex-console"
  - "automate OpenAI account registration"
  - "batch register OpenAI accounts"
  - "run codex-console web UI"
  - "configure codex console database"
  - "package codex-console executable"
  - "fix OpenAI registration flow"
  - "deploy codex-console with docker"
---

# codex-console

> Skill by [ara.so](https://ara.so) — Daily 2026 Skills collection.

codex-console is an enhanced, actively-maintained fork of [cnlimiter/codex-manager](https://github.com/cnlimiter/codex-manager). It provides a Web UI and CLI for automated OpenAI account registration, login, token retrieval, batch task management, log viewing, and data export. Key fixes include Sentinel POW solving, split register/login flows, deduplication of verification code sending, and improved page-state detection.

---

## Installation

### Requirements

- Python 3.10+
- `uv` (recommended) or `pip`

### Clone and Install

```bash
git clone https://github.com/dou-jiang/codex-console.git
cd codex-console

# Using uv (recommended)
uv sync

# Or using pip
pip install -r requirements.txt

Environment Configuration

cp .env.example .env
# Edit .env as needed

Key environment variables:

VariableDescriptionDefault
APP_HOSTListen host0.0.0.0
APP_PORTListen port8000
APP_ACCESS_PASSWORDWeb UI access passwordadmin123
APP_DATABASE_URLDatabase connection stringdata/database.db

Priority order: CLI args > .env variables > DB settings > defaults


Starting the Web UI

# Default (127.0.0.1:8000)
python webui.py

# Custom host and port
python webui.py --host 0.0.0.0 --port 8080

# With access password
python webui.py --access-password mypassword

# Debug mode (hot reload)
python webui.py --debug

# Combined
python webui.py --host 0.0.0.0 --port 8080 --access-password mypassword

Access the UI at: http://127.0.0.1:8000


Docker Deployment

docker-compose (recommended)

docker-compose up -d

Customize environment variables in docker-compose.yml:

version: "3.8"
services:
  codex-console:
    image: ghcr.io/<yourname>/codex-console:latest
    ports:
      - "1455:1455"
    environment:
      WEBUI_HOST: "0.0.0.0"
      WEBUI_PORT: "1455"
      WEBUI_ACCESS_PASSWORD: "${WEBUI_ACCESS_PASSWORD}"
      LOG_LEVEL: "info"
    volumes:
      - ./data:/app/data

docker run

docker run -d \
  -p 1455:1455 \
  -e WEBUI_HOST=0.0.0.0 \
  -e WEBUI_PORT=1455 \
  -e WEBUI_ACCESS_PASSWORD="${WEBUI_ACCESS_PASSWORD}" \
  -v $(pwd)/data:/app/data \
  --name codex-console \
  ghcr.io/<yourname>/codex-console:latest

⚠️ Always mount -v $(pwd)/data:/app/data to persist database and account data across container restarts.

Docker environment variables:

VariableDescription
WEBUI_HOSTListen host (default 0.0.0.0)
WEBUI_PORTListen port (default 1455)
WEBUI_ACCESS_PASSWORDWeb UI password
DEBUGSet 1 or true for debug mode
LOG_LEVELLog level: info, debug, etc.

Database Configuration

SQLite (default)

# Uses data/database.db by default
python webui.py

Remote PostgreSQL

export APP_DATABASE_URL="postgresql://user:password@host:5432/dbname"
python webui.py

Also supports DATABASE_URL env var (lower priority than APP_DATABASE_URL).


Building Executables

Windows

build.bat

Output: dist/codex-console-windows-X64.exe

The built executable supports CLI arguments:

codex-console.exe --access-password mypassword
codex-console.exe --host 0.0.0.0 --port 8080

Linux / macOS

bash build.sh

Build troubleshooting checklist:

  • Python is added to PATH
  • All dependencies installed (uv sync or pip install -r requirements.txt)
  • Antivirus is not blocking PyInstaller output
  • Check terminal output for specific error messages

Key Architectural Changes (vs upstream)

Understanding these helps when extending or debugging:

1. Sentinel POW Solving

OpenAI now enforces Sentinel Proof-of-Work validation. The original codebase passed empty values; this fork implements actual POW solving:

# The registration flow now calls POW solver before submitting
pow_token = solve_sentinel_pow(challenge)
headers["openai-sentinel-token"] = pow_token

2. Split Register + Login Flow

Registration no longer returns a usable token directly. The flow is now:

# Step 1: Register account
register_result = await register_account(email, password)

# Step 2: Separately log in to retrieve token
token = await login_and_get_token(email, password)

3. Verification Code Handling

The server sends the verification code email automatically. The old logic sent a duplicate manual request, causing conflicts:

# Old (broken): manually trigger code send
# await send_verification_code(email)  # REMOVED

# New: wait for the system-sent code
code = await wait_for_verification_email(email_client)

4. Login Page State Detection

Login re-entry now correctly detects page transitions and submits credentials at the right stage:

# Detect current page state before acting
page_state = detect_login_page_state(response)
if page_state == "password_required":
    await submit_password(password)
elif page_state == "verification_required":
    await submit_verification_code(code)

Common Patterns

Running a Batch Registration Task

  1. Open Web UI at http://127.0.0.1:8000
  2. Navigate to TasksNew Task
  3. Configure email service (IMAP/接码 provider), proxy settings, and batch count
  4. Start the task and monitor logs in real-time via the Logs panel

Exporting Account Data

Use the Web UI Export feature to download account credentials and tokens as CSV or JSON.

Viewing Logs

Real-time logs are available in the Web UI. For CLI log output:

python webui.py --debug 2>&1 | tee run.log

Using a Custom Email Service

Set up your email接码 provider credentials in the Web UI settings panel or via environment:

export EMAIL_IMAP_HOST="imap.yourprovider.com"
export EMAIL_IMAP_USER="${EMAIL_USER}"
export EMAIL_IMAP_PASS="${EMAIL_PASS}"

Troubleshooting

Web UI not accessible

# Check the host binding — 127.0.0.1 only allows local access
python webui.py --host 0.0.0.0 --port 8000

Registration stuck or failing

  • Ensure your proxy is configured and working
  • Check logs for Sentinel POW errors — update to latest commit
  • Verify email接码 service credentials are correct

Database errors on startup

# Ensure data directory exists
mkdir -p data

# For PostgreSQL, verify connection string
psql "postgresql://user:password@host:5432/dbname" -c "SELECT 1"

PyInstaller build fails on Windows

# Run in a clean environment
pip install pyinstaller
pyinstaller --clean codex-console.spec

Check for antivirus interference — whitelist the dist/ directory during build.

Token retrieval returns empty

This typically means the login flow is hitting a new page state. Check:

  • That you're on the latest commit (login page detection is actively maintained)
  • Proxy is not flagged by OpenAI
  • Verification code email was received and parsed correctly

Project Structure (key files)

codex-console/
├── webui.py              # Main entry point — starts Web UI
├── build.bat             # Windows packaging script
├── build.sh              # Linux/macOS packaging script
├── docker-compose.yml    # Docker Compose configuration
├── .env.example          # Environment variable template
├── data/                 # SQLite DB and account data (persisted)
└── requirements.txt      # Python dependencies

Attribution

This project is a fix-and-enhancement fork of cnlimiter/codex-manager. When publishing or redistributing, include:

Forked and fixed from cnlimiter/codex-manager

Disclaimer: For learning, research, and technical exchange only. Comply with all platform terms of service. Users assume all responsibility for use.

Signals

GitHub stars
78
Forks
13
Last commit
Jul 2026

ahel review

  • S4info
    community integration — published by reason-machines, not openai

Automated review, not a security audit. Ruleset v1.

Advanced
Catalog kind
skill
Gateway key
codex-console-openai-registration-reason-machines
Source
github.com/reason-machines/trending-skills