# chatgpt2md > Take your ChatGPT history with you to Claude. Full-text search included. A fast CLI tool that converts your ChatGPT export into organized Markdown files, builds a search index, and provides an MCP server so Claude can search and read your conversation history natively. **Key features:** - Converts ChatGPT export (ZIP or JSON) to clean Markdown files - Built-in full-text search powered by [Tantivy](https://github.com/quickwit-oss/tantivy) - MCP server with 3 tools for Claude integration - One-command auto-install for Claude Desktop and Claude Code - Works on macOS and Windows - Single binary, no runtime dependencies ## Table of Contents - [Quick Start](#quick-start) - [Step 1: Export Your ChatGPT Data](#step-1-export-your-chatgpt-data) - [Step 2: Install chatgpt2md](#step-2-install-chatgpt2md) - [Step 3: Convert Your Export](#step-3-convert-your-export) - [Step 4: Connect to Claude](#step-4-connect-to-claude) - [Step 5: Use It!](#step-5-use-it) - [Commands Reference](#commands-reference) - [Manual MCP Configuration](#manual-mcp-configuration) - [Output Structure](#output-structure) - [Building from Source](#building-from-source) - [License](#license) ## Quick Start ```bash # Install cargo install --git https://github.com/NextStat/chatgpt2md # Convert your ChatGPT export chatgpt2md export.zip # Install MCP into Claude (auto-configures everything) chatgpt2md install --index ./chatgpt_chats/.index --chats ./chatgpt_chats # Restart Claude — done! ``` ## Step 1: Export Your ChatGPT Data 1. Go to [chatgpt.com](https://chatgpt.com) 2. Click your profile icon (bottom-left) > **Settings** 3. Go to **Data controls** 4. Click **Export data** > **Confirm export** 5. Wait for the email from OpenAI (usually arrives within a few minutes) 6. Download the ZIP file from the link in the email The ZIP file contains `conversations.json` with all your chat history. > **Tip:** The export includes ALL your conversations — this may take a while if you have thousands of chats. ## Step 2: Install chatgpt2md ### Option A: Pre-built binaries (recommended) Download the latest release for your platform from the [Releases page](https://github.com/NextStat/chatgpt2md/releases): | Platform | File | |----------|------| | macOS (Apple Silicon) | `chatgpt2md-aarch64-apple-darwin.tar.gz` | | macOS (Intel) | `chatgpt2md-x86_64-apple-darwin.tar.gz` | | Windows | `chatgpt2md-x86_64-pc-windows-msvc.zip` | | Linux | `chatgpt2md-x86_64-unknown-linux-gnu.tar.gz` | ```bash # macOS / Linux: extract and move to PATH tar xzf chatgpt2md-*.tar.gz sudo mv chatgpt2md /usr/local/bin/ ``` ### Option B: Install from source Requires [Rust](https://rustup.rs/) 1.85+: ```bash cargo install --git https://github.com/NextStat/chatgpt2md ``` ### Option C: Build locally ```bash git clone https://github.com/NextStat/chatgpt2md cd chatgpt2md cargo build --release # Binary is at ./target/release/chatgpt2md ``` ## Step 3: Convert Your Export ```bash # Basic usage — just pass the ZIP file chatgpt2md export.zip ``` This will: 1. Extract `conversations.json` from the ZIP 2. Convert each conversation to a `.md` file 3. Organize files by year/month folders 4. Build a full-text search index Output goes to `./chatgpt_chats/` by default. You can change this: ```bash # Custom output directory chatgpt2md export.zip -o ~/Documents/my_chatgpt_history # Flat structure (no year/month folders) chatgpt2md export.zip --flat # Include system/tool messages chatgpt2md export.zip --include-system # Skip search index (just convert to Markdown) chatgpt2md export.zip --no-index ``` **Expected output:** ``` Found 1847 conversations. Converting to Markdown... ████████████████████████████████████████ 1847/1847 Done! Conversations converted: 1823 Conversations skipped (empty): 24 Total messages: 41562 Output directory: chatgpt_chats Building search index... Indexed 1823 conversations in chatgpt_chats/.index ``` ## Step 4: Connect to Claude ### Automatic (recommended) ```bash chatgpt2md install --index ./chatgpt_chats/.index --chats ./chatgpt_chats ``` This configures both **Claude Desktop** and **Claude Code** automatically. > After running install, **restart Claude Desktop** for changes to take effect. **Options:** ```bash # Only Claude Desktop chatgpt2md install --index ./chatgpt_chats/.index --chats ./chatgpt_chats --desktop-only # Only Claude Code chatgpt2md install --index ./chatgpt_chats/.index --chats ./chatgpt_chats --code-only ``` ### Manual setup See [Manual MCP Configuration](#manual-mcp-configuration) below if you prefer to configure manually. ## Step 5: Use It! Once connected, you can ask Claude things like: - *"Search my ChatGPT history for discussions about Rust async"* - *"Find all my conversations about machine learning from 2024"* - *"Show me my chat about the pasta carbonara recipe"* - *"What did I discuss about Docker in January 2025?"* - *"List all my conversations from March 2024"* Claude will use the MCP tools automatically: | Tool | What it does | |------|-------------| | `search_conversations` | Full-text search across all conversations by keywords | | `get_conversation` | Read the complete text of a specific conversation | | `list_conversations` | Browse conversations by year and/or month | ### Example session in Claude > **You:** Search my ChatGPT history for anything about React performance optimization > > **Claude:** *(uses search_conversations)* I found 3 relevant conversations: > > 1. **React Performance Deep Dive** (2024-09-15) — 24 messages > 2. **Optimizing Re-renders** (2024-07-03) — 18 messages > 3. **Virtual DOM vs Signals** (2025-01-12) — 32 messages > > Would you like me to read any of these in full? > > **You:** Yes, show me the first one > > **Claude:** *(uses get_conversation)* Here's the full conversation... ## Commands Reference ### `convert` (default) Convert ChatGPT export to Markdown files. This is the default command — you can omit `convert`. ``` chatgpt2md [convert] [OPTIONS] Arguments: Path to .zip export or conversations.json Options: -o, --output