Build a browsable local mirror site from ChatGPT or Claude data exports
Project description
logactyl
Build a browsable, fully offline local mirror site from your ChatGPT or Claude data exports.
What it does
logactyl takes an official data export ZIP from ChatGPT or Claude and generates a static HTML site that you can open directly in any browser (no server required). The site includes:
- Per-conversation pages with rendered messages, code blocks, TeX math, and attachments
- Full-text offline search across all conversations
- Project/folder grouping and an interactive organizer
- Optional AES-256-GCM encryption at rest
Installation
pip install logactyl
With optional dependencies for rich markdown rendering and encryption:
pip install "logactyl[all]"
Or pick what you need:
pip install "logactyl[markdown]" # markdown-it-py for CommonMark rendering
pip install "logactyl[encrypt]" # cryptography for AES-256-GCM encryption
Quick start
ChatGPT export:
logactyl --chatgpt-zip ~/Downloads/chatgpt-export.zip -o ~/chatgpt-mirror
Claude export:
logactyl --claude-zip ~/Downloads/claude-export.zip -o ~/claude-mirror
Both together (merged site):
logactyl \
--chatgpt-zip ~/Downloads/chatgpt-export.zip \
--claude-zip ~/Downloads/claude-export.zip \
-o ~/chat-mirror
Then open index.html in the output directory.
Appending new exports
Re-run with --append to merge new exports into an existing site without losing organizer edits:
logactyl --chatgpt-zip newer-export.zip -o ~/chatgpt-mirror --append
Encryption
Encrypt the generated site at rest with a passphrase:
logactyl --chatgpt-zip export.zip -o ~/private-mirror --encrypt
Requires pip install "logactyl[encrypt]".
Decrypt or re-key an existing encrypted site:
logactyl --decrypt ~/private-mirror
logactyl --rekey ~/private-mirror
Options
| Flag | Description |
|---|---|
--chatgpt-zip PATH |
Path to a ChatGPT data export ZIP |
--claude-zip PATH |
Path to a Claude data export ZIP |
-o, --output DIR |
Output directory (default: derived from input) |
--append |
Merge into an existing site instead of overwriting |
--encrypt |
Encrypt the output site with a passphrase |
--decrypt DIR |
Decrypt an existing encrypted site |
--rekey DIR |
Change the passphrase on an encrypted site |
--render-markdown |
Enable CommonMark rendering (needs markdown-it-py) |
--no-render-markdown |
Disable markdown rendering (raw text) |
--zip |
Produce a .zip of the output site |
--add-search DIR |
Add search to an existing site that was built without it |
Run logactyl --help for the full list.
Running as a module
python -m logactyl --chatgpt-zip export.zip -o ~/mirror
Requirements
- Python 3.9+
- No required third-party dependencies (stdlib only)
- Optional:
markdown-it-pyfor rich markdown rendering - Optional:
cryptographyfor site encryption
License
MIT