Why HITL?
The Cookie-First Auth Cascade
Genie Helper uses a 3-tier authentication priority: Why cookies are best:- ✅ No CAPTCHA risk — you’ve already solved it during manual login
- ✅ 2FA support — you handle 2FA in your own browser
- ✅ Platform updates — works even if platform changes login flow
- ✅ Fastest — no browser automation overhead
- ✅ Most reliable — 99% success rate vs. ~70% for automated login
Installing the Browser Extension
The GenieHelper Cookie Capture extension is available for Chrome, Firefox, and mobile browsers.Download the Extension
/app/platforms and click the Cookie Sessions tab.You’ll see download links for:Desktop:- Chrome / Brave / Edge —
geniehelper-chrome.zip(recommended for Chromium browsers) - Firefox —
geniehelper-firefox.zip
- Firefox for Android — Install from Firefox Add-ons or sideload the
.xpi - Kiwi Browser (Android) — Install from Chrome Web Store or sideload the
.zip - Orion Browser (iOS) — Supports Chrome & Firefox extensions natively
Load Extension Unpacked
- Go to
chrome://extensions - Enable Developer mode (toggle in top-right)
- Click Load unpacked
- Select the extracted
geniehelper-chromefolder - Extension appears with a cookie icon
- Go to
about:debugging - Click This Firefox (left sidebar)
- Click Load Temporary Add-on
- Select the
manifest.jsonfile insidegeniehelper-firefoxfolder - Extension loads (will be removed on browser restart — use
.xpifor permanent install)
- Open Firefox
- Go to Settings → Add-ons → Install add-on from file
- Select the downloaded
.xpifile - Grant permissions
- Open Kiwi Browser
- Go to Menu → Extensions → (from .zip)
- Select the
geniehelper-chrome.zipfile - Grant permissions
Configure Extension Settings
/app/platforms, you’ll see 3 config values:1. Server URLhttps://geniehelper.com (or your custom domain)2. Directus Access TokenYour JWT token (truncated for security:
abc123...xyz789)3. Creator Profile IDYour
creator_profiles UUID from DirectusCopy each value:- Click the Copy button next to each field
- Right-click the extension icon → Options (or Settings)
- Paste the 3 values into the extension settings form
- Click Save Settings
Verify Extension is Ready
- Server URL displayed
- Token status: Configured (green checkmark)
- Profile ID: Set (green checkmark)
- Platform detection: Not on a supported platform (gray, since you’re on geniehelper.com)
Capturing Cookies: Step-by-Step
Trigger a HITL Request (or Proactive Capture)
- Run a scrape or schedule a post
-
If Genie can’t log in automatically, you’ll see a yellow HITL banner on the dashboard:
Manual login required
Genie needs your active session cookies. Log into OnlyFans in another tab, then capture cookies with the browser extension and hit Retry.
- Go to
/app/platforms→ Cookie Sessions tab - Manually log into your platform in a new tab
- Capture cookies before running any operations (recommended)
- Faster scrapes (no waiting for HITL cycle)
- Prevents interruptions mid-operation
- You can handle 2FA and CAPTCHAs calmly
Log Into Your Platform
- OnlyFans:
https://onlyfans.com - Fansly:
https://fansly.com - Instagram:
https://instagram.com - TikTok:
https://tiktok.com - X (Twitter):
https://x.com - etc.
- Enter username and password
- Complete 2FA if prompted (SMS, authenticator app, email code)
- Solve any CAPTCHAs
- Verify you’re on the logged-in homepage (profile pic visible)
Click the Extension Icon
- Detected Platform: OnlyFans (or whichever you’re on)
- Cookie Count: 23 cookies detected
- Capture Button: Capture Cookies & Sync (green, enabled)
- Not logged in (refresh and log in again)
- On an unsupported platform
- Extension not configured (go back to setup)
Click 'Capture Cookies & Sync'
- Extension reads all cookies for the current domain (e.g.,
.onlyfans.com) - Includes HttpOnly cookies (critical for authentication)
- Sends them to your GenieHelper server via
POST /api/credentials/store-platform-session - Server encrypts the cookie payload with AES-256-GCM
- Saves to
platform_sessionscollection in Directus - Returns success response
- Popup shows: ✅ 23 cookies captured for OnlyFans
- Toast notification: “Cookies synced successfully”
Verify Cookie Session in Dashboard
/app/platforms → Cookie Sessions tab.You should see a new session card:- Platform: OnlyFans (or your platform)
- Status: Active (green shield icon)
- Captured: just now
- Expires: (calculated from cookie max-age, if available)
Manual Cookie Import (Fallback)
If you can’t install the extension (corporate browser, unsupported platform, etc.), you can manually paste cookies.Open DevTools on the Platform
- Log into your platform (e.g., OnlyFans)
- Press F12 (or Cmd+Opt+I on Mac) to open DevTools
- Go to the Network tab
Capture a Request
- Refresh the page (or navigate to your profile)
- Click any request in the Network tab (the first one usually works)
- Scroll to Request Headers section
- Find the Cookie header
- Copy the entire value (looks like:
sess=abc123; auth_id=xyz456; bc=def789; ...)
Paste into Manual Import Form
- Go to
/app/platforms→ Cookie Sessions tab - Scroll to Manual Cookie Import section
- Select your platform from the dropdown (OnlyFans, Fansly, etc.)
- Paste the cookie string into the textarea
- Click Import Cookies
Managing Cookie Sessions
Viewing Active Sessions
Go to/app/platforms → Cookie Sessions tab.
Each session card shows:
- Platform: OnlyFans, Fansly, etc.
- Status:
- Active (green shield) — cookies are valid
- Expired (amber warning) — cookies past max-age
- Revoked (gray) — manually deleted
- Captured: Timestamp (e.g., “2h ago”)
- Expires: Estimated expiry (if available)
Revoking a Session
If you want to delete a session (e.g., you logged out of the platform, or cookies are stale):- Click the trash icon on the session card
- Confirm: “Revoke this cookie session? The agent will need you to log in again.”
- Session is deleted from
platform_sessions - Next operation will fall back to credentials or create a new HITL request
Refreshing Expired Cookies
Cookies typically expire after 7-30 days (platform-dependent). When a session expires:- Status changes to Expired (amber)
- Operations using this session will fail
- You’ll see a HITL banner on the dashboard
- Follow the capture steps again to refresh cookies
Mobile Browser Cookie Capture
Firefox for Android
Firefox 120+ supports full extensions on Android.Install Extension
- Open Firefox on Android
- Visit
https://addons.mozilla.org/en-US/android/addon/geniehelper-cookie-capture/ - Tap Add to Firefox
- Grant permissions
- Download
geniehelper-firefox.xpifrom/app/platforms - Open Firefox → Menu → Add-ons → Install from file
- Select the
.xpifile
Configure Settings
- Tap the 3-dot menu → Add-ons
- Find GenieHelper Cookie Capture
- Tap Settings
- Paste the 3 config values from
/app/platforms
Kiwi Browser (Chrome Android)
Kiwi is a Chromium fork that supports Chrome extensions on Android.Install Kiwi Browser
Install Extension
- Open Kiwi → visit Chrome Web Store (if extension is published)
- Search “GenieHelper Cookie Capture”
- Tap Add to Kiwi
- Download
geniehelper-chrome.zipfrom/app/platforms - Extract the
.zipto your phone storage - Open Kiwi → Menu → Extensions → + (from .zip)
- Select the extracted folder
iOS (Orion Browser)
Orion is the only iOS browser that supports Chrome/Firefox extensions.Install Orion Browser
Enable Extension Support
- Open Orion
- Settings → Extensions → Enable Chrome Extensions
- Visit Chrome Web Store or sideload the extension
Extension Security & Privacy
What Data is Captured?
- Cookies: All cookies for the detected platform domain (e.g.,
.onlyfans.com) - User Agent: Your browser’s User-Agent string (for session replay)
- Platform: Detected platform name (e.g., “OnlyFans”)
- Passwords
- Browsing history
- Other tabs or websites
- Personal files
How is Data Transmitted?
- HTTPS only: Cookies are sent via encrypted
POSTrequest tohttps://geniehelper.com/api/credentials/store-platform-session - Bearer token auth: Your Directus JWT is included in the
Authorizationheader - No third-party servers: Data goes directly to your GenieHelper instance (self-hosted)
How is Data Stored?
- Encrypted at rest: Cookies are AES-256-GCM encrypted before saving to Directus
- Key management: Encryption key stored in
CREDENTIALS_ENC_KEY_B64env var (server-side only) - Access control: Only your user account can access your
platform_sessionsrecords
Extension Permissions
cookies
cookies
activeTab
activeTab
storage
storage
chrome.storage.sync (encrypted by browser).host permissions
host permissions
*://onlyfans.com/*, *://fansly.com/*, etc. (see manifest.json for full list)- Track your browsing
- Inject ads or analytics
- Share data with third parties
- Run on pages outside the 18 supported platforms
Troubleshooting
Extension shows 'Not configured' after setup
Extension shows 'Not configured' after setup
- Right-click the extension icon → Options
- Verify all 3 fields are filled
- Click Save again
- Refresh the popup (close and reopen)
'Capture Cookies & Sync' button is grayed out
'Capture Cookies & Sync' button is grayed out
Capture succeeded but no session appears in dashboard
Capture succeeded but no session appears in dashboard
- Check browser DevTools Console (F12) for errors
- Check Network tab for the
POST /api/credentials/store-platform-sessionrequest - If 401 Unauthorized: Your Directus token expired → log out and log back in, reconfigure extension
- If 500 Internal Server Error: Check server logs (
pm2 logs anything-llm)
Cookies captured but scrape still fails
Cookies captured but scrape still fails
Mobile extension won't load
Mobile extension won't load
- Ensure Firefox version is 120+
- Try sideloading the
.xpiinstead of installing from AMO
- Kiwi is no longer actively maintained — switch to Orion (iOS) or desktop
- Not supported — use Orion Browser instead
Best Practices
Capture Proactively
Use Cookies Over Credentials
Revoke Stale Sessions
Keep Extension Updated
/app/platforms for extension updates — new platforms and bug fixes are added regularly.