claudeers.
// Claude Plugins

ccprogress

Live step-by-step progress bar for long Claude Code sessions, in the terminal and the Desktop app

// Claude Plugins[ cli ][ api ][ desktop ][ claude ]#claude#claude-code#claude-code-plugin#cli#developer-tools#progress-bar#plugins◷ MIT$open-sourceupdated 3 days ago

Install with your AI

Paste into Claude Code, Cursor, or any agent — it reads the repo and wires the tool into your project.

Install and set up ccprogress (claude-plugin project) into my current project.
Found on https://claudeers.com/ccprogress
Repo: https://github.com/amigoer/ccprogress
Homepage/docs: —
Detected install method: claude-plugin → /plugin install ccprogress@amigoer/ccprogress
Category: plugins. Platforms: cli, api, desktop.
Read the repo's README for exact setup and env vars, then install it and wire it into my project.

Claudeers Health Verdict:
unknown; community-verified: false. Confirm the source before running anything.
// or install directly (claude-plugin)

⚠ Unverified / not recently updated — review before pasting a run-this config.

/plugin marketplace add amigoer/ccprogress
/plugin install ccprogress@amigoer/ccprogress
// or clone
git clone https://github.com/amigoer/ccprogress

// compatibility

Platformscli, api, desktop
Operating systems—
AI compatibilityclaude
LicenseMIT
Pricingopen-source
LanguageTypeScript

Get your FREE $2.50 API credits to access TickAtlas financial data ↗

ccprogress: see which step a long Claude Code session is on, with a live progress bar beside the spinner

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

A real Desktop app session: the band above the prompt unfolded into a six-step checklist, two steps done in green and the third running in orange

From a real Desktop app session: step 3 of 6 is running, with the checklist unfolded.

In the Desktop app the band above the prompt shows the current step, a segmented bar and the step count while working, unfolds into a checklist, and turns green when every step is done

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.

A real terminal session: a progress report folded into the dim line 4/6 Write unit tests, and above the spinner a bar with three steps done in green, the fourth running in orange with a two-second timer

From a real terminal session: step 4 of 6 has been running for 2 seconds, and its report is folded into one line.

In the terminal a continuous progress bar sits right above the spinner, and each progress report folds into one dim line in the transcript

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:

  1. The built-in TodoWrite tool, where the build offers it.
  2. The built-in task list (TaskCreate / TaskUpdate), read back from the task files under ~/.claude/tasks/ after each update. Current builds turn these tools on with CLAUDE_CODE_ENABLE_TODO_TOOLS=1; ccprogress has been checked against them in a real session.
  3. Its own update_progress tool 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 /progress prints 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: in seconds in the terminal, and in whole minutes from the first minute on in the Desktop app, which redraws the band only when something on it changes. 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

CommandWhat it does
/progressShows the full checklist: a side pane in the terminal, the unfolded band in the Desktop app. Works while Claude is busy.
/progress allLists the plans of every session on this machine from the last 24 hours: the project, the current step, and when it last moved.
/progress clearClears the current plan.

Settings

Change these in /config, or with /plugin configure ccprogress@ccprogress.

OptionDefaultWhat it does
stuck_minutes5Warns when the running step has taken this long. 0 turns the alert off.
notifytoasttoast alerts inside the session only. system also sends a desktop notification, through osascript on macOS or notify-send on Linux.
fold_reportstrueShows each progress report as one dim line in the terminal transcript. Turn it off to see the full step list.
languageautoLanguage of the bar's labels: en, zh, or auto to follow the language of the steps.

Good to know

  • Requirements: Claude Code v2.1.287 or later, where mods are on by default. Run claude --version to 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_progress tool 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 system notification 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/ccprogress lists every event it hooks and every call it makes.
  • Early access: the mods API still changes between Claude Code releases.

Reading plans from other tools

Every session that runs ccprogress saves its plan in the same store, which is how /progress all sees them all. Other tools, such as a script listing your sessions, can read it from ~/.claude/plugins/store/ccprogress_ccprogress-*.json. The file is one JSON object; each plan:<session id> key holds:

{
  "goal": "Ledger CLI",
  "steps": [{ "title": "Run the tests", "status": "in_progress" }],
  "source": "tool",
  "updatedAt": 1790967588567,
  "cwd": "/Users/me/work/ledger"
}

status is pending, in_progress or completed; source says whether the steps came from the plugin's tool (tool), TodoWrite (todo) or the task list (tasks); updatedAt is in epoch milliseconds. Read the file, never write it: Claude Code owns it.

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 .

Releases. A pull request adds its entry under Unreleased in CHANGELOG.md and leaves the version alone. A release moves those entries under a new version and bumps version in plugins/ccprogress/.claude-plugin/plugin.json, which is what makes installed copies update.

Disclaimer

ccprogress is a community project. It is not affiliated with or endorsed by Anthropic. "Claude" is a trademark of Anthropic, PBC.

License

MIT

// faq

What is ccprogress?

Live step-by-step progress bar for long Claude Code sessions, in the terminal and the Desktop app. It is open-source on GitHub.

Is ccprogress free to use?

ccprogress is open-source under the MIT license, so it is free to use.

What category does ccprogress belong to?

ccprogress is listed under plugins in the Claudeers registry of Claude-compatible tools.

2 views
★ 14 stars
unclaimed
updated 3 days ago

// embed badge

ccprogress on Claudeers
[![Claudeers](https://claudeers.com/api/badge/ccprogress.svg)](https://claudeers.com/ccprogress)

// retro hit counter

ccprogress hit counter
[![Hits](https://claudeers.com/api/counter/ccprogress.svg)](https://claudeers.com/ccprogress)

// reviews

// guestbook

0/500

// related in Claude Plugins

🔓

A single CLAUDE.md file to improve Claude Code behavior, derived from Andrej Karpathy's observations on LLM coding pitfalls.

// pluginsmultica-ai/★ 215,548[ claude ]
🔓

Claude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explainin…

// pluginsanthropics/⟨Python⟩★ 147,969[ claude ]
🔓

"CLI-Anything: Making ALL Software Agent-Native" -- CLI-Hub: https://clianything.cc/

// pluginsHKUDS/⟨Python⟩★ 50,756◷ Apache-2.0[ claude ]
🔓

financial-services — a Claude ecosystem project on GitHub.

// pluginsanthropics/⟨Python⟩★ 38,867◷ Apache-2.0[ claude ]
→ see how ccprogress connects across the ecosystem