{"id":35240887,"url":"https://github.com/osteele/claude-chat-viewer","last_synced_at":"2026-04-06T07:01:38.189Z","repository":{"id":264491587,"uuid":"882726974","full_name":"osteele/claude-chat-viewer","owner":"osteele","description":"View Claude chat conversations in the browser, from exported JSON files","archived":false,"fork":false,"pushed_at":"2025-11-30T11:56:42.000Z","size":2339,"stargazers_count":21,"open_issues_count":4,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-02T10:33:05.589Z","etag":null,"topics":["chat-viewer","claude","claude-ai","json-export","web-app"],"latest_commit_sha":null,"homepage":"https://tools.osteele.com/claude-chat-viewer","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/osteele.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-11-03T15:50:54.000Z","updated_at":"2025-12-18T17:04:30.000Z","dependencies_parsed_at":"2024-11-24T18:17:45.844Z","dependency_job_id":"54cc6576-f90e-4bc9-9dc0-0a14e6761754","html_url":"https://github.com/osteele/claude-chat-viewer","commit_stats":null,"previous_names":["osteele/claude-chat-viewer"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/osteele/claude-chat-viewer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osteele%2Fclaude-chat-viewer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osteele%2Fclaude-chat-viewer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osteele%2Fclaude-chat-viewer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osteele%2Fclaude-chat-viewer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/osteele","download_url":"https://codeload.github.com/osteele/claude-chat-viewer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osteele%2Fclaude-chat-viewer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31463015,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-05T21:22:52.476Z","status":"online","status_checked_at":"2026-04-06T02:00:07.287Z","response_time":112,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chat-viewer","claude","claude-ai","json-export","web-app"],"created_at":"2025-12-30T05:01:10.497Z","updated_at":"2026-04-06T07:01:38.184Z","avatar_url":"https://github.com/osteele.png","language":"TypeScript","readme":"# Claude Chat Viewer\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.6-blue)](https://www.typescriptlang.org/)\n[![React](https://img.shields.io/badge/React-18.2-61dafb)](https://reactjs.org/)\n[![Vite](https://img.shields.io/badge/Vite-4.4-646cff)](https://vitejs.dev/)\n[![Bun](https://img.shields.io/badge/Bun-Package%20Manager-000000)](https://bun.sh/)\n\nA web application for viewing Claude chat conversations from exported JSON files. Renders Claude's chat JSON exports in a clean, readable format with support for code blocks, artifacts, and thinking process sections.\n\n\u003cdiv style=\"display: flex; flex-wrap: wrap; gap: 20px; margin: 20px 0;\"\u003e\n  \u003cimg src=\"./docs/screenshot-1.jpg\" alt=\"Chat conversation view\" style=\"max-width: 500px; height: auto;\" /\u003e\n  \u003cimg src=\"./docs/screenshot-2.jpg\" alt=\"Code blocks and artifacts\" style=\"max-width: 600px; height: auto;\" /\u003e\n  \u003cimg src=\"./docs/screenshot-3.png\" alt=\"Search and filtering\" style=\"max-width: 600px; height: auto;\" /\u003e\n\u003c/div\u003e\n\n## Features\n\n- View Claude chat JSON exports in a readable format\n- Direct ZIP archive upload - no extraction needed\n- Browse and select from multiple conversations (conversations.json support)\n- Advanced search and filtering for conversations:\n  - Search by title/summary or full conversation text\n  - Regular expression (regex) pattern matching\n  - Case-sensitive search option\n  - Real-time filtering with result counter\n- Support for code blocks with syntax highlighting\n- Download all code and artifacts as a zip file\n- Copy entire conversations with formatting preserved\n- Display Claude's thinking process (optional)\n- Print-friendly layout\n- Responsive design\n- Persistent storage of last viewed conversation\n\n## Privacy\n\n**Your data stays private.** This application runs entirely in your browser as a static website. Your conversations and files:\n- Never leave your computer\n- Are not uploaded to any server\n- Cannot be accessed by us or anyone else\n- Are processed locally using JavaScript\n\nThe app is served as static files from a CDN with no backend server or database. All processing happens client-side in your browser. We have no ability to see, store, or access any of your Claude conversation data.\n\n## Usage\n\nVisit [tools.osteele.com/claude-chat-viewer](https://tools.osteele.com/claude-chat-viewer) to use the application.\n\n### Viewing Individual Conversations\n\n1. Export your Claude chat as JSON\n2. Click \"Enter JSON\" in the viewer or use the \"Upload File\" button\n3. Paste your JSON or select a file\n4. View your conversation in a clean, readable format\n\n### Viewing Multiple Conversations\n\nThe viewer supports Claude's full data export in two ways:\n\n#### Option 1: Direct ZIP Upload (Recommended)\n1. Request a data export from Claude (Settings → Account → Request Export)\n2. Download the ZIP archive when ready\n3. Click \"Upload File\" and select the ZIP directly - no extraction needed!\n4. Browse through all your conversations with summaries\n5. Select any conversation to view in detail\n6. Use the header navigation to switch between conversations\n\n#### Option 2: Upload conversations.json\n1. Extract the Claude export ZIP\n2. Upload the `conversations.json` file using the \"Upload File\" button\n3. Browse and select from your conversations\n\n### Searching Conversations\n\nWhen browsing multiple conversations, you can use the search feature to quickly find specific conversations:\n\n- **Search by Title \u0026 Summary**: Quick search through conversation names and summaries\n- **Search Full Text**: Deep search through all messages in conversations\n- **Regex Mode**: Use regular expressions for advanced pattern matching (e.g., `\\d{4}-\\d{2}-\\d{2}` for dates)\n- **Case Sensitive**: Toggle for exact case matching\n- **Clear Button**: Click the X button to quickly clear your search\n\n### Loading Files via URL Parameter\n\nIn development mode, you can load files directly via URL parameter:\n\n```\n# Single conversation\nhttp://localhost:5173/?file=inputs/chat.json\n\n# Multiple conversations\nhttp://localhost:5173/?file=inputs/data/conversations.json\n```\n\nThis is particularly useful for:\n- Development and testing with sample data\n- Sharing specific conversation files\n- Automating the viewer with pre-loaded content\n\n### Downloading Artifacts\n\nClick the \"Download Artifacts\" button to download all code snippets and artifacts as a zip file. The downloaded archive will:\n- Maintain file extensions based on language or MIME type\n- Preserve directory structure from file paths\n- Include all code snippets and tool outputs from the conversation\n- Name files based on their titles or content\n\n### Copying Conversations\n\nClick the \"Copy conversation\" button to copy the entire conversation to your clipboard. The copied text will:\n- Preserve formatting when pasted into rich text editors (like Google Docs or Word)\n- Include proper formatting for code blocks with monospace font\n- Fall back to clean plain text when pasted into plain text editors\n\n### Printing\n\nUse your browser's print function to create a PDF or paper copy. The viewer automatically formats the conversation for printing.\n\n### Keyboard Shortcuts\n\n- `Cmd/Ctrl + V` - Paste JSON\n- `Tab` - Navigate between elements\n- `Enter` - Activate buttons and controls\n\n## Local Installation\n\nIf you want to run the viewer locally:\n\n```bash\n# Clone the repository\ngit clone https://github.com/osteele/claude-chat-viewer.git\n\n# Install dependencies\ncd claude-chat-viewer\nbun install\n\n# Start the development server\nbun dev\n```\n\nVisit http://localhost:5173 in your browser.\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for development setup and guidelines.\n\n## More Tools\n\nCheck out my [other web applications](https://osteele.com/software/web-apps/) and [AI \u0026 LLM tools](https://osteele.com/topics/ai).\n\n### Related Projects\n\n- [Convert Claude JSON to\nMarkdown](https://observablehq.com/@simonw/convert-claude-json-to-markdown) - Observable script to convert Claude JSON to markdown\n- [Claude Artifact Unpacker](https://github.com/osteele/claude-artifact-unpacker) - Extract and save Claude artifacts as files\n- There's some Chrome extensions with similar functionality. They don't require you to download or export JSON files.\n\nAlso see [my other Development Tools](https://github.com/osteele/software/develop-tools) - Collection of development utilities and tools\n\n## Acknowledgements\n\nInspired by Simon Willison's [Convert Claude JSON to\nMarkdown](https://observablehq.com/@simonw/convert-claude-json-to-markdown)\ntool.\n\nThanks to [@adamnemecek](https://github.com/adamnemecek) for the UI improvement suggestion (#1).\n\n## License\n\nMIT\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fosteele%2Fclaude-chat-viewer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fosteele%2Fclaude-chat-viewer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fosteele%2Fclaude-chat-viewer/lists"}