skills/simpleauthflow-chrome-extension/SKILL.md
```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 --- # SimpleAuth
npx skillsauth add aradotso/trending-skills skills/simpleauthflow-chrome-extensionInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
---
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
# 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
http://127.0.0.1:5173/#/oauth. Leave it as-is for local use.| 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) |
If the automated email chain fails (e.g., Burner Mailbox triggers a CAPTCHA):
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.
No config file changes are needed to adjust this — it is an upstream site limitation based on IP + request headers.
- 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
When Burner Mailbox shows a human verification page:
If OpenAI injects a "please agree to terms" or "confirm to continue" interstitial:
// 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);
});
}
// sidepanel/index.js
document.getElementById('stop-btn').addEventListener('click', () => {
chrome.runtime.sendMessage({ type: 'STOP_FLOW' }, (response) => {
console.log('[SimpleAuthFlow] Stop acknowledged:', response);
});
});
// 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();
}
}
// 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);
}
// 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] Waiting for verification email (attempt ${attempt})...`);
await sleep(WAIT_MS);
const code = extractCodeFromInbox();
if (code) {
console.log(`[SimpleAuthFlow] Code received: ${code}`);
return code;
}
console.warn(`[SimpleAuthFlow] No email detected, triggering resend (attempt ${attempt})...`);
await triggerResendFn();
}
throw new Error('[SimpleAuthFlow] Failed to receive verification code after max retries.');
}
function sleep(ms) {
return new Promise((resolve) => setTimeout(resolve, ms));
}
function extractCodeFromInbox() {
// DOM scraping logic specific to Burner Mailbox inbox
const codeEl = document.querySelector('.email-body .verification-code');
return codeEl ? codeEl.textContent.trim() : null;
}
SimpleAuthFlow/
├── manifest.json # Chrome extension manifest (MV3)
├── background/
│ └── worker.js # Service worker: flow orchestration, message bus
├── content/
│ ├── main.js # Content script injected into ChatGPT/OpenAI pages
│ └── steps/ # Individual automation step modules
│ ├── register.js
│ ├── fetchEmail.js
│ ├── fetchVerificationCode.js
│ ├── confirmAgreement.js
│ └── oauthCallback.js
├── sidepanel/
│ ├── index.html # Side panel UI
│ ├── index.js # Panel logic: Auto/Stop/Continue buttons, step display
│ └── workflow.js # Step state tracking and resume logic
└── icons/
└── icon.png
development
```markdown --- name: compose-performance-skills description: Install and use the skydoves/compose-performance-skills agent skill library to diagnose and fix Jetpack Compose performance issues including stability, recomposition, lazy layouts, modifiers, side effects, and build configuration. triggers: - "my composable recomposes too often" - "LazyColumn drops frames during scroll" - "diagnose Compose stability issues" - "fix unnecessary recomposition in Jetpack Compose" - "optimize Com
development
Headless iOS Simulator manager with host-side HID input injection, 60fps streaming, and device farm web UI for iOS 26
development
```markdown --- name: claude-code-game-studios description: Turn Claude Code into a full 49-agent game dev studio with 72 workflow skills, automated hooks, and a real studio hierarchy for Godot, Unity, and Unreal projects. triggers: - "set up claude code game studios" - "use ai agents for game development" - "set up game dev studio with claude" - "add game studio agents to my project" - "how do I use claude code for game dev" - "set up godot unity unreal ai workflow" - "49 agents g
development
```markdown --- name: xq-py-quantum-vm description: Python implementation of the Quip Network's quantum virtual machine (xqvm) triggers: - quantum virtual machine python - xqvm quip network - quantum circuit simulation python - xq-py quantum vm - quip network quantum python - simulate quantum gates python - quantum vm xqvm - xqvm-py quantum circuit --- # xq-py Quantum Virtual Machine > Skill by [ara.so](https://ara.so) — Daily 2026 Skills collection. `xqvm-py` is a Python impl