simpleauthflow-chrome-extension
```markdown
What this skill does
```markdown
---
name: simpleauthflow-chrome-extension
description: Chrome extension that automates the ChatGPT OAuth registration and authorization flow with zero configuration required
triggers:
- automate chatgpt oauth flow
- chrome extension for chatgpt registration
- simpleauthflow setup
- automate openai account creation
- chatgpt oauth chrome extension
- simplify chatgpt authorization
- automated chatgpt signup extension
- chatgpt burner mailbox automation
---
# SimpleAuthFlow Chrome Extension
> Skill by [ara.so](https://ara.so) — Daily 2026 Skills collection.
SimpleAuthFlow is a Chrome extension that automates the ChatGPT OAuth registration and authorization flow. It is designed for zero-configuration personal use — install it, point it at a local CPA instance, and it handles the entire signup/auth cycle automatically including email verification, CAPTCHA prompts, and protocol confirmation pages.
---
## What It Does
- Automates the full ChatGPT OAuth flow (registration + authorization)
- Uses Burner Mailbox for disposable email addresses — no personal email needed
- Handles email verification codes automatically
- Detects and auto-confirms OpenAI agreement/protocol pages
- Supports semi-automatic mode: manually handle one step, auto-continue the rest
- Provides a **Workflow** panel with step-by-step controls and a **Continue** button for resuming interrupted flows
- Works with a local [CPA](https://github.com/) instance at `http://127.0.0.1:5173/#/oauth` by default
---
## Prerequisites
1. **CPA** — the OAuth callback/proxy service, running locally (default: `http://127.0.0.1:5173/#/oauth`)
2. **This extension** — loaded as an unpacked Chrome extension
No personal email address or phone number is required.
---
## Installation
### Load the Extension (Developer Mode)
```bash
# 1. Clone the repository
git clone https://github.com/NyxTides/SimpleAuthFlow.git
cd SimpleAuthFlow
# 2. Open Chrome and navigate to:
# chrome://extensions/
# 3. Enable "Developer mode" (top-right toggle)
# 4. Click "Load unpacked"
# 5. Select the SimpleAuthFlow project folder
```
### Start CPA Locally
```bash
# Example: start CPA on default port 5173
cd /path/to/cpa
npm install
npm run dev
# CPA now listens at http://127.0.0.1:5173/#/oauth
```
---
## Using the Extension
### Basic Flow
1. Click the extension icon in the Chrome toolbar to open the side panel.
2. The VPS/CPA URL field is pre-filled with `http://127.0.0.1:5173/#/oauth`. Leave it as-is for local use.
3. Click **Auto** to start the automated flow.
4. The extension will:
- Obtain a disposable email from Burner Mailbox
- Register a new ChatGPT account
- Fetch verification codes from the inbox
- Confirm any OpenAI protocol/agreement pages
- Complete the OAuth callback to CPA
### Workflow Panel Controls
| Button | Behavior |
|---|---|
| **Auto** | Start the full automated flow from the beginning |
| **Continue** | Resume from the last successful step (skips already-completed steps) |
| **Stop** | Immediately halt the current flow at any point |
| Individual step buttons | Click any step directly to run it in isolation (supports manual handoff) |
### Semi-Automatic Mode
If the automated email chain fails (e.g., Burner Mailbox triggers a CAPTCHA):
1. Click **Stop** to pause.
2. Manually complete the problematic step (e.g., solve CAPTCHA in the email tab, retrieve the code yourself).
3. Click the **next step button** in the Workflow panel to continue automation from that point.
4. Or click **Continue** — it resumes from the last confirmed successful step.
---
## Configuration
### VPS/CPA URL
The input field in the side panel accepts the CPA OAuth endpoint. Default value:
```
http://127.0.0.1:5173/#/oauth
```
Toggle visibility of the URL with the eye icon (👁) next to the input field.
### Rate Limits (Default Behavior)
- ~1 minute per complete flow
- ~5 flows per day on a single IP/request environment (same node = same fingerprint)
- To exceed 5/day: switch your proxy/VPN node and continue
No config file changes are needed to adjust this — it is an upstream site limitation based on IP + request headers.
---
## Key Internal Behaviors
### Email Retry Logic
```
- Wait 4 seconds for new email to arrive
- If no email detected → auto-trigger resend
- Retry up to 3 rounds before marking as failed
- Most flows succeed on the first attempt
```
### Security Verification (CAPTCHA) Handling
When Burner Mailbox shows a human verification page:
1. Extension detects the security check page.
2. Side panel displays a prompt: **"Please complete the verification in the email tab."**
3. User solves the CAPTCHA manually.
4. User clicks **Continue** in the side panel.
5. Extension waits for the page to return to normal, then resumes.
### OpenAI Agreement Page
If OpenAI injects a "please agree to terms" or "confirm to continue" interstitial:
- Extension automatically detects it.
- Clicks through without interrupting the flow.
- No user action required.
---
## Code Examples
### Injecting a Step Handler (content script pattern)
```javascript
// content/steps/confirmAgreement.js
/**
* Detects and auto-confirms OpenAI protocol/agreement pages.
* Returns true if handled, false if page not detected.
*/
async function confirmAgreementIfPresent() {
const continueBtn = document.querySelector(
'button[data-testid="accept-terms-button"], button.continue-btn'
);
if (!continueBtn) return false;
console.log('[SimpleAuthFlow] Agreement page detected, confirming...');
continueBtn.click();
// Wait for navigation away from the agreement page
await waitForNavigation(3000);
return true;
}
function waitForNavigation(timeout = 3000) {
return new Promise((resolve) => {
const start = location.href;
const interval = setInterval(() => {
if (location.href !== start) {
clearInterval(interval);
resolve();
}
}, 200);
setTimeout(() => {
clearInterval(interval);
resolve();
}, timeout);
});
}
```
### Sending a Stop Signal from the Side Panel
```javascript
// sidepanel/index.js
document.getElementById('stop-btn').addEventListener('click', () => {
chrome.runtime.sendMessage({ type: 'STOP_FLOW' }, (response) => {
console.log('[SimpleAuthFlow] Stop acknowledged:', response);
});
});
```
### Handling Stop in the Background Service Worker
```javascript
// background/worker.js
let flowActive = false;
chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
if (message.type === 'STOP_FLOW') {
flowActive = false;
sendResponse({ stopped: true });
}
if (message.type === 'START_FLOW') {
flowActive = true;
runFlow().catch(console.error);
sendResponse({ started: true });
}
});
async function runFlow() {
const steps = getSteps(); // returns ordered step functions
for (const step of steps) {
if (!flowActive) {
console.log('[SimpleAuthFlow] Flow stopped by user.');
break;
}
await step();
}
}
```
### Continue from Last Successful Step
```javascript
// sidepanel/workflow.js
/**
* Finds the index of the last successful step and resumes from the next one.
*/
function continueFromLastSuccess(steps, stepStatuses) {
let lastSuccess = -1;
for (let i = 0; i < steps.length; i++) {
if (stepStatuses[i] === 'success') {
lastSuccess = i;
}
}
const resumeFrom = lastSuccess + 1;
if (resumeFrom >= steps.length) {
console.log('[SimpleAuthFlow] All steps already completed.');
return;
}
console.log(`[SimpleAuthFlow] Resuming from step ${resumeFrom}: ${steps[resumeFrom].name}`);
runStepsFrom(steps, resumeFrom);
}
```
### Email Retry with Backoff
```javascript
// content/steps/fetchVerificationCode.js
const MAX_RETRIES = 3;
const WAIT_MS = 4000;
async function fetchVerificationCode(triggerResendFn) {
for (let attempt = 1; attempt <= MAX_RETRIES; attempt++) {
console.log(`[SimpleAuthFlow] WaitRelated in Writing & Docs
jax-development
IncludedUse this skill when the user is writing, debugging, profiling, refactoring, reviewing, benchmarking, parallelising, exporting, or explaining JAX code, or when they mention JAX, jax.numpy, jit, grad, value_and_grad, vmap, scan, lax, random keys, pytrees, jax.Array, sharding, Mesh, PartitionSpec, NamedSharding, pmap, shard_map, Pallas, XLA, StableHLO, checkify, profiler, or the JAX repo. It helps turn NumPy or PyTorch-style code into pure functional JAX, fix tracer/control-flow/shape/PRNG bugs, remove recompiles and host-device syncs, choose transforms and sharding strategies, inspect jaxpr/lowering/IR, and benchmark compiled code correctly.
nature-article-writer
IncludedDrafts, rewrites, diagnostically critiques, and style-calibrates primary research manuscripts for Nature and Nature Portfolio journals. Use when the user wants a Nature-style title, summary paragraph or abstract, introduction, results, discussion, methods, figure legends, presubmission enquiry, cover letter, reviewer response, or when a scientific draft sounds generic, jargon-heavy, structurally weak, or AI-ish and needs precise, broad-reader-friendly prose without inventing data, analyses, or references. Best for primary research articles and letters rather than reviews or press releases unless explicitly adapting one.
deckrd
IncludedDocument-driven framework that derives requirements, specifications, implementation plans, and executable tasks from goals through structured AI dialogue. Use when user says "write requirements", "create spec", "plan implementation", "derive tasks", "structure this feature", "break down into tasks", or "document this module". Also use for reverse engineering existing code into docs (/deckrd rev). Do NOT use for direct code writing — use /deckrd-coder after tasks are generated. Do NOT use when the user only wants to run or fix existing code without planning.
clinical-decision-support
IncludedGenerate professional clinical decision support (CDS) documents for pharmaceutical and clinical research settings, including patient cohort analyses (biomarker-stratified with outcomes) and treatment recommendation reports (evidence-based guidelines with decision algorithms). Supports GRADE evidence grading, statistical analysis (hazard ratios, survival curves, waterfall plots), biomarker integration, and regulatory compliance. Outputs publication-ready LaTeX/PDF format optimized for drug development, clinical research, and evidence synthesis.
handling-sf-data
IncludedSalesforce data operations with 130-point scoring. Use this skill to create, update, delete, bulk import/export, generate test data, and clean up org records using sf CLI and anonymous Apex. TRIGGER when: user creates test data, performs bulk import/export, uses sf data CLI commands, needs data factory patterns for Apex tests, or needs to seed/clean records in a Salesforce org. DO NOT TRIGGER when: SOQL query writing only (use querying-soql), Apex test execution (use running-apex-tests), or metadata deployment (use deploying-metadata).
accelint-ac-to-playwright
IncludedConvert and validate acceptance criteria for Playwright test automation. Use when user asks to (1) review/evaluate/check if AC are ready for automation, (2) assess if AC can be converted as-is, (3) validate AC quality for Playwright, (4) turn AC into tests, (5) generate tests from acceptance criteria, (6) convert .md bullets or .feature Gherkin files to Playwright specs, (7) create test automation from requirements. Handles both bullet-style markdown and Gherkin syntax with JSON test plan generation and validation.