What problem does it solve? In an agent-written codebase, git blame tells you which commit touched a line but not why — the real reasoning lives in coding-agent transcripts that are hard to find. blame-why closes that gap by joining blame output against the local agent-log session index, surfacing the request and reasoning behind a line in one deterministic command instead of a multi-turn transcript hunt. ## Core Features & Use Cases - Line and range explanation: Blame a single line (blame-why path:line) or a block (--range start-end, grouped by commit) joined with the best-matching agent session. - Reverse lookup and transcript access: Find which session produced a commit (blame-why commit <sha>) and read full session transcripts (blame-why session <id>) with filtering flags like --grep, --role, and --full. - Honest confidence reporting: Every match prints confidence and matched_on evidence tags (e.g. path+window+file-edit), so a medium match is treated as a lead to verify, not a citation. - Use Case: You inherit a strange line in src/server/serve.ts with a thin commit message. Run blame-why src/server/serve.ts:1202 to see the blamed commit alongside the agent's original request and reasoning that produced it. ## Quick Start Ask the agent to run blame-why on a specific file and line number, such as src/server/serve.ts:1202, to explain why that line exists.