- 0stars
- 0forks
- v1.0.0latest release
- MITlicense
- bash, jq and flockrequires
- 2026-10-15last push
- v1.0.0
- Linux
- macOS

A coding agent that converts forty files or runs a long test sweep says it is working and then goes quiet. cc-progress puts the answer in the status line instead: how far along it is, how long it has taken, when it will finish, and which item it is on right now. The bar keeps moving while a single command runs, because the status line computes elapsed time and ETA itself from a state file the job updates.
The figures are built to be honest rather than reassuring. Pace is measured only on work the bar saw complete, an overdue item turns the estimate into a floor, and a workload of unequal items can be weighed by its cost. Tasks and subagents are followed by hooks with no cost to the conversation, and the whole render takes about ten milliseconds.
Highlights
- Moves while the agent is silentThe status line re-reads a small state file every second, so the bar and the countdown keep going through one long command.
- An ETA that does not flatterOnly work the bar actually watched counts as pace. Work finished before it started is a baseline, and an item running late is shown late, with the time spent on it.
- Measures work, not itemsGive each item its cost and the gauge, the percentage and the ETA follow the work, while the count still reads in files.
- Tasks and agents, hands freeHooks keep a bar in step with Claude's task list and with its subagents. Nothing is sent to the model.
- Nothing to rememberA tick inside the loop, a pipe through the output, or a hook: the update is a side effect of the work.
- Ask for it in plain wordsA progress bar, an ETA, how many are left, clear the finished ones: the installed skill tells Claude what to do.
- Your terminal's coloursOnly the ANSI colour roles are used, so the bar follows the theme, and an ASCII mode covers fonts without block glyphs.
- Cannot break the jobUpdates are locked and atomic, errors never fail the command they report on, and a corrupt file degrades to one line.
How it works
-
Each bar is one JSON file, written under flock and replaced atomically, so parallel workers and a polling reader never see a torn file.
-
Subagents share the parent's id, and each session shows only its own bars.
On request
-
The skill reads the bars, checks the source of truth, corrects them and reports in one line.
-
Finished bars also leave on their own after a minute.
Install
pipx install cc-progress # or: uv tool install cc-progress
cc-progress install # status line block, hooks, skill, rule; backs up first
cc-progress doctor # every line should read ok