ccprogress
Health Warn
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 9 GitHub stars
Code Pass
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
Live step-by-step progress bar for long Claude Code sessions, in the terminal and the Desktop app
English · 简体中文
In a long session the spinner only tells you how long Claude has been working and how many tokens it spent. ccprogress adds the missing part: the plan, which step is running now, and how many are left, updated live as each step starts and finishes.
See it
From a real Desktop app session: step 3 of 6 is running, with the checklist unfolded.
In the Desktop app the bar lives in the band above the prompt for the whole turn. View steps unfolds the checklist in place, and a finished plan can be dismissed or simply clears when you send your next prompt.
In the terminal the bar sits right above the spinner, and each progress report folds into a single dim line such as ◦ 3/5 Run the tests instead of printing the whole step list into the transcript.
Install
claude plugin marketplace add amigoer/ccprogress
claude plugin install ccprogress@ccprogress
Or, inside a session: /plugin marketplace add amigoer/ccprogress, then /plugin install ccprogress@ccprogress. Run /reload-plugins in sessions that were already open. A plugin installed at user scope loads in both the terminal and the Desktop app.
Then give Claude a task with a few steps. The bar appears as soon as Claude lays out its plan.
How it works
ccprogress is a mod: a plugin whose code runs inside Claude Code and can draw in its interface.
Where the steps come from. The bar needs someone to name the steps, so ccprogress uses the first source the session has:
- The built-in
TodoWritetool, where the build offers it. - The built-in task list (
TaskCreate/TaskUpdate), read back from the task files under~/.claude/tasks/after each update. - Its own
update_progresstool otherwise, as in the current Desktop app. A short system prompt section asks Claude to report its plan for tasks of three or more steps and to update it as steps start and finish. If a turn reaches four actions without a report, one short reminder is added for Claude to read; you never see it.
Where it draws.
- Terminal: a line right above the spinner while Claude works, and the band above the prompt while the session is idle.
- Desktop app: the band above the prompt, all the time. The Desktop app currently draws its spinner row itself and does not take a mod's drawing there.
- Everywhere else (the VS Code extension,
claude -p, the Agent SDK): nothing is drawn, and/progressprints a text summary instead.
Colors. Green is done, orange is the step under way, gray is still to come.
Timers and alerts. While Claude works, the running step shows how long it has taken. Past 5 minutes the timer turns red and a toast says the step may be stuck, which is often a permission prompt nobody has answered. When every step is done, a toast says so with the total time.
Commands
| Command | What it does |
|---|---|
/progress |
Shows the full checklist: a side pane in the terminal, the unfolded band in the Desktop app. Works while Claude is busy. |
/progress clear |
Clears the current plan. |
Settings
Change these in /config, or with /plugin configure ccprogress@ccprogress.
| Option | Default | What it does |
|---|---|---|
stuck_minutes |
5 |
Warns when the running step has taken this long. 0 turns the alert off. |
notify |
toast |
toast alerts inside the session only. system also sends a desktop notification, through osascript on macOS or notify-send on Linux. |
Good to know
- Requirements: Claude Code v2.1.287 or later, where mods are on by default. Run
claude --versionto check. Desktop app sessions under WSL do not load plugins. - Subagents cannot take over the bar; only the main conversation's plan is shown.
- Resume: each session's plan is saved and comes back with
/resume. Only the 50 most recent sessions are kept. - Cost: each update is one small tool call, a few hundred tokens per task. The system prompt section is about 100 words and is only added while the
update_progresstool is offered. The reminder adds about 25 words, at most once per turn. - Privacy: no network calls and no extra model calls. A process starts only in the
systemnotification mode, to show the notification. Plans are kept in the plugin's store under~/.claude/plugins/store/, and files are read only under~/.claude/tasks/, only when the task list tools run. - Trust: a mod runs with your permissions.
claude plugin validate plugins/ccprogresslists every event it hooks and every call it makes. - Early access: the mods API still changes between Claude Code releases.
Development
.claude-plugin/marketplace.json the marketplace this repository serves
plugins/ccprogress/
├── .claude-plugin/plugin.json plugin manifest
├── hooks/register.tsx events, the tool, the command and the drawings
├── hooks/view.tsx rows, checklist and transcript lines per surface
├── hooks/icons.ts SVG icons and the segmented bar for the Desktop app
├── hooks/plan.ts step parsing, summaries and the terminal bar
├── hooks/words.ts English and Chinese labels
├── types/index.d.ts the $.state contract
└── tests/ claude plugin test suites
Load the plugin from your checkout. It reloads each time you save:
claude --plugin-dir plugins/ccprogress
For the Desktop app, add the absolute path of plugins/ccprogress to CLAUDE_CODE_PLUGIN_DIRS in the env block of ~/.claude/settings.json, set CLAUDE_CODE_PLUGIN_DIR_WATCH to 1 there to reload on save, then start a new session. Disable an installed copy of ccprogress first so the two do not both load.
Check and test:
claude plugin validate --strict plugins/ccprogress
claude plugin test plugins/ccprogress
For editor types, run /plugin-types in a session started from the repository root; it writes the declarations to .claude/types, which tsconfig.json includes. Then:
npx -p typescript@5 tsc -p .
Disclaimer
ccprogress is a community project. It is not affiliated with or endorsed by Anthropic. "Claude" is a trademark of Anthropic, PBC.
License
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found