open-export — ChatGPT Conversation Exporter
PyPI-published CLI tool to download and archive all your ChatGPT conversations as JSON and Markdown files via Chrome DevTools Protocol.
01.Project Overview
Overview
open-export is a published PyPI package that enables users to programmatically download and archive all of their ChatGPT conversations as JSON and Markdown files. It solves a real gap — ChatGPT provides no API for conversation export, and the built-in "Export data" feature is slow, unreliable, and often disabled on enterprise/university accounts.
pip install open-export
open-export -o ./my_chats
How It Works
- The user launches their browser with Chrome DevTools Protocol enabled (
--remote-debugging-port=9222) - The tool connects via CDP and locates an open ChatGPT tab
- It fetches an ephemeral access token from ChatGPT's session endpoint
- It paginates through the conversation list API and downloads each conversation's full data
- Outputs are saved as JSON (raw API responses) and Markdown (human-readable formatted conversations)
The entire tool is ~400 lines across 4 Python files. No credentials are stored on disk, no data is transmitted anywhere, and the access token is cleared from memory on exit.
Key Design Principles
- Zero credential storage — Never asks for, stores, or transmits username/password
- Fully transparent — Every line of source code is viewable in the repository
- No external network calls — Only communicates with chatgpt.com
- Ephemeral tokens — Access tokens are used during the session and immediately discarded
Tech Stack
- Python (PyPI package)
- Chrome DevTools Protocol (CDP)
- Async HTTP for session management
- CLI interface with configurable options
Technologies
PythonPyPIChrome DevTools ProtocolPlaywrightCLI
Role
Software Engineer
Timeline
Mar 2026
Category
Developer Tools / Open Source