Local UI and tooling for browsing ChatGPT and Claude history exports
Project description
Chat History
Browse and export your ChatGPT and Claude conversations locally.
Getting Started
Requires Python 3.11+ and uv.
-
Export your chats from ChatGPT or Claude (Settings → Export data). Both services send a ZIP file by email.
-
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.
-
Run the setup wizard:
uvx chat-historyThe 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]
--cleanremoves old export files before writing (scoped to--providerif 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
--cleanis 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
15d893291344c1e545549ab091f76afb197a05be5e041bd36bf31ef0dfdfea82
|
|
| MD5 |
620295a3b42429320a0ab0e01a219230
|
|
| BLAKE2b-256 |
9dde45999e2a40f6c8c50eefc6ba4e4b2dcbf00cf70829c11110aa170ef3c469
|
File details
Details for the file chat_history-0.3.3-py3-none-any.whl.
File metadata
- Download URL: chat_history-0.3.3-py3-none-any.whl
- Upload date:
- Size: 75.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.24
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
716add8c6d17ac5355b34a17112692bf4e9801aa859fa386d67101a6b4355079
|
|
| MD5 |
a94f589bb6778ad0a430ec3674f7b086
|
|
| BLAKE2b-256 |
7cfa42f773a7680566f41dba0dae3387a23833256d0a02b6359b5167cb98bb2c
|