Notion → ChatGPT → Gemini → Notion image pipeline. v7 adds humanlike mouse + typing for Gemini (ghost-cursor + 0–50ms randomized typing + 2s cooldown + rotating mouse-movement profiles), keeping ChatGPT typing fast.
FETCH ─→ REFINE ─→ PROMPTS ─→ IMAGES ─→ UPLOAD
Notion ChatGPT ChatGPT Gemini Notion (zip + refined MD)
│ │
fast typing ghost-cursor Bezier mouse +
randomized 0-50ms typing per char +
2s cooldown between submissions
ghost-cursorintegrated inscripts/submit_prompts.cjs— mouse moves through Bezier paths with overshoots and micro-corrections instead of teleporting to click coordinates.humanType()in submit_prompts.cjs types each char withMath.random() * 50ms delay (0–50ms uniform). Spec: "typing speed should be randomized from the range of 0 to 50".SUBMIT_COOLDOWN_MS = 2000between successive prompt submissions.- 4 rotating movement profiles in
tools/browser/gemini.py(calm / energetic / deliberate / casual). One picked per Python session at module-import time. Each profile changes Bezier curve swing, move duration, step variance, click jitter, and click delay — so movement signature varies across sessions. - ChatGPT typing stays fast (
tools/browser/chatgpt.py:276usesdelay=1). Per spec: "in chatgpt you can type as fast as you can".
- Multi-account
accounts.jsonwith auto-rotation on Gemini 1095 / quota auto_login.pyPython wrapper signing in to ChatGPT + Gemini at startuptools/accounts.pyrotator with persistent state in.cca/active_accounts.jsonscripts/save_images.cjsdetectBlocker()recognizing 1095 + quota error UIscripts/run_autonomous.cjstriggerRotation()cycle: kill children → rotate accounts.json → sign-out → sign-in next account → respawn
:: 1. Extract / clone
:: 2. setup.bat (one-time — installs deps + launches the two Chrome windows)
:: 3. Sign in to ChatGPT + Gemini (or fill accounts.json for auto-login)
:: 4. Edit lessons.txt with chapters
:: 5. start.batSee RUN.md for the full runbook.
Per-prompt overhead increases by ~10s vs v6:
- humanType on a 100-char prompt: ~2.5s
- 2 cursor.click() Bezier moves: ~3-4s
- 2s cooldown: 2s
For an 80-prompt chapter, that's roughly +13 min wall-clock. Trade-off accepted for human-like behavior.
MIT.