task-progress-mod v0.2: your agent's progress bar now summarizes tool output
task-progress-mod is a tiny Claude Code Mod (zero dependencies, pure JS)
that pins a live progress bar above the prompt while the agent works through
a TodoWrite list. v0.1 showed you where the agent is. v0.2 shows you
what just happened.
The problem
Long tool runs dump tens of thousands of characters into the transcript —
test logs that are 95% PASSED lines, diffs dominated by lockfile churn,
JSON blobs with 300 items. The information you actually want ("did it pass?
what failed? what changed?") is buried.
What v0.2 does
It hooks tool.result, compresses the output into one line, and draws it
under the progress bar — "progress + compressed" in one glance:
██████░░░░ 60% · step 3/5 · Writing tests…
⏷ Bash · 214 passed, 2 failed — tests/test_thing.py::test_edge_a FAILED
The summarizer is heuristic and fail-open:
-
Test/build logs → failure detail + pass counts
(
214 passed, 2 failed — <first failure>;41 passedwhen all green) -
JSON output → skeleton, not payload
(
{status: "ok", results: [...300 items], total: 300}) -
Diffs → per-file
(+a/−d)with lockfile noise collapsed (diff: 1 file — src/index.js (+2/−1) · 1 lockfile hidden) - Short outputs → shown as-is on one line
The line is labeled with the tool name, and it always reflects the most
recent tool output — which also makes it a cheap deviation detector: if the
agent drifts off-plan, the summary line shows it before the next todo
update.
Why a Mod, not a compression tool
Context-compression tools shrink tool output for the model to save tokens,
invisibly in the pipeline. This compresses it for the human: the summary
is drawn on screen next to the progress bar, so you get the signal without
reading the log. Same compression idea, opposite audience.
Try it
Requires Claude Code v2.1.287+ (Mods support):
/plugin install ./task-progress-mod
63 smoke tests, mocked engine, zero dependencies: node tests/test_mod.js.
Repo: https://github.com/hahahahahahahahah6/task-progress-mod
License: MIT
Top comments (0)