What did that feature cost you?

bough reads the history Claude Code, Codex and Pi already keep and prices every piece of it, down to the single task. That afternoon you lost to one bug has a number on it now.

brew install nickelsec/tap/bough

Gets the latest release
Already have it? brew upgrade nickelsec/tap/bough

Mon 17 AugTue 18 AugWed 19 AugThu 20 AugFri 21 AugSat 22 AugSun 23 Aug
Hover anything

Ask it something

Pick a question and it runs against a real project. The drawing dims whatever does not match, so you keep the shape of the whole thing while you look at one part of it. In the tool these are the filter rail: search your prompts, find a file, narrow the dates, set a spend threshold. They stack, so you can ask two things at once.

Mon 17 AugTue 18 AugWed 19 AugThu 20 AugFri 21 AugSat 22 AugSun 23 Aug
Spend threshold, set to $208 of 26 tasks · $376 of $570

What you are looking at

A square is a day

Sized by how much changed. They run left to right along the spine, so the shape reads as time.

A smaller square is a task

One piece of work, recovered from pauses in the record rather than from anything you had to label.

A circle is a prompt

Something you typed. Hover it and the whole path back to its day lights up.

A ring is what it cost

Bigger ring, more spent. Work from before your agent recorded tokens gets no ring at all, rather than a small one that would read as cheap.

Where the money went

Every usage tool stops at a session, and a session is a hash that can cover weeks of unrelated work. It can tell you a number but not what the number was for.

bough already knows where one piece of work ends and the next begins, so the same money lands on things you recognise. Click a day to open it.

OutputInputCache wCache rTotalCost
211k480409k66.9M67.5M$43
Work out where a task begins58k98168k6.7M7.0M$6.51
Chase down the duplicate records84k194128k24.6M24.8M$16
Fix the layout collapsing on wide history69k188114k35.5M35.7M$21
792k3k2.5M443.6M446.8M$266
Get the colours to hold up249k638909k98.6M99.8M$65
Cut the score that could not be proved35k12658k31.7M31.8M$17
Group the tasks into sittings14k70104k3.9M4.0M$3.36
Draw the first version of the graph48k186192k16.4M16.6M$11
Work out where a task begins43k138133k20.8M21.0M$13
Chase down the duplicate records95k294182k64.3M64.6M$36
Write the format reference52k22088k62.5M62.7M$33
Set up the parser and the first fixtures75k270183k18.1M18.4M$13
Draw the first version of the graph182k688623k127.2M128.0M$74
20k781.0M19.9M21.0M$21
Add the filters3152497k22k520k$4.99
Work out where a task begins20k76541k19.9M20.5M$16
Draw the first version of the graph––––––
167k434923k56.0M57.1M$41
Tune the thresholds against git2k12545k2.8M3.4M$6.93
Work out where a task begins67k182197k15.3M15.6M$11
Chase down the duplicate records48k12895k17.6M17.8M$11
Make the notes readable49k11286k20.2M20.3M$12
274k7621.3M146.6M148.2M$93
Get the colours to hold up24k52412k10.5M11.0M$9.98
Work out where a task begins172k374689k110.3M111.2M$66
Work out where a task begins78k336187k25.8M26.1M$17
257k992706k137.8M138.7M$82
Group the tasks into sittings162k536478k97.1M97.8M$57
Fix the layout collapsing on wide history45k214148k14.2M14.4M$9.71
Fix the layout collapsing on wide history50k24280k26.4M26.6M$15
45k254306k37.0M37.4M$23
Write the format reference45k254306k37.0M37.4M$23
Everything1.8M6k7.1M907.8M916.7M$570

Living with it

Install it and run it

It asks which project you mean, reads what your agent already wrote, and opens the diagram in your browser. No account, no setup, and no network: the history is on your disk.

Three agents, old work too

Claude Code, OpenAI Codex CLI and Pi, found automatically. All three keep what they wrote, so a project you finished months ago reads as well as the one open now. Here is what is in a transcript.

Click into anything

Every prompt in your own words, the commits with their hashes and line counts, and the file you kept going back to. Following a cost drops you onto that task’s own row in the table.

Read it in the terminal

--text prints the same work as an indented list, with the commit hashes and the cost line. --json gives you the whole graph to do something else with.

Honest about where it is

Not a dashboard

No live view, no streak, no monthly bill. For a figure to set against an invoice, or a warning before you hit a limit, the tools built for that do it better.

The boundaries are a guess

Days and prompts come straight from the record. Where one task ends and the next begins is inferred from thresholds fitted to one person’s history, and yours may land elsewhere.

So is the rust

The struggle score behind it has never been checked against anyone’s memory of their own work. It is labelled as a guess wherever it appears, and the filter for it is off until you ask.

Nothing is priced on a guess

Work whose model has no published rate shows its token counts and NA where the figure would be. A model on your own machine costs nothing. Codex and Pi are newer here than Claude Code, so treat their numbers with more suspicion.