You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+46-8Lines changed: 46 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# ccview
2
2
3
-
A terminal-based explorer and renderer for [Claude Code](https://docs.anthropic.com/en/docs/claude-code) conversation histories. Browse projects, view conversations with markdown rendering, inspect sub-agents, and export to HTML/Markdown/JSONL.
3
+
A terminal-based explorer and renderer for [Claude Code](https://docs.anthropic.com/en/docs/claude-code)and [OpenCode](https://github.com/opencode-ai/opencode)conversation histories. Browse projects, view conversations with markdown rendering, inspect sub-agents, search across sessions, and export to HTML/Markdown/JSONL.
4
4
5
5
Built with [Bubble Tea](https://github.com/charmbracelet/bubbletea), [Lip Gloss](https://github.com/charmbracelet/lipgloss), and [Glamour](https://github.com/charmbracelet/glamour).
6
6
@@ -85,10 +85,14 @@ ccview
85
85
86
86
Split-pane interactive explorer. Left pane shows the project tree with conversations, plans, and memory files. Right pane renders conversation content with syntax-highlighted markdown.
87
87
88
+
-**Multi-provider support** - Claude Code (`~/.claude/`) and OpenCode (`~/.local/share/opencode/opencode.db`) side by side. Tabbed UI when both are available; tabs hidden with only one provider.
88
89
- Conversations sorted newest-first with smart timestamps
89
90
- Sub-agents collapsed by default, expand on selection
90
91
- Global plans shown in sidebar
91
92
- Tool calls wrap cleanly with aligned continuation lines
93
+
-**Mouse selection** - Click to focus panes, drag-select text within the content pane, auto-copies to clipboard. Scroll wheel works per-pane.
94
+
-**Content search** - Press `/` in the viewer for live debounced search with match highlighting and `n`/`N` navigation between matches.
95
+
-**Session search** - Press `/` from the project list or sidebar to open a search overlay. Toggle between global and project-scoped results with `tab`, navigate with `j`/`k`, open with `enter`.
92
96
- Press `o` to open any file in your `$EDITOR`
93
97
- Press `e` for a guided export wizard (format, path, filename)
94
98
@@ -127,11 +131,19 @@ For full conversations with sub-agents, HTML export creates a directory with `in
127
131
|`l` / `Right`| Switch to viewer |
128
132
|`h` / `Left` / `Esc`| Back to project list |
129
133
|`Tab`| Switch to viewer pane |
134
+
|`/`| Open session search (project-scoped) |
130
135
|`e`| Export wizard |
131
136
|`o`| Open in `$EDITOR`|
132
137
|`g` / `G`| Jump to top/bottom |
133
138
|`q`| Quit |
134
139
140
+
### Project List
141
+
142
+
| Key | Action |
143
+
|-----|--------|
144
+
|`1` / `2`| Switch provider tab |
145
+
|`/`| Open session search (global) |
146
+
135
147
### Viewer
136
148
137
149
| Key | Action |
@@ -140,14 +152,28 @@ For full conversations with sub-agents, HTML export creates a directory with `in
140
152
|`Space` / `f`| Page down |
141
153
|`b`| Page up |
142
154
|`g` / `G`| Jump to top/bottom |
155
+
|`/`| Search content |
156
+
|`n` / `N`| Next / previous match |
157
+
|`Esc`| Clear search |
143
158
|`Tab` / `h`| Switch to sidebar |
144
159
|`e`| Export wizard |
145
160
|`o`| Open in `$EDITOR`|
146
161
|`q`| Quit |
147
162
163
+
### Session Search Overlay
164
+
165
+
| Key | Action |
166
+
|-----|--------|
167
+
|`tab`| Toggle global / project scope |
168
+
|`j` / `k`| Navigate results |
169
+
|`Enter`| Open selected session |
170
+
|`Esc`| Close overlay |
171
+
148
172
## What it reads
149
173
150
-
ccview reads from `~/.claude/` and organizes data as:
174
+
ccview reads from multiple sources:
175
+
176
+
#### Claude Code (`~/.claude/`)
151
177
152
178
| Source | Description |
153
179
|--------|-------------|
@@ -159,6 +185,14 @@ ccview reads from `~/.claude/` and organizes data as:
159
185
|`*/CLAUDE.md`| Project-level instructions |
160
186
|`~/.claude/plans/*.md`| Plan documents |
161
187
188
+
#### OpenCode (`~/.local/share/opencode/`)
189
+
190
+
| Source | Description |
191
+
|--------|-------------|
192
+
|`opencode.db`| SQLite database with sessions, messages, and parts |
193
+
| Sessions | Grouped by project (worktree path) |
194
+
| Message parts | Text, tool calls, reasoning, patches, and file references |
195
+
162
196
### Message types rendered
163
197
164
198
-**User messages** - with markdown rendering
@@ -170,12 +204,15 @@ ccview reads from `~/.claude/` and organizes data as:
170
204
## Architecture
171
205
172
206
```
173
-
main.go CLI entry point, flag parsing
174
-
data.go Tree types, project scanning, filesystem loading
0 commit comments