{"id":37542193,"url":"https://github.com/jeikeilim/claude-code-log-viewer-cli","last_synced_at":"2026-03-10T06:01:04.672Z","repository":{"id":332325579,"uuid":"1133376650","full_name":"JeiKeiLim/claude-code-log-viewer-cli","owner":"JeiKeiLim","description":"Terminal-based viewer for Claude Code conversation logs. Browse projects, view conversations with vim-style navigation, collapsible thinking blocks, and CJK character support.","archived":false,"fork":false,"pushed_at":"2026-01-30T00:03:59.000Z","size":12672,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-30T00:59:51.319Z","etag":null,"topics":["bubbletea","claude","claude-code","cli","conversation","go","golang","log-viewer","terminal","tui"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JeiKeiLim.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-13T09:06:37.000Z","updated_at":"2026-01-30T00:04:11.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/JeiKeiLim/claude-code-log-viewer-cli","commit_stats":null,"previous_names":["jeikeilim/claude-code-log-viewer-cli"],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/JeiKeiLim/claude-code-log-viewer-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JeiKeiLim%2Fclaude-code-log-viewer-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JeiKeiLim%2Fclaude-code-log-viewer-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JeiKeiLim%2Fclaude-code-log-viewer-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JeiKeiLim%2Fclaude-code-log-viewer-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JeiKeiLim","download_url":"https://codeload.github.com/JeiKeiLim/claude-code-log-viewer-cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JeiKeiLim%2Fclaude-code-log-viewer-cli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30326878,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T05:25:20.737Z","status":"ssl_error","status_checked_at":"2026-03-10T05:25:17.430Z","response_time":106,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["bubbletea","claude","claude-code","cli","conversation","go","golang","log-viewer","terminal","tui"],"created_at":"2026-01-16T08:46:33.644Z","updated_at":"2026-03-10T06:01:04.666Z","avatar_url":"https://github.com/JeiKeiLim.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# cclv - Claude Code Log Viewer\n\nA terminal UI for browsing and viewing Claude Code conversation logs.\n\n![Go Version](https://img.shields.io/badge/Go-1.21+-00ADD8?style=flat\u0026logo=go)\n![License](https://img.shields.io/badge/License-MIT-green.svg)\n[![Release](https://img.shields.io/github/v/release/JeiKeiLim/claude-code-log-viewer-cli)](https://github.com/JeiKeiLim/claude-code-log-viewer-cli/releases/latest)\n\n![cclv demo](docs/res/demo.gif)\n\nBrowse your Claude Code projects, select a conversation, and view the full message history with collapsible thinking sections and tool call details — all from your terminal.\n\n## Features\n\n- **Interactive Project Browser** - Navigate all your Claude Code projects from `~/.claude/projects/`\n- **Conversation Timeline** - Browse conversations sorted by most recent\n- **Log Viewer** - View messages with markdown rendering and proper text wrapping\n- **Dashboard Mode** - Monitor up to 9 projects simultaneously in a grid layout\n- **Watch Mode** - Real-time updates as conversations grow (`-w` flag)\n- **Usage Limit Monitor** - View Claude Code API usage limits in TUI status bar or via `--usage` flag\n- **Developer Power Tools** - Line numbers, raw JSONL mode, vim-style `:N` navigation\n- **Token Statistics** - View token counts per message and conversation totals\n- **Vim-style Navigation** - `j/k`, `gg/G`, `/search`, and more\n- **CJK Support** - Proper display of Korean, Japanese, and Chinese characters\n- **Pipeline Mode** - Pipe JSONL logs directly: `cat file.jsonl | cclv`\n- **Plain Text Output** - Export logs without TUI for scripting\n\n## Installation\n\n### Download Binary (Recommended)\n\nDownload the latest release for your platform from [GitHub Releases](https://github.com/JeiKeiLim/claude-code-log-viewer-cli/releases/latest).\n\n**macOS (Apple Silicon):**\n```bash\ncurl -Lo cclv.tar.gz https://github.com/JeiKeiLim/claude-code-log-viewer-cli/releases/latest/download/cclv_darwin_arm64.tar.gz \u0026\u0026 mkdir -p ~/.local/bin \u0026\u0026 tar -xzf cclv.tar.gz -C ~/.local/bin cclv \u0026\u0026 rm cclv.tar.gz\n```\n\n**macOS (Intel):**\n```bash\ncurl -Lo cclv.tar.gz https://github.com/JeiKeiLim/claude-code-log-viewer-cli/releases/latest/download/cclv_darwin_amd64.tar.gz \u0026\u0026 mkdir -p ~/.local/bin \u0026\u0026 tar -xzf cclv.tar.gz -C ~/.local/bin cclv \u0026\u0026 rm cclv.tar.gz\n```\n\n**Linux (amd64):**\n```bash\ncurl -Lo cclv.tar.gz https://github.com/JeiKeiLim/claude-code-log-viewer-cli/releases/latest/download/cclv_linux_amd64.tar.gz \u0026\u0026 mkdir -p ~/.local/bin \u0026\u0026 tar -xzf cclv.tar.gz -C ~/.local/bin cclv \u0026\u0026 rm cclv.tar.gz\n```\n\n**Linux (arm64):**\n```bash\ncurl -Lo cclv.tar.gz https://github.com/JeiKeiLim/claude-code-log-viewer-cli/releases/latest/download/cclv_linux_arm64.tar.gz \u0026\u0026 mkdir -p ~/.local/bin \u0026\u0026 tar -xzf cclv.tar.gz -C ~/.local/bin cclv \u0026\u0026 rm cclv.tar.gz\n```\n\n\u003e **Note:** Make sure `~/.local/bin` is in your PATH. If not, add this to your `~/.bashrc` or `~/.zshrc`:\n\u003e ```bash\n\u003e export PATH=\"$HOME/.local/bin:$PATH\"\n\u003e ```\n\n### Go Install\n\nIf you have Go installed:\n\n```bash\ngo install github.com/JeiKeiLim/claude-code-log-viewer-cli/cmd/cclv@latest\n```\n\n### Build from Source\n\n```bash\ngit clone https://github.com/JeiKeiLim/claude-code-log-viewer-cli.git\ncd claude-code-log-viewer-cli\nmake build\nmv cclv ~/.local/bin/\n```\n\n## Usage\n\n### Interactive Mode\n\nSimply run `cclv` to browse all your Claude Code projects:\n\n```bash\ncclv\n```\n\nThis opens an interactive browser where you can:\n1. Select a project from the list\n2. Choose a conversation session\n3. View the full conversation log\n\n### View a Specific File\n\n```bash\ncclv path/to/conversation.jsonl\n```\n\n### Pipeline Mode\n\n```bash\ncat conversation.jsonl | cclv\n```\n\n### Plain Text Output\n\n```bash\n# Force plain text output (no TUI)\ncclv --plain conversation.jsonl\n\n# Pipe to other tools\ncclv --plain conversation.jsonl | grep \"error\"\n\n# Force TUI even when piping\ncat file.jsonl | cclv --tui\n```\n\n### Watch Mode\n\nMonitor a conversation in real-time as it grows:\n\n```bash\n# Watch a specific file\ncclv -w conversation.jsonl\n\n# From interactive mode, press 'w' on a conversation to watch it\n```\n\n### Dashboard Mode\n\nMonitor multiple projects simultaneously:\n\n1. Run `cclv` to open the project browser\n2. Press `Space` to select projects (up to 9)\n3. Press `Enter` to open dashboard view\n\nThe dashboard displays a grid layout that auto-sizes based on selection count:\n- 1 project: Full screen\n- 2-3 projects: 1 row\n- 4 projects: 2x2 grid\n- 5-6 projects: 2x3 grid\n- 7-9 projects: 3x3 grid\n\nEach pane shows the latest conversation and updates in real-time.\n\n### Color Output\n\nBy default, colors are disabled when output is piped. Use `--color` to control this:\n\n```bash\n# Auto-detect (default) - colors when TTY, no colors when piped\ncclv --plain conversation.jsonl\n\n# Force colors even when piping\ncclv --plain --color=always conversation.jsonl | cat\n\n# Disable colors completely\ncclv --plain --color=never conversation.jsonl\n```\n\n### Version Information\n\n```bash\n# Show version\ncclv --version\ncclv -v\n```\n\n### Usage Information\n\nCheck your Claude Code API usage limits directly from the terminal:\n\n```bash\n# Show current usage (requires Claude Code credentials)\ncclv --usage\ncclv -u\n```\n\nThis displays your daily token usage, reset time, and usage percentage. Useful for monitoring limits in scripts or checking before starting long sessions.\n\n### Streaming Plain Mode\n\nFor integration with external tools, combine watch and plain modes:\n\n```bash\n# Stream formatted output continuously\ncclv --watch --plain conversation.jsonl\n\n# With color output for tools that support ANSI\ncclv --watch --plain --color=always conversation.jsonl\n```\n\nNew entries appear formatted in real-time. The process continues until interrupted with Ctrl+C.\n\n## Keyboard Shortcuts\n\n### Project List\n\n| Key | Action |\n|-----|--------|\n| `j` / `k` | Navigate down / up |\n| `Enter` / `l` | Select project |\n| `Space` | Toggle project selection (for dashboard) |\n| `g` / `G` | Jump to top / bottom |\n| `/` | Filter list |\n| `q` | Quit |\n\n### Conversation List\n\n| Key | Action |\n|-----|--------|\n| `j` / `k` | Navigate down / up |\n| `Enter` / `l` | Open conversation |\n| `w` | Open with watch mode |\n| `h` / `Esc` | Go back |\n| `g` / `G` | Jump to top / bottom |\n| `/` | Filter list |\n| `q` | Quit |\n\n### Log Viewer\n\n| Key | Action |\n|-----|--------|\n| `j` / `k` | Scroll down / up |\n| `d` / `u` | Half page down / up |\n| `gg` / `G` | Jump to top / bottom |\n| `:N` | Jump to line/entry N |\n| `/` | Search |\n| `n` / `N` | Next / previous match |\n| `t` | Toggle thinking blocks |\n| `i` | Toggle tool inputs |\n| `r` | Toggle raw JSONL mode |\n| `p` | Show file path (toast) |\n| `h` / `Esc` | Go back |\n| `q` | Quit |\n\n### Dashboard\n\n| Key | Action |\n|-----|--------|\n| `h` / `j` / `k` / `l` | Navigate between panes |\n| Arrow keys | Navigate between panes |\n| `Enter` | Open focused pane in viewer |\n| `r` | Refresh focused pane |\n| `Esc` | Return to project list |\n| `q` | Quit |\n\n### Global (All Views)\n\n| Key | Action |\n|-----|--------|\n| `R` | Refresh Claude Code usage limit |\n| `q` | Quit |\n\n## Message Types\n\nThe viewer renders different message types with distinct styling:\n\n- **User messages** - Your prompts and questions\n- **Assistant responses** - Claude's text responses with markdown rendering\n- **Thinking blocks** - Claude's reasoning (collapsible with `t`)\n- **Tool use** - Tool calls and inputs (collapsible with `i`)\n\nEach message displays token usage when available:\n- `Tokens: 1,234 (from log)` - Actual token count from Claude's API response\n- `Tokens: ~1,200 (estimated)` - Calculated estimate using tiktoken\n\nThe status bar shows conversation totals with a `~` prefix when any tokens are estimated.\n\n## How It Works\n\nClaude Code stores conversation logs in `~/.claude/projects/` as JSONL files. Each project directory is named using an encoded path format. `cclv` automatically:\n\n1. Scans the projects directory\n2. Decodes project paths (handles hyphens, underscores, and special characters)\n3. Parses JSONL conversation logs\n4. Renders them in a TUI\n\n## Requirements\n\n- Go 1.21 or later\n- Terminal with ANSI color support\n\n## License\n\nMIT\n\n## Acknowledgments\n\nBuilt with:\n- [Bubble Tea](https://github.com/charmbracelet/bubbletea) - TUI framework\n- [Lip Gloss](https://github.com/charmbracelet/lipgloss) - Style definitions\n- [Bubbles](https://github.com/charmbracelet/bubbles) - TUI components\n- [Glamour](https://github.com/charmbracelet/glamour) - Markdown rendering\n- [fsnotify](https://github.com/fsnotify/fsnotify) - File system notifications\n- [tiktoken-go](https://github.com/pkoukk/tiktoken-go) - Token counting\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeikeilim%2Fclaude-code-log-viewer-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjeikeilim%2Fclaude-code-log-viewer-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeikeilim%2Fclaude-code-log-viewer-cli/lists"}