# ChatGPT Idle Capture - Portable Edition This package gives you three pieces: 1. `chatgpt_idle_capture_portable.py` - the cross-platform capture script 2. `chatgpt_capture_project_page.html` - a simple static webpage you can host anywhere, including GitHub Pages 3. `chatgpt_capture_discourse_post.md` - a ready-to-post Discourse announcement ## What the script does - launches a dedicated Chromium browser profile just for capture - disables extensions, sync, and some background browser behavior - waits until your machine has been idle for a chosen time - captures matching ChatGPT tabs into a dated ZIP archive - saves: - full page screenshot - viewport screenshot - page HTML - page text - metadata JSON - MHTML snapshot when Chromium allows it ## Why a dedicated browser profile matters Use this as a **capture-only browser profile**. That keeps it simple and harder to break. Recommended rules: - use it only for ChatGPT capture - do not install extensions - do not sign into browser sync - do not browse random sites with it - log into ChatGPT once, then leave it alone ## Install ```bash python -m pip install playwright pynput python -m playwright install chromium ``` ## Run ```bash python chatgpt_idle_capture_portable.py ``` Default behavior: - target URL: `https://chatgpt.com/` - idle threshold: 60 minutes - output folder: `~/ChatCapture` - browser profile: `~/.chatgpt_capture_profile` ## Capture immediately ```bash python chatgpt_idle_capture_portable.py --capture-now ``` ## Change idle threshold ```bash python chatgpt_idle_capture_portable.py --idle-minutes 90 ``` ## Keep the unzipped folder too ```bash python chatgpt_idle_capture_portable.py --keep-unzipped ``` ## Notes by platform ### Windows Usually the easiest path. ### macOS You may need Accessibility permissions for keyboard and mouse monitoring. ### Linux `pynput` works best in standard desktop sessions. On Wayland, global idle detection can be limited depending on the desktop environment. If that happens, use `--capture-now` or run under X11. ## Important limitation This is **best effort**. ChatGPT can virtualize older messages and lazy-load history. The script scrolls upward before saving to pull more of the loaded buffer into view, but it cannot guarantee every older message exists in the browser memory at capture time. ## Good publishing uses - personal archives - project history capture - preserving idea chains - sharing a free helper tool with the ChatGPT and Discourse communities