Skip to content

Sessions & Conversation View

Sessions are the core unit of Code Insights. Every time you sit down with Claude Code — whether it’s a quick file rename or a multi-hour feature build — a session is created. The CLI parses these raw JSONL transcripts, extracts structure and metadata, and syncs everything to your Firestore. The dashboard is where those sessions become browsable, searchable, and useful. You can relive a debugging marathon from last Tuesday, find that one refactor where you nailed a tricky migration, or scan through a week of work to see what you actually accomplished.

The sessions page opens with a sidebar on the left that acts as your session browser. At the top, a search bar lets you filter sessions by title — start typing and the list narrows instantly. Below that, a project dropdown scopes the list to a single project, which is useful when you’re working across several repos and want to focus.

The session list itself is chronological, newest first. Each entry shows the session’s title (truncated if it’s long), the project name beneath it, and a relative timestamp like “2 hours ago” or “3 days ago”. The list loads in pages — scroll to the bottom and hit Load More to pull in older sessions.

Click any session in the sidebar to load its detail view in the main content area. The selected session highlights so you always know where you are.

Session sidebar with search and project filter

When you click into a session, the overview tab loads first with everything you need to understand what happened at a glance.

The session title appears prominently at the top. Titles are auto-generated by the CLI using several strategies — Claude’s own summary of the conversation, the first user message, an insight-derived label, a character-based description, or a generic fallback. A pencil icon next to the title lets you rename it to something more meaningful (see Renaming Sessions below).

Just below the title, a compact metadata bar shows the key numbers: message count, tool call count, duration (formatted as hours and minutes), the time range (start and end timestamps), and the project name. This row gives you the shape of the session before you read a single message.

If the session has been analyzed with an LLM, a summary section appears with a narrative overview and bullet points highlighting the key activities, decisions, and outcomes. This is generated by the analysis engine and saved as an insight — you don’t need to re-run it each time you visit.

Four cards present the session’s vital statistics side by side:

  • Duration — Total elapsed time from first message to last
  • Messages — Count of all messages in the conversation
  • Tool Calls — How many tools Claude invoked (reads, writes, bash commands, searches)
  • Character — A badge showing the session’s classified character type (more on this below)

An expandable section at the bottom reveals token-level details: input tokens, output tokens, cache read tokens, the estimated cost based on model pricing, and which model was used. This is particularly useful for tracking spend or understanding why a session felt expensive.

Session overview showing summary, vitals, and character badge

Every session is assigned a character by the CLI based on patterns in the conversation — message count, tool usage, file operations, and content signals. The character gives you an at-a-glance sense of what kind of work happened without reading the transcript.

CharacterDescription
Deep FocusExtended session (50+ messages) with concentrated work on a small set of files
Bug HuntDebugging-heavy with error analysis, stack traces, and iterative fixes
Feature BuildAdding new functionality with multiple file changes and incremental progress
ExplorationResearch-oriented — reading code, asking questions, surveying a codebase
RefactorRestructuring existing code, moving files, renaming symbols, cleaning up
LearningEducational exchanges, documentation work, or exploring new concepts and APIs
Quick TaskShort session under 10 messages, single-purpose — a rename, a config tweak, a quick fix

Characters are assigned during sync and won’t change unless you re-sync with --force. They’re meant to be descriptive, not prescriptive — a session labeled “Bug Hunt” might have included some feature work too, but debugging was the dominant activity.

Switch to the Conversation tab to read the full session transcript — every message, every tool call, every thinking block, exactly as it happened.

Messages are displayed chronologically with clear visual separation between participants:

  • Your messages appear on the right side with an amber/orange background tint, a “You” label, and a timestamp. These are the prompts and instructions you typed during the session.
  • Claude’s messages appear on the left side with a Claude avatar (green circle) and a timestamp. These contain Claude’s responses, explanations, and code.

When Claude’s extended thinking is captured in the session, it appears as collapsible amber/gold sections within Claude’s messages. The block starts collapsed with a “Thinking” label — click to expand and read the full chain of thought. This is where you can see Claude’s reasoning process: how it broke down your request, what approaches it considered, and why it chose the path it did.

Tool invocations show up as compact badges inline with Claude’s messages. Each badge displays the tool name — Read, Write, Bash, Grep, Glob, Edit, and others — in a pill-shaped label. Click a badge to expand it and see the input (what was passed to the tool) and output (what came back). For file reads, you’ll see the file path and contents. For bash commands, you’ll see the command and its output. For edits, you’ll see the before-and-after diff.

Code within messages is syntax-highlighted with a language label in the corner of the block. The dashboard uses the same highlighting you’d expect in a code editor, making it easy to scan through implementation details without squinting at monospace walls.

The entire conversation flows top to bottom in the order it happened. Timestamps on each message let you reconstruct the pacing — you can tell when you spent five minutes thinking before your next prompt, or when Claude churned through a dozen tool calls in rapid succession.

Conversation view with thinking blocks and tool call badges

Auto-generated titles are useful but not always memorable. To set a custom title, click the pencil icon next to the session title in the detail view. A dialog appears where you can type a new name — something like “Fixed the auth redirect loop” or “Migrated to Tailwind v4”.

Custom titles override the auto-generated title everywhere: in the sidebar, in search results, and in exports. The original generated title is preserved behind the scenes — if you clear the custom title field and save, the session reverts to its auto-generated name. You’re never losing the original.