Butler
Silent session logger for Claude Code
What it is
Butler runs silently in the background of a Claude Code session and logs every meaningful design decision to a .butler-log.md file as they happen. What was chosen, what was rejected, what constraint shaped the implementation.
The problem it solves: Claude Code sessions are fast. Fast sessions produce decisions that disappear the moment the session ends. Git shows you what changed. Butler shows you why. That distinction matters when you're writing a case study six weeks later and can't remember why anything works the way it does.
How it works
Decision logging
Every meaningful choice is captured with context as it happens: pattern selected, approach rejected, constraint that shaped the code.
Incremental writes
Butler writes to .butler-log.md as decisions occur, not at the end. If the session ends abruptly, everything up to that point is already saved.
Rejection capture
The rejected approach is logged alongside the chosen one. That's often the most useful part of any case study: what didn't work and why.
Three record sizes
Compact (one line), Standard (decision + reasoning), or Verbose (full context + alternatives). Configure in CLAUDE.md or set per session.
Links