A standalone tool for viewing and exploring ChatGPT/Grok/Claude export data with all metadata. This application extracts and displays conversations, messages, feedback, timeline events, and geolocation data from ChatGPT export files.
- Full Metadata Extraction: Extracts ALL metadata from ChatGPT export files (browser info, geolocation, timestamps, etc.)
- Multiple Views:
- List View: Browse all conversations with search and pagination
- Timeline View: Chronological view of all events across conversations
- TTL Data View: Authentication and geolocation/IP data from TTL exports
- Content Filter Events: View messages that triggered content filters
- Import Support:
- JSON exports from ChatGPT (conversations.json, message_feedback.json, etc.)
- HTML exports from ChatGPT (and other AI services like Grok, Anthropic, Perplexity)
- Export Functionality: Export selected conversations or messages as JSON
- Local SQLite Database: All data stored locally in
chatlog_viewer.db
- Python 3.8 or higher
- pip (Python package installer)
- 100MB+ free disk space
-
Check Python Installation
python3 --version
If Python is not installed, install it from python.org or using Homebrew:
brew install python3
-
Navigate to ChatLog_standalone Directory
cd /path/to/ChatLog_standalone -
Create Virtual Environment (Recommended)
python3 -m venv venv source venv/bin/activate -
Install Dependencies
pip install -r requirements.txt
-
Create Chatlog Directory
mkdir -p chatlog
-
Check Python Installation
- Open Command Prompt or PowerShell
- Run:
python --versionorpy --version - If Python is not installed, download from python.org
- Important: During installation, check "Add Python to PATH"
-
Navigate to ChatLog_standalone Directory
cd C:\path\to\ChatLog_standalone -
Create Virtual Environment (Recommended)
python -m venv venv venv\Scripts\activate
Or with PowerShell:
python -m venv venv venv\Scripts\Activate.ps1If you get an execution policy error in PowerShell, run:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
-
Install Dependencies
pip install -r requirements.txt
-
Create Chatlog Directory
mkdir chatlog
-
Activate Virtual Environment (if using one)
source venv/bin/activate -
Start the Server
uvicorn app.main:app --reload --port 8002
-
Open Browser Navigate to:
http://localhost:8002
-
Activate Virtual Environment (if using one)
venv\Scripts\activate
-
Start the Server
uvicorn app.main:app --reload --port 8002 -
Open Browser Navigate to:
http://localhost:8002
-
Prepare Your Export Files
- Place your ChatGPT export folders in the
chatlog/directory - Each export folder should contain:
conversations.json(required)message_feedback.json(optional)user.json(optional)model_comparisons.json(optional)
- Place your ChatGPT export folders in the
-
Import JSON Exports
- Click "Start Import" button in the web interface
- The app will scan all subfolders in
chatlog/and import them - Duplicate conversations (based on conversation_id) are automatically skipped
-
Import HTML Exports
- Place HTML files in
chatlog/HTMLS/directory - Optionally organize by service:
chatlog/HTMLS/chatgpt/,chatlog/HTMLS/grok/, etc. - Click "Import HTML Files" button
- Supports ChatGPT, Grok, Anthropic Claude, and Perplexity HTML exports
- Place HTML files in
- List View: Browse all conversations with search and filters
- Timeline View: See chronological events across all conversations
- TTL Data: View authentication sessions with geolocation and IP data
- Content Filter Events: Find messages that triggered safety filters
- Select conversations using checkboxes and click "Export Selected"
- Or open a conversation detail view and export individual messages
ChatLog_standalone/
├── app/ # Backend application code
│ ├── __init__.py
│ ├── main.py # FastAPI application entry point
│ ├── api.py # API endpoints
│ ├── models.py # Database models
│ ├── database_service.py
│ ├── import_service.py
│ ├── html_import.py
│ └── ttl_import.py
├── frontend/ # Frontend files
│ ├── index.html # Main HTML template
│ └── app.js # JavaScript application code
├── chatlog/ # Your export data goes here
│ ├── [export_folder_1]/
│ │ ├── conversations.json
│ │ └── ...
│ └── HTMLS/
│ ├── chatgpt/
│ └── ...
├── chatlog_viewer.db # SQLite database (created automatically)
├── requirements.txt # Python dependencies
└── README.md # This file
If port 8002 is already in use, specify a different port:
uvicorn app.main:app --reload --port 8003If you encounter database errors:
- Delete
chatlog_viewer.dband restart the application - The database will be recreated automatically
- Check that your export folders are in the
chatlog/directory - Ensure JSON files are valid (not corrupted)
- Check the browser console for error messages
- Make sure Python is added to PATH during installation
- Try using
pyinstead ofpythonin commands - Reinstall Python and check "Add Python to PATH" option
If you have issues with the virtual environment:
- Delete the
venvfolder and recreate it - Make sure you're using the correct Python version
- Press
Ctrl+Cin the terminal/command prompt - Deactivate virtual environment (optional):
deactivate
You can specify a custom database path by modifying database_service.py or passing it when initializing the service.
You can specify a custom chatlog directory by modifying import_service.py or passing it when initializing the service.
You can install dependencies globally (not recommended):
pip install -r requirements.txtThis project is licensed under the MIT License - see the LICENSE file for details.
For issues or questions:
- Check the troubleshooting section above
- Review error messages in the browser console (F12)
- Check terminal/command prompt output for backend errors
- The database file (
chatlog_viewer.db) stores all imported data locally - Data is never sent to external servers - everything runs locally
- HTML imports require BeautifulSoup4 and lxml (included in requirements.txt)
- The application automatically creates necessary directories on first run