Workaround for ChatGPT Project Migration Gap: Export Scripts and Prompts

A developer has published a workaround for a specific limitation when migrating from ChatGPT to Claude: ChatGPT's data export doesn't include which project each conversation belongs to. The project membership field is absent from the exported JSON.
The Problem and Core Workaround
The source states that after trying to script around the missing data, the developer concluded the project tags simply aren't in the export. The export does contain full message trees, timestamps, and file attachments.
The workaround involves two main steps:
- Capture conversation titles directly from the ChatGPT interface before losing access.
- Use those captured titles to extract the matching conversations from the export JSON.
Available Tools
The developer has made the following resources available for free on GitHub, with no dependencies beyond the Python standard library:
- A merge script for combining multiple export JSON files.
- An extraction script that reconstructs conversations in chronological order from the message tree.
- A Claude prompt that turns screenshots of the ChatGPT interface into a clean titles file.
- A Claude prompt that generates a structured project summary ready for upload to a new Claude project.
The GitHub repository is at https://github.com/sarabura/aiprojectmigrate.
A full explanation of the approach is available in a Medium article: https://medium.com/p/4f91e95866da.
The developer notes they are happy to answer questions about the ChatGPT export structure or the migration process.
📖 Read the full source: r/ClaudeAI
👀 See Also

Kios: An iOS Reader for Self-Hosted Kobo/Calibre Libraries with Progress Sync
Kios is an iOS app that reads books from self-hosted Kobo/Calibre servers and syncs reading progress via the Kobo protocol, OPDS 1.2/2.0, and kosync. Built with Claude Code.

Open-source CLI tool sdf uses Claude to manage stacked GitHub PRs
sdf is a free, MIT-licensed CLI tool that automates stacked pull request workflows using git and gh, with Claude CLI handling complex tasks like diff analysis and conflict resolution.

Memex: Open-Source Memory Plugin for Claude Cowork
Memex is an open-source plugin that gives Claude Cowork persistent memory across sessions using a tiered context loading system. After running /memex:init once, Claude briefs itself in about 20 seconds per session and picks up where you left off.

ARP: Stateless WebSocket Relay for Autonomous Agent Communication
ARP (Agent Relay Protocol) is a stateless WebSocket relay for autonomous agent communication featuring Ed25519 identity, HPKE encryption per RFC 9180, binary TLV framing, and 33 bytes overhead per message. No accounts or registration required—just generate a keypair and connect.