Installation, navigation, search, watchlists, filters, and memory. Everything you need to get the most out of clog.
Claude Code stores every conversation as a JSONL file under ~/.claude/projects/. Each file contains the full message history — user prompts, assistant responses, tool calls, token counts, model information, and timestamps. After a few weeks of use, you'll have hundreds of these files across dozens of projects.
Claude Chronicle (clog) is a terminal dashboard that makes all of this navigable. It discovers your projects, indexes conversation content with SQLite FTS5 for full-text search, and presents everything in a keyboard-driven multi-pane layout. You can search across all your conversations, set up regex watchlists to monitor for patterns, filter the conversation log by message type or model, tail active sessions in real time, and inspect project memory and hooks configuration — all a hotkey away.
It's a single Go binary with zero external dependencies. No config files required — just run clog and it finds your data.
go install github.com/thinkwright/claude-chronicle/cmd/clog@latest
git clone https://github.com/thinkwright/claude-chronicle cd claude-chronicle go build -o clog ./cmd/clog ./clog
modernc.org/sqlite (pure Go, no CGO) for the search index.
clog
On first launch, clog scans ~/.claude/projects/ and indexes all conversation files. This takes a few seconds for typical setups (under 60 seconds for 1 GB of data). After that, incremental indexing keeps things current as Claude Code writes new conversations.
Use Tab to cycle between panes, arrow keys or j/k to navigate within a pane, and Enter to select. Press / to search, f to filter, w to toggle the watchlist, M for memory, H for hooks, and ? for settings.
clog --reindex
| Key | Action |
|---|---|
| Tab | Next pane |
| Shift+Tab | Previous pane |
| ↑ / k | Move up / scroll up |
| ↓ / j | Move down / scroll down |
| PgUp / PgDn | Page up / down in detail pane |
| g | Jump to bottom of conversation |
| G | Jump to top of conversation |
| q | Quit (shows confirmation dialog) |
| Ctrl+C | Force quit immediately |
| Key | Action |
|---|---|
| / | Open search (project scope) |
| Tab | Cycle scope: project → global → local (while search is open) |
| Enter | Navigate to selected result |
| n | Next match |
| N | Previous match |
| Esc | Close search (keeps highlight); press again to clear |
| Key | Action |
|---|---|
| f | Open filter editor |
| F | Clear all filters |
| w | Toggle watchlist pane |
| W | Add new watchlist item |
| Key | Action |
|---|---|
| M | Open Memory viewer |
| H | Open Hooks viewer |
| ? | Open Settings panel |
Search is powered by SQLite FTS5 with Porter stemming. It searches across all message content and tool call names.
deploy production # "deploy" AND "production" "deploy to production" # exact phrase match error OR panic # boolean OR fix bug model:opus # FTS + structured filter
Press Tab while the search bar is open to cycle between scopes.
Filters narrow the conversation log to messages matching specific criteria. Press f to open the filter editor, type a filter expression, and press Enter. Filters are stackable — multiple filters are ANDed together.
type:user # show only user messages type:assistant # show only assistant responses model:opus # messages from Opus models tool:Bash # messages that used the Bash tool tokens:>10000 # messages with >10k tokens model:opus tool:Edit # combined: Opus + Edit tool
| Field | Description |
|---|---|
type: | Message type — user, assistant, system |
model: | Model name — opus, sonnet, haiku (substring match) |
tool: | Tool name used in the message (case-insensitive) |
tokens:>N | Messages with total tokens above N |
tokens:<N | Messages with total tokens below N |
The watchlist turns clog from a passive viewer into an active monitor. Define regex patterns and clog will alert you when new conversation content matches — useful for tracking errors, deployment mentions, specific tool usage, or anything else you want to keep an eye on.
Press w to toggle the watchlist pane, W to add a new item. Items show an unseen match count that updates in real time.
| Key | Action |
|---|---|
| a / W | Add new watchlist pattern |
| d | Delete selected pattern |
| Space | Toggle enabled/disabled |
| Enter | Show matches in session list |
| m | Mark all as seen |
Claude Code auto-generates memory files under ~/.claude/projects/<project>/memory/. These contain patterns, preferences, and architectural notes that Claude learns across sessions. Press M to open a centered modal overlay that displays all memory files for the current project.
Claude Code hooks are shell commands that run in response to events (tool calls, notifications, etc.). They can be configured at global, project, or local scope. Press H to open a modal overlay that displays all hooks configurations with their sources.
Press ? to open the settings panel. It displays database statistics (indexed files, total messages) and provides controls for reindexing.
| Key | Action |
|---|---|
| r | Incremental reindex (only new/changed files) |
| R | Full rebuild (drops database and reindexes everything) |
| ? / Esc | Close settings panel |
INDEX: Xd old — [?]→[r] to refresh. The warning disappears after reindexing.
clog reads Claude Code's raw JSONL files from ~/.claude/projects/. It does not modify or write to these files — it's strictly read-only.
The search index is stored as a SQLite database. On macOS: ~/Library/Application Support/clog/index.db. On Linux: ~/.local/share/clog/index.db.
clog --reindex drops and rebuilds from scratchprogress, queue-operation, and file-history-snapshot messages are excluded