Skip to main content

Local UI and tooling for browsing ChatGPT and Claude history exports

Project description

Chat History

Browse and export your ChatGPT and Claude conversations locally.

Screenshot

Getting Started

Requires Python 3.11+ and uv.

  1. Export your chats from ChatGPT or Claude (Settings → Export data). Both services send a ZIP file by email.

  2. Create a folder for your chat history, save the ZIP there, and open a terminal in that folder. The wizard will store all data inside it.

  3. Run the setup wizard:

    uvx chat-history
    

    The wizard finds your export files, configures everything, and opens the browser.

Next time, run uvx chat-history in the same folder to start browsing. To update to the latest version, run uvx chat-history install.

To export all conversations as markdown (useful for feeding to other AI tools):

uvx chat-history export

Features

  • Unified conversation browser for ChatGPT and Claude exports
  • Provider-aware favorites and external links
  • Full-text search with optional semantic search (OpenAI embeddings + FAISS)
  • Activity and token statistics
  • Export conversations to markdown for downstream AI workflows

CLI Reference

All commands work as uvx chat-history <command> or, if installed locally, chat-history <command>.

Command Description
(none) Start server if configured, otherwise run setup wizard
init Run the interactive setup wizard
serve Start the web server
export Export conversations to markdown
inspect Print conversation and message counts
install Reinstall chat-history via uvx --reinstall chat-history

serve

uvx chat-history serve [--host 127.0.0.1] [--port 8080] [--no-browser]

export

uvx chat-history export [--provider chatgpt|claude|all] [--out DIR] [--clean]
                        [--exclude-system] [--exclude-tool]
                        [--exclude-thinking] [--exclude-attachments]
  • --clean removes old export files before writing (scoped to --provider if set)
  • Default output: ./data/export/{chatgpt|claude}/

init

uvx chat-history init [--path DIR]

Scans the current folder and ~/Downloads for export ZIPs, validates them, extracts to ./data/, writes ./data/.env, and offers to start the server. Supports adding a second provider to an existing setup.

Configuration

All config lives in ./data/.env (created by the wizard or manually):

Variable Default Description
CHAT_HISTORY_DATA_DIR data Root directory for derived data
CHAT_HISTORY_CHATGPT_PATH Path to ChatGPT export folder or conversations.json
CHAT_HISTORY_CLAUDE_PATH Path to Claude export folder or conversations.json
CHAT_HISTORY_OPENAI_ENABLED false Enable semantic search
OPENAI_API_KEY Required if semantic search is enabled
OPENAI_ORGANIZATION Optional OpenAI org
OPENAI_EMBEDDING_MODEL text-embedding-3-small Embedding model for semantic search
CHAT_HISTORY_SETTINGS_DB_PATH Override path for settings SQLite DB

Developer Setup

make install    # uv sync
make dev        # uvicorn with hot-reload on :8080
make test       # run tests

Install as a global command from the local repo (editable, changes reflected immediately):

make tool-install         # uv tool install -e .
chat-history              # works from any directory
make tool-uninstall       # uv tool uninstall chat-history

Notes

  • Export is non-destructive by default. Existing files remain unless --clean is used.
  • Token stats for Claude are approximate (fallback tokenizer), not exact Claude-native counts.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

chat_history-0.3.3.tar.gz (437.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

chat_history-0.3.3-py3-none-any.whl (75.9 kB view details)

Uploaded Python 3

File details

Details for the file chat_history-0.3.3.tar.gz.

File metadata

  • Download URL: chat_history-0.3.3.tar.gz
  • Upload date:
  • Size: 437.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.24

File hashes

Hashes for chat_history-0.3.3.tar.gz
Algorithm Hash digest
SHA256 15d893291344c1e545549ab091f76afb197a05be5e041bd36bf31ef0dfdfea82
MD5 620295a3b42429320a0ab0e01a219230
BLAKE2b-256 9dde45999e2a40f6c8c50eefc6ba4e4b2dcbf00cf70829c11110aa170ef3c469

See more details on using hashes here.

File details

Details for the file chat_history-0.3.3-py3-none-any.whl.

File metadata

File hashes

Hashes for chat_history-0.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 716add8c6d17ac5355b34a17112692bf4e9801aa859fa386d67101a6b4355079
MD5 a94f589bb6778ad0a430ec3674f7b086
BLAKE2b-256 7cfa42f773a7680566f41dba0dae3387a23833256d0a02b6359b5167cb98bb2c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page