bough

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.