Free browser tool · no registration

Claude Code Session Viewer

Turn a raw Claude Code JSONL session transcript into a readable timeline and waterfall. Inspect prompts, reasoning, tool calls, outputs, errors and token usage without digging through one JSON object per line.

Stays in your browser Readable session replay JSONL in, timeline out

Drop a Claude Code JSONL session

Processed locally in this browser · max 25 MB

Events

10

Tool calls

3

Duration

5.2s

Tokens

30.6K

Opened session

sample-refactor-auth.jsonl

sample-refactor-auth · /Users/demo/checkout

0s5.2s
  1. Prompt

    Find the stale session check, fix it, and run the auth tests.

    Find the stale session check, fix it, and run the auth tests.
  2. Thinking

    I should inspect the auth module and its tests before changing the guard.

    I should inspect the auth module and its tests before changing the guard.

    claude-sonnet-4-6

  3. Claude

    I’ll inspect the current guard and the failing test path first.

    I’ll inspect the current guard and the failing test path first.

    claude-sonnet-4-6 · 9,840 input · 164 output

  4. Read380ms

    { "file_path": "src/auth.ts" }

    {
      "file_path": "src/auth.ts"
    }
  5. Tool result

    export function isSessionValid(session) { return session.expiresAt > Date.now() - 30000 }

    export function isSessionValid(session) {
      return session.expiresAt > Date.now() - 30000
    }
  6. Claude

    The guard accepts sessions for 30 seconds after expiry. I’ll remove that stale window and run the focused tests.

    The guard accepts sessions for 30 seconds after expiry. I’ll remove that stale window and run the focused tests.

    claude-sonnet-4-6 · 9,980 input · 226 output

  7. Edit

    { "file_path": "src/auth.ts", "old_string": "session.expiresAt > Date.now() - 30000", "new_string": "session.expiresAt > Date.now()" }

    {
      "file_path": "src/auth.ts",
      "old_string": "session.expiresAt > Date.now() - 30000",
      "new_string": "session.expiresAt > Date.now()"
    }
  8. Bash2.9s

    { "command": "pnpm test auth" }

    {
      "command": "pnpm test auth"
    }
  9. Tool result

    PASS test/auth.test.ts (14 tests)

    PASS test/auth.test.ts (14 tests)
  10. Claude

    Fixed the expiry guard and verified all 14 auth tests pass.

    Fixed the expiry guard and verified all 14 auth tests pass.

    claude-sonnet-4-6 · 10.3K input · 71 output

STEP 1

Choose a session

Claude Code stores local session transcripts as JSONL files under its projects directory.

STEP 2

Parse locally

Your browser reads the file in memory. The transcript is not uploaded to tracehouse.

STEP 3

Replay or export

Search the timeline, open tool details and export the parsed view as portable JSON.

Where are Claude Code sessions?

Open the transcript Claude Code already saved

Claude Code session history is typically stored under~/.claude/projects/. Choose a project directory, then open one of its .jsonl files here.

Privacy statement

The local viewer does not upload your file

Parsing and rendering happen client-side in the current tab. Choosing a file does not send its contents to tracehouse. If you later install automatic monitoring, local secret and PII redaction runs before recorded spans are synced.

Want every session recorded automatically?

Move from one-off JSONL viewing to continuous monitoring

tracehouse watches new Claude Code sessions, preserves searchable traces and gives you sharing, comparison, cost analysis and a complete replay without manually choosing files.