Repository navigation
Releases: k8se10/chatgpt-archiver
Release list
v0.3.2 — Inline image embedding, watermark cache, crash fix
Highlights
- Inline image embedding — images are now fetched and embedded directly into the exported
.mdas base64, when exporting via the live browser session. Confirmed working against a real account. - Smart Scan watermark cache — repeat Smart Scans on the same folder get faster over time (usually one page instead of a 150-conversation sample), only ever advancing when full coverage can be proven.
- Fixed the real crash behind Full Scan/Smart Scan freezing or erroring with
main thread is not in main loop— root-caused to an unsafe Tkinter cross-thread call pattern, fixed with a proper thread-safe UI queue, verified against a live 1058-conversation account. - Existing exports with the old un-embedded image placeholder are automatically flagged as outdated so re-running Smart Scan fills them in — including a fix for a watermark-cache edge case that could otherwise hide them from the fast scan path indefinitely.
Full details, honesty notes on what's been verified live vs. unit-tested only, and known residual limitations: see PATCHNOTES.md.
Download
Grab ChatGPT-Archiver.exe below — a single file, no installer, no Python required. Just needs Google Chrome already on your machine.
v0.3.0 — Smart Scan + update detection
Smart Scan (new default): instead of listing your entire account, checks just your ~150 most-recently-updated conversations against what's already in your output folder. If most already match, infers the rest of your history is archived too and skips listing it — this is the real fix for large accounts, cutting hundreds of API calls, not just avoiding re-fetching content. Full Scan (list everything) is still there if you want it.
Update detection: every export now carries an invisible marker recording when the conversation was last updated. Later scans compare against the live version to tell if it's changed — shown color-coded in the list (yellow = changed recently, red = longer ago), with a one-click Select Outdated button. "Skip it" now means "skip it unless it changed."
Also fixes the export-wait-time docs (OpenAI's bulk export can take a few days, not "minutes to hours" as previously stated).
Verified against a real 1052-conversation archive: Smart Scan's filename-matching hit 147/150 with zero false positives (the 3 misses were genuinely new conversations).
Click-and-run: download ChatGPT-Archiver.exe below, double-click it. No installer, no Python. Requires Google Chrome already installed.
See PATCHNOTES.md for the full history.
v0.2.1 — Bulk import fix (real export format)
Fixes v0.2.0's bulk import, which didn't actually work. OpenAI shards conversation data across multiple files for any non-trivial account (conversations-000.json … conversations-010.json in the real ~200MB export this was tested against, not a single conversations.json), and the importer only looked for the exact unsharded filename.
Verified against a real 1051-conversation export: all 11 shards found, all 1051 conversations loaded and converted correctly, zero failures, in under a second — versus what would be hours through the rate-limited live path.
Click-and-run: download ChatGPT-Archiver.exe below, double-click it. No installer, no Python. Requires Google Chrome already installed.
See PATCHNOTES.md for the full history.
v0.2.0 — First public release
⚠️ Bulk import in this release doesn't actually work against a real ChatGPT export (only handles an unshardedconversations.json, which most accounts won't have). Fixed in v0.2.1 — use that instead.
Click-and-run: download ChatGPT Archiver.exe below, double-click it. No installer, no Python. The only prerequisite is Google Chrome already being installed — the app tells you clearly if it isn't found instead of failing silently.
What it does
Fixes ChatGPT's broken select-all/copy by reading the same backend API the ChatGPT web app itself uses (or a bulk data export, for large accounts) instead of scraping the rendered, partially-virtualized DOM — producing clean, correctly-branched Markdown files.
Highlights
- Live export: a dedicated, persistent Chrome profile (log in once) reads your conversations via ChatGPT's own API.
- Bulk import: for large accounts, import the
.zipfrom ChatGPT's own Settings → Data controls → Export data feature — zero live requests, zero rate limiting. - Automatic retry/backoff on token expiry and HTTP 429, with visible status instead of looking frozen.
- Keep-both / replace / skip handling for existing files, with skip resolved before any network call.
- Dated filenames, progress bar, per-page/per-conversation logging.
See PATCHNOTES.md for the full list.