A tool for exploring and viewing Claude AI chat exports. This project provides utilities to extract, process, and view conversations from Claude chat exports in a clean web interface.
- Extract individual conversations from Claude export files
- Clean and normalize conversation data
- View conversations in a user-friendly web interface
- Support for attachments and file content
- Chronological message ordering
- Node.js and npm/bun
- Python 3.x
- jq (command-line JSON processor)
- Claude chat export file (conversations.json)
- Clone this repository:
git clone https://github.com/AdjectiveAllison/claude-chat-viewer.git
cd claude-chat-viewer
- Install dependencies:
bun install # or npm install
First, explore your conversations.json file to find the chat you want to view:
# List all conversation names and their indices
jq -r 'to_entries | .[] | "\(.key): \(.value.name)"' conversations.json
# Search conversations by name
jq -r 'to_entries | .[] | select(.value.name | contains("specific text")) | "\(.key): \(.value.name)"' conversations.json
# Get details about a specific conversation
jq '.[123].name' conversations.json # Replace 123 with the conversation index
Once you've identified the conversation you want to view:
# Extract conversation by index (replace 123 with your desired conversation index)
jq '.[123]' conversations.json > export_chat.json
Use the conversion script to clean and format the conversation data:
python3 chat_convert.py export_chat.json chat_filtered.json
This script:
- Sorts messages chronologically
- Removes sensitive data
- Normalizes the format
- Processes attachments
Start the web interface:
bun run dev # or npm run dev
Open http://localhost:3000 in your browser and upload your processed chat_filtered.json file.
-
Export your chat data from Claude's web interface by going to Profile > Account > Export Data:
-
Process your exported conversations using the Python script as described above.
An example of a processed chat file is included in the repository as example-filtered-chat.json
for reference.
- Clean, threaded conversation view
- Timestamp display
- Expandable attachments
- Code highlighting
- Responsive design
This is a Next.js project with TypeScript. Key files:
chat_convert.py
: Conversation processing scriptcomponents/ChatViewer.tsx
: Main conversation display componentapp/page.tsx
: File upload and main page component
Contributions are welcome! Please feel free to submit a Pull Request.
[MIT]
- Actually add the MIT license properly instead of just saying "[MIT]"
- Does it actually highlight code? I sorta doubt it. Make visualization better.