Read history with tovio log
The default topology graph, and every flag that narrows or reshapes it.
Written By Dustin
Last updated 33 minutes ago
tovio logPrints history as a topology graph by default — the shape is shown without asking for it.
Narrowing what is walked
tovio log <path> # only changes touching this file or directorytovio log --entity agent # or: humantovio log --task-id <id>tovio log --limit 20tovio log --first-parent # only the first-parent lineBy default a filtered view reaches through a merge into the lanes it integrated, so a landed line is credited to the change that wrote it rather than to the land that carried it across. --first-parent restores the lane-summary reading, in which the merge stands in for the lane.
Choosing the rendering
tovio log --graph # explicit; already the defaulttovio log --no-graph # the plain flat listtovio log --oneline # node + short change id + messagetovio log --all # seed from every lane tip, not just HEADtovio log --no-pager # do not pipe through $PAGER / less--no-graph is a rendering choice only — it does not change which commits are walked. --graph and --all cannot be combined with the subsetting filters (<path>, --entity, --task-id, --why, -S, -G); clap rejects the combination rather than silently ignoring one.
Dates
tovio log --date relative # default; "3 minutes ago", absolute past a weektovio log --date absolute # e.g. 2026-07-07 11:42:03 -04:00--date only affects the human rendering. The --json and CSV paths always carry the raw epoch.
Formatting
tovio log --format humantovio log --format jsontovio log --format csvtovio log --format 'template:{change} {author} {message}'The template columns available on log are exactly change, commit, author, timestamp and message. An unknown {name} expands to nothing; {{ and }} are literal braces. CSV emits those same columns as a header row.
A global --json always wins over --format — and it wins before the value is even parsed, so --json --format bogus quietly emits JSON rather than complaining. Without --json, an unrecognised --format value is TVO-CLI-016 (exit 2). Do not count on a typo in --format being caught when you are also passing --json.
The filters unique to TOVIO
tovio log --why # the attested rationale for each changetovio log --entity agent # only work done by agentstovio log --session <chg> # one change's run recordtovio log --descendants <chg> # what was built on top of a changeBoth --why and --entity have their own articles — they are the reason history in TOVIO answers questions Git history cannot.