Awesome-omni-skill chatgpt-exporter-ultimate
Export ALL your ChatGPT conversations instantly — no 24h wait, no extensions. Works via browser relay OR standalone bookmarklet. Extracts full message history with timestamps, roles, and metadata. One command, one JSON file, done.
install
source · Clone the upstream repo
git clone https://github.com/diegosouzapw/awesome-omni-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data-ai/chatgpt-exporter-ultimate-ypyt1" ~/.claude/skills/diegosouzapw-awesome-omni-skill-chatgpt-exporter-ultimate-04b1b8 && rm -rf "$T"
manifest:
skills/data-ai/chatgpt-exporter-ultimate-ypyt1/SKILL.mdsource content
ChatGPT Exporter ULTIMATE
🔗 Part of the OpenClaw Ecosystem — This skill is part of a larger AI agent revamp project. Full project: https://github.com/openclaw/openclaw
Export all ChatGPT conversations in seconds — no waiting for OpenAI's 24-hour export email.
Usage
Export my ChatGPT conversations
Requirements
- User must attach their Chrome ChatGPT tab via browser relay
- User must be logged into ChatGPT
How It Works
- Attach browser - User clicks OpenClaw toolbar icon on chatgpt.com tab
- Inject script - Agent injects background export script
- Fetch all - Script fetches all conversations via internal API
- Download - JSON file auto-downloads to user's Downloads folder
Technical Details
Authentication
ChatGPT's internal API requires a Bearer token from
/api/auth/session:
const session = await fetch('/api/auth/session', { credentials: 'include' }); const { accessToken } = await session.json();
API Endpoints
| Endpoint | Purpose |
|---|---|
| Get access token |
| List conversations |
| Get full conversation |
Export Script
The agent injects a self-running script that:
- Fetches the access token
- Paginates through all conversations (100 per page)
- Fetches each conversation's full content
- Extracts messages from the mapping tree
- Creates JSON blob and triggers download
Progress Tracking
window.__exportStatus = { phase: 'fetching', progress: N, total: M }
Output Format
{ "exported": "2026-02-06T11:10:09.699Z", "conversations": [ { "id": "abc123", "title": "Conversation Title", "created": 1770273234.966738, "messages": [ { "role": "user", "text": "...", "time": 1770273234 }, { "role": "assistant", "text": "...", "time": 1770273240 } ] } ] }
Rate Limits
- 100ms delay between conversation fetches
- ~3 minutes for 200 conversations
- ChatGPT allows ~100 requests/minute
Troubleshooting
| Issue | Solution |
|---|---|
| No tab attached | Click OpenClaw toolbar icon on ChatGPT tab |
| 401 error | Log into ChatGPT and re-attach tab |
| Export stuck | Check browser console for errors |
| No download | Check Downloads folder / browser settings |
Files
- Standalone console script (paste in DevTools)scripts/bookmarklet.js
- CLI export with token argumentscripts/export.sh
Comparison to Extensions
| Feature | This Skill | ChatGPT Exporter Extension |
|---|---|---|
| Installation | None | Chrome Web Store |
| Automation | Full (agent-controlled) | Manual (user clicks) |
| Format | JSON | JSON, MD, HTML, PNG |
| Batch export | ✅ Auto | ✅ "Select All" |
| Progress | Agent monitors | UI progress bar |
When to use this skill: Automated exports, programmatic access, agent workflows When to use extension: Manual exports, multiple formats, visual UI