No description
  • Shell 99.9%
  • Python 0.1%
Find a file
2026-07-16 02:37:48 -04:00
.ai-chats docs(ai-chats): reconstruct session summaries from Claude Code logs 2026-07-06 19:32:41 -04:00
.cc-iterations Sync: bulk checkpoint 2026-05-12 (pre-Arch-reformat) 2026-05-12 01:19:40 -04:00
.claude/commands Add initial users data and comprehensive tech stack matrix for AI-assisted development 2025-12-12 12:50:53 -05:00
.darren Add initial users data and comprehensive tech stack matrix for AI-assisted development 2025-12-12 12:50:53 -05:00
.perpetual-motion Sync: bulk checkpoint 2026-05-12 (pre-Arch-reformat) 2026-05-12 01:19:40 -04:00
.resources Sync: bulk checkpoint 2026-05-12 (pre-Arch-reformat) 2026-05-12 01:19:40 -04:00
.specify Update constitution and README for clarity; add feature specification for ChatGPT export extraction 2025-12-12 15:22:07 -05:00
docs Sync: bulk checkpoint 2026-05-12 (pre-Arch-reformat) 2026-05-12 01:19:40 -04:00
input Add initial users data and comprehensive tech stack matrix for AI-assisted development 2025-12-12 12:50:53 -05:00
src/ai_chat_extract sync: checkpoint 2026-07-16 2026-07-16 02:37:48 -04:00
cli-ai-terminal-calls.md Add initial users data and comprehensive tech stack matrix for AI-assisted development 2025-12-12 12:50:53 -05:00
pyproject.toml Automated sync 2025-12-26: 0 modified, 0 staged, 16 new files 2025-12-26 11:16:45 -05:00
README.md Sync: bulk checkpoint 2026-05-12 (pre-Arch-reformat) 2026-05-12 01:19:40 -04:00
tech-stack-matrix.md Add initial users data and comprehensive tech stack matrix for AI-assisted development 2025-12-12 12:50:53 -05:00

AI Chat Extract

A CLI tool to extract, organize, and index chat exports from AI platforms (ChatGPT, Claude, etc.) into browsable, searchable folders.

The Problem

AI chat exports are unwieldy:

  • Large JSON blobs (e.g., 736 conversations, 78MB)
  • Too big for direct context loading
  • Nested structures that are hard to navigate
  • No organization by date, project, or topic

The Solution

Stream-process exports into organized markdown files with full asset extraction:

output/
├── index.json                    # Quick lookup manifest
├── projects/
│   └── my-project/
│       ├── 2024-12-10-chat-about-feature/
│       │   ├── conversation.md
│       │   └── assets/
│       └── ...
└── conversations/
    ├── 2024-07/
    │   ├── 2024-07-14-financial-planning/
    │   │   ├── conversation.md
    │   │   ├── artifacts/
    │   │   └── assets/
    │   └── ...
    └── 2024-12/
        └── ...

Features

  • Stream processing - Memory-efficient parsing of large exports
  • Multi-platform - Parsers for ChatGPT, Claude, and more
  • Project-aware - Chats belonging to projects stay organized together
  • Full extraction - Conversations, artifacts, attachments, memories
  • Searchable index - JSON manifest for quick lookups

Tech Stack (Phase 1 - MVP)

Component Choice Purpose
CLI Typer + Rich Beautiful command-line interface
Parsing ijson Memory-efficient JSON streaming
Models Pydantic Data validation and structure
Output Markdown Universal, portable format
Container Docker Consistent deployment

Future Phases

  • Phase 2: PostgreSQL for cross-conversation queries / Qdrant vector DB for semantic search ("find similar chats")

Usage

# Extract ChatGPT export
ai-extract chatgpt ./input/chatgpt-export.zip -o ./output

# Extract Claude export
ai-extract claude ./input/claude-export.json -o ./output

# Generate index only (no file extraction)
ai-extract index ./input/export.json

Supported Platforms

Platform Export Format Status
ChatGPT ZIP (conversations.json + assets) 🔲 Planned
Claude JSON 🔲 Planned
Claude Projects JSON 🔲 Planned

AI Instructions

We use spec-kit here. See the .specify folder for workflow details.

Development

# Install dependencies
uv sync

# Run CLI
uv run ai-extract --help

# Run with Docker
docker compose up