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

  1. The user launches their browser with Chrome DevTools Protocol enabled (--remote-debugging-port=9222)
  2. The tool connects via CDP and locates an open ChatGPT tab
  3. It fetches an ephemeral access token from ChatGPT's session endpoint
  4. It paginates through the conversation list API and downloads each conversation's full data
  5. 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