How it reads your logs

nightreel never phones home. It reads files already on your disk, derives facts from them, and writes files next to them.

What it reads

Claude Code
~/.claude/projects/<encoded-cwd>/<session>.jsonl, plus subagent files folded into the parent session. Unknown record types are tolerated and counted; malformed lines are skipped and counted.
Codex CLI
~/.codex/sessions/YYYY/MM/DD/rollout-*.jsonl, picked automatically when you pass --root ~/.codex.
git
Commits and line counts inside the window, and the final HEAD, from the project's repository.

What it computes

  • Phases: explore, build, verify, fix, idle — from which tools ran when.
  • Error arcs: consecutive failures of one command until it next succeeds; the longest is the hardest moment.
  • Hotspots: files by edit count and lines changed, with errors attributed to them.
  • Claims: completion statements in the final message, checked against the last verify run after the last edit — verified, contradicted or unverified.
  • A number validator: anything spoken or captioned in the reel must appear in facts.json, or the render fails.

What it redacts

Before any string reaches a debrief, a storyboard or a frame:

  • API keys and tokens: OpenAI/Anthropic sk-, AWS AKIA, GitHub ghp_, Slack, Stripe, bearer tokens, JWTs.
  • Private-key blocks, .env-style KEY=value and key: value secrets, credentials in URLs.
  • Email addresses, and /home/you or /Users/you paths, replaced with ~.
  • With --redact strict, prompts are replaced with a one-line generic summary.

The demo transcripts contain fake secrets on purpose; the test suite asserts that none of them survive into any output, and the events listed on the overview page went through the same redaction.

What it does not do

  • No network requests. No telemetry. No accounts.
  • No model calls unless you opt in with --llm ollama, which only rephrases narration and is rejected if a number changes.

The sessions it found in the demo data

$ nightreel ls --root src/nightreel/demo_data/transcripts
                           3 session(s) · 175 events                            
┏━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━━┳━━━━━━━┳━━━━━━━━┳━━━━━┳━━━━━━━━━━━━━┓
┃          ┃ started     ┃       ┃        ┃       ┃        ┃     ┃             ┃
┃ session  ┃ (UTC)       ┃ ended ┃ events ┃ edits ┃ errors ┃ sub ┃ cwd         ┃
┡━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━━╇━━━━━━━╇━━━━━━━━╇━━━━━╇━━━━━━━━━━━━━┩
│ a3f1c2d4 │ 2026-09-30  │ 23:18 │     69 │     8 │      4 │   1 │ /home/dev/… │
│          │ 22:05       │       │        │       │        │     │             │
│ b7e2d3c4 │ 2026-10-01  │ 02:13 │     81 │    17 │      7 │   0 │ /home/dev/… │
│          │ 01:00       │       │        │       │        │     │             │
│ c9d4e5f6 │ 2026-10-01  │ 04:52 │     25 │     5 │      0 │   0 │ /home/dev/… │
│          │ 04:10       │       │        │       │        │     │             │
└──────────┴─────────────┴───────┴────────┴───────┴────────┴─────┴─────────────┘