Getting started
bough reads the history your coding agent already keeps and draws the shape of the work you did with it. It runs on your machine, reads only, and sends nothing anywhere.
Claude Code is the only agent it reads so far.
Install
With Go 1.25 or newer:
go install github.com/nickelsec/bough/cmd/bough@latest
Or build it from source:
git clone https://github.com/nickelsec/bough
cd bough
go build ./cmd/bough
There is no runtime to install and nothing to configure. The binary is about nine megabytes and everything it needs is inside it, including the fonts and the artwork the page uses.
Use it
Run it with no arguments and pick a project from the list:
bough
Or name one directly:
bough my-project
Either way it reads the history, works out the shape, and opens a page in your
browser showing it. The page is served from 127.0.0.1 on a port nobody else
can reach, and it closes when you stop the command.
Reading the diagram
A square on the spine is a day you worked. A smaller square hanging off it is one task. A circle is a single prompt.
Hover anything and the path back to its day lights up, with a note saying what it was. Click a node and the full record opens beside the drawing, scrolled to the exact prompt you clicked, in your own words and untrimmed.
Work the tool scored as hard is drawn in rust rather than green. That score is a guess and is labelled as one wherever it appears.
In the terminal instead
bough my-project --text
The same work as an indented list. This is what a pipe or a redirect gets
automatically, so bough my-project > notes.txt never tries to open a browser
or sit waiting on a port.
For the underlying data:
bough my-project --json
The full graph, which is what the page draws from. Its shape is documented in the transcript format.
Every option
| flag | what it does |
|---|---|
--text |
write to the terminal instead of opening a browser |
--json |
write the graph as JSON |
--list |
list the projects with history and stop |
-v |
include every prompt in the text output |
-o FILE |
write to a file instead of standard output |
--root DIR |
read history from here instead of the usual place |
If something looks wrong
The thresholds that decide where one task ends and the next begins were fitted to one person's history. If your boundaries fall in places you disagree with, tuning explains what each number does and what moving it costs.
If a project is missing from the list, bough looks under ~/.claude/projects.
Point --root somewhere else if your history lives elsewhere.