← back

Butler

Silent session logger for Claude Code

Claude CodeOpen SourceDeveloper Tool

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.

A portfolio should not be a scaffold for work. The work starts from the portfolio.

Overheard somewherea thought while you wait