Decision timeline

A project's code shows what was built. The decision timeline shows how it was steered: every point where a person set a goal, changed direction, interrupted, approved or denied an action, or answered a question, across all of the project's Claude sessions.

Opening it

Run Show Decisions from the command palette (alias dg). It opens a graph panel in its Decisions view, for the focused panel's project (the nearest enclosing git repository). Any graph panel can switch between Sessions and Decisions at its top right.

What counts as a decision

Decisions are extracted from the transcripts with a small set of rules:

KindRule
GoalThe first real prompt of a session.
InterruptClaude Code's "[Request interrupted" marker.
RedirectThe prompt after an interrupt, or a prompt that opens with words such as "actually", "instead" or "no,".
AnswerA prompt that follows a question from the assistant, or a reply to an AskUserQuestion tool call.
Plan approvalAccepting or rejecting a plan (ExitPlanMode).
DenyA rejected tool call.
Follow-upAny other prompt.

A redirect or interrupt supersedes the decision before it, and the timeline shows that link. Each decision also lists the files edited and the commits made between it and the next decision in the same session. Resumed sessions repeat their history in a new transcript, so duplicates are removed and the original session's copy is kept.

Layout and keys

Time runs left to right, with one lane per session. Long idle gaps are compressed so a project that ran for a week still fits, but order in time is always kept. Key decisions keep a label; the rest show one on hover or focus.

KeyAction
j / kNext or previous decision in time
h / lNearest decision in the lane above or below
GLatest decision
oOpen the conversation around the decision as a note
rResume the session from there

Where the data comes from

If smaltid is running on the machine and answers within half a second, the timeline reads decisions from it. Otherwise Smalti reads the transcripts itself. The panel shows which source it used. Only the lines that can contain a decision are decoded, so long transcripts stay fast.