# Claude Code Viewer 🔍
Beautiful web interface for browsing your Claude Code conversation history with search, filtering, and syntax highlighting.



## ✨ Features
- 🔍 **Search conversations** - Find specific discussions across all your Claude Code history
- 📂 **Project organization** - Browse conversations by project with session metadata
- 💻 **Syntax highlighting** - Code blocks with proper language detection and copy buttons
- 🎨 **Modern UI** - Clean, responsive interface with dark/light theme support
- ⚡ **Fast pagination** - Handle large conversation histories efficiently
- 🔧 **Tool visualization** - Clear display of tool usage and outputs
## 🚀 Quick Start
### Installation
```bash
pip install claude-code-viewer
```
### Usage
```bash
# Start with default settings (looks for ~/.claude/projects)
claude-viewer
# Custom Claude projects path
claude-viewer --projects-path /path/to/your/claude/projects
# Custom port
claude-viewer --port 8080
# Accessible from other machines
claude-viewer --host 0.0.0.0 --port 3000
```
Then open your browser to: `http://localhost:6300`
## 📸 Screenshots
### Main Dashboard
Browse all your Claude Code projects with session counts and quick stats.
### Conversation View
View conversations with:
- Proper message formatting and line breaks
- Syntax-highlighted code blocks with copy buttons
- Tool usage visualization
- Search and filtering capabilities
## 🛠️ Command Line Options
```bash
claude-viewer --help
```
**Available options:**
- `--projects-path` - Path to Claude projects directory (default: `~/.claude/projects`)
- `--host` - Host to bind the server (default: `127.0.0.1`)
- `--port` - Port to run on (default: `6300`)
- `--version` - Show version information
## 📁 How It Works
Claude Code stores conversation history in JSONL files at `~/.claude/projects/`. This tool:
1. **Scans** your Claude projects directory
2. **Parses** JSONL conversation files
3. **Presents** them in a beautiful web interface
4. **Enables** search and filtering across all conversations
## 🔧 Development
### Local Development
```bash
git clone https://github.com/desis123/claude-code-viewer
cd claude-code-viewer
pip install -e .
claude-viewer
```
### Project Structure
```
claude-code-viewer/
├── claude_viewer/ # Main package
│ ├── cli.py # Command line interface
│ ├── main.py # FastAPI application
│ └── utils/ # Utilities (JSONL parser)
├── static/ # CSS, JavaScript
├── templates/ # HTML templates
└── setup.py # Package configuration
```
## 🤝 Contributing
Contributions welcome! Please:
1. **Fork** the repository
2. **Create** a feature branch (`git checkout -b feature/amazing-feature`)
3. **Commit** your changes (`git commit -m 'Add amazing feature'`)
4. **Push** to the branch (`git push origin feature/amazing-feature`)
5. **Open** a Pull Request
### Development Setup
```bash
git clone <your-fork>
cd claude-code-viewer
pip install -e ".[dev]"
```
## 📋 Requirements
- **Python 3.8+**
- **Claude Code** (to generate conversation history)
- **Modern web browser**
## 🐛 Troubleshooting
### "Projects path does not exist"
Make sure Claude Code has been used and has created conversation files. The default path is `~/.claude/projects`.
### "No JSONL files found"
Ensure you have used Claude Code and it has generated conversation history. Try specifying a custom path with `--projects-path`.
### Port already in use
Use a different port: `claude-viewer --port 8080`
## 📄 License
Apache 2.0 License - see [LICENSE](LICENSE) file for details.
## 🙏 Acknowledgments
- Built with [FastAPI](https://fastapi.tiangolo.com/) and [Bootstrap](https://getbootstrap.com/)
- Syntax highlighting by [Pygments](https://pygments.org/)
- Created for the Claude Code community
## 📊 Stats
- 🎯 **Zero configuration** for most users
- ⚡ **Sub-second startup** time
- 🔍 **Full-text search** across all conversations
- 📱 **Mobile responsive** design
---
**Made with ❤️ for the Claude Code community**
[Report Issues](https://github.com/desis123/claude-code-viewer/issues) • [Feature Requests](https://github.com/desis123/claude-code-viewer/issues/new)
Raw data
{
"_id": null,
"home_page": "https://github.com/desis123/claude-code-viewer",
"name": "claude-code-viewer",
"maintainer": "Claude Code Community",
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "claude, ai, conversation, viewer, web, interface, fastapi",
"author": "Claude Code Community",
"author_email": "your-email@example.com",
"download_url": "https://files.pythonhosted.org/packages/fc/b3/a7d9762d320377687fe5ec3171326311e028565e92875960f479d45c77da/claude_code_viewer-1.1.0.tar.gz",
"platform": null,
"description": "# Claude Code Viewer \ud83d\udd0d\n\nBeautiful web interface for browsing your Claude Code conversation history with search, filtering, and syntax highlighting.\n\n\n\n\n\n## \u2728 Features\n\n- \ud83d\udd0d **Search conversations** - Find specific discussions across all your Claude Code history\n- \ud83d\udcc2 **Project organization** - Browse conversations by project with session metadata\n- \ud83d\udcbb **Syntax highlighting** - Code blocks with proper language detection and copy buttons\n- \ud83c\udfa8 **Modern UI** - Clean, responsive interface with dark/light theme support\n- \u26a1 **Fast pagination** - Handle large conversation histories efficiently\n- \ud83d\udd27 **Tool visualization** - Clear display of tool usage and outputs\n\n## \ud83d\ude80 Quick Start\n\n### Installation\n\n```bash\npip install claude-code-viewer\n```\n\n### Usage\n\n```bash\n# Start with default settings (looks for ~/.claude/projects)\nclaude-viewer\n\n# Custom Claude projects path\nclaude-viewer --projects-path /path/to/your/claude/projects\n\n# Custom port\nclaude-viewer --port 8080\n\n# Accessible from other machines\nclaude-viewer --host 0.0.0.0 --port 3000\n```\n\nThen open your browser to: `http://localhost:6300`\n\n## \ud83d\udcf8 Screenshots\n\n### Main Dashboard\nBrowse all your Claude Code projects with session counts and quick stats.\n\n### Conversation View\nView conversations with:\n- Proper message formatting and line breaks\n- Syntax-highlighted code blocks with copy buttons\n- Tool usage visualization\n- Search and filtering capabilities\n\n## \ud83d\udee0\ufe0f Command Line Options\n\n```bash\nclaude-viewer --help\n```\n\n**Available options:**\n- `--projects-path` - Path to Claude projects directory (default: `~/.claude/projects`)\n- `--host` - Host to bind the server (default: `127.0.0.1`)\n- `--port` - Port to run on (default: `6300`)\n- `--version` - Show version information\n\n## \ud83d\udcc1 How It Works\n\nClaude Code stores conversation history in JSONL files at `~/.claude/projects/`. This tool:\n\n1. **Scans** your Claude projects directory\n2. **Parses** JSONL conversation files\n3. **Presents** them in a beautiful web interface\n4. **Enables** search and filtering across all conversations\n\n## \ud83d\udd27 Development\n\n### Local Development\n\n```bash\ngit clone https://github.com/desis123/claude-code-viewer\ncd claude-code-viewer\npip install -e .\nclaude-viewer\n```\n\n### Project Structure\n\n```\nclaude-code-viewer/\n\u251c\u2500\u2500 claude_viewer/ # Main package\n\u2502 \u251c\u2500\u2500 cli.py # Command line interface \n\u2502 \u251c\u2500\u2500 main.py # FastAPI application\n\u2502 \u2514\u2500\u2500 utils/ # Utilities (JSONL parser)\n\u251c\u2500\u2500 static/ # CSS, JavaScript\n\u251c\u2500\u2500 templates/ # HTML templates\n\u2514\u2500\u2500 setup.py # Package configuration\n```\n\n## \ud83e\udd1d Contributing\n\nContributions welcome! Please:\n\n1. **Fork** the repository\n2. **Create** a feature branch (`git checkout -b feature/amazing-feature`)\n3. **Commit** your changes (`git commit -m 'Add amazing feature'`)\n4. **Push** to the branch (`git push origin feature/amazing-feature`)\n5. **Open** a Pull Request\n\n### Development Setup\n\n```bash\ngit clone <your-fork>\ncd claude-code-viewer\npip install -e \".[dev]\"\n```\n\n## \ud83d\udccb Requirements\n\n- **Python 3.8+**\n- **Claude Code** (to generate conversation history)\n- **Modern web browser**\n\n## \ud83d\udc1b Troubleshooting\n\n### \"Projects path does not exist\"\nMake sure Claude Code has been used and has created conversation files. The default path is `~/.claude/projects`.\n\n### \"No JSONL files found\"\nEnsure you have used Claude Code and it has generated conversation history. Try specifying a custom path with `--projects-path`.\n\n### Port already in use\nUse a different port: `claude-viewer --port 8080`\n\n## \ud83d\udcc4 License\n\nApache 2.0 License - see [LICENSE](LICENSE) file for details.\n\n## \ud83d\ude4f Acknowledgments\n\n- Built with [FastAPI](https://fastapi.tiangolo.com/) and [Bootstrap](https://getbootstrap.com/)\n- Syntax highlighting by [Pygments](https://pygments.org/)\n- Created for the Claude Code community\n\n## \ud83d\udcca Stats\n\n- \ud83c\udfaf **Zero configuration** for most users\n- \u26a1 **Sub-second startup** time\n- \ud83d\udd0d **Full-text search** across all conversations\n- \ud83d\udcf1 **Mobile responsive** design\n\n---\n\n**Made with \u2764\ufe0f for the Claude Code community**\n\n[Report Issues](https://github.com/desis123/claude-code-viewer/issues) \u2022 [Feature Requests](https://github.com/desis123/claude-code-viewer/issues/new)\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "Beautiful web viewer for Claude Code conversation history",
"version": "1.1.0",
"project_urls": {
"Bug Reports": "https://github.com/desis123/claude-code-viewer/issues",
"Changelog": "https://github.com/desis123/claude-code-viewer/blob/main/CHANGELOG.md",
"Documentation": "https://github.com/desis123/claude-code-viewer#readme",
"Homepage": "https://github.com/desis123/claude-code-viewer",
"Repository": "https://github.com/desis123/claude-code-viewer.git"
},
"split_keywords": [
"claude",
" ai",
" conversation",
" viewer",
" web",
" interface",
" fastapi"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "61cb1db47b961ed9a73ce7cc54b1626a7145e8286ada9a8fec27fe5bce5bd13f",
"md5": "66a60aa98cbfe96ceaba5ae5efde3690",
"sha256": "886dded9ec2cbe8bf669510a79fa8178980c9279d800d698cdcf821cc43126ea"
},
"downloads": -1,
"filename": "claude_code_viewer-1.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "66a60aa98cbfe96ceaba5ae5efde3690",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 28538,
"upload_time": "2025-07-31T06:09:14",
"upload_time_iso_8601": "2025-07-31T06:09:14.656744Z",
"url": "https://files.pythonhosted.org/packages/61/cb/1db47b961ed9a73ce7cc54b1626a7145e8286ada9a8fec27fe5bce5bd13f/claude_code_viewer-1.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "fcb3a7d9762d320377687fe5ec3171326311e028565e92875960f479d45c77da",
"md5": "8bd80e960654ba48adbade8e08bdc6d2",
"sha256": "b2302751df55d9189eb902e197c7b8ad1e3da2fc4e78529cb8c7b90ae18022af"
},
"downloads": -1,
"filename": "claude_code_viewer-1.1.0.tar.gz",
"has_sig": false,
"md5_digest": "8bd80e960654ba48adbade8e08bdc6d2",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 31501,
"upload_time": "2025-07-31T06:09:16",
"upload_time_iso_8601": "2025-07-31T06:09:16.414223Z",
"url": "https://files.pythonhosted.org/packages/fc/b3/a7d9762d320377687fe5ec3171326311e028565e92875960f479d45c77da/claude_code_viewer-1.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-31 06:09:16",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "desis123",
"github_project": "claude-code-viewer",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "claude-code-viewer"
}