Claude Modsunofficial directory

Dashboards·terminal · desktop·MIT

goal-meter

A progress bar and ETA for /goal, built from Claude's own task plan.

Generic Claude Mods cover used for goal-meter, which has no screenshots in its repository

goal-meter adds a progress bar to Claude Code’s /goal, the command where you describe what done looks like and a goal check reports whether Claude has got there. The bar is built from a task plan Claude writes before it starts and updates as it works: tasks done out of the plan, elapsed time and an ETA at the goal’s own pace. The mod sends no requests of its own to Claude.

What it does

  • A band above the prompt with the goal, a headline such as 5 of 8 tasks · 69%, the bar, elapsed time, the ETA with its clock time, how much the plan has grown and how many subagents are running. Below it: the last two tasks done, what is running and who runs it, the next tasks, and the goal check’s latest “not met yet” reason. Press g for the full list.
  • A footer label such as ◎ goal 69% · ~17m, visible even when the band is hidden.
  • Weighted progress. Claude sizes each task S, M or L, and they count 1, 2 and 3. When Claude finds more work, or the goal check says the goal is not met yet, the plan grows and the bar can step back.
  • An ETA at this goal’s pace: the time since the plan per unit of finished work, times the work left. It appears once two tasks are done.
  • /goals opens a pane with this chat’s whole task list and every other chat’s goal from the last 12 hours, each with its own bar.
  • A toast when the goal is done, with how long it took. A finished goal stays on screen for 10 minutes.
  • Settings: /goals hide and /goals show toggle the band, /goals strict on refuses file edits in a /goal until the plan exists (off lifts it), and /goals clear stops the goal.

A plan Claude makes without /goal shows the same way, named after its first task.

Install

Needs Claude Code 2.1.287 or later. The author says the mods work in the terminal and in the Desktop app’s Code tab.

claude plugin marketplace add nateherkai/claude-code-mods
claude plugin install goal-meter@nateherk-mods

Open a new chat afterwards: the mod loads when a chat starts, and /reload-plugins does not reload it. Then type /goal followed by what done looks like, as usual.

It is one of four mods in Nate Herk’s nateherk-mods marketplace, with cache-keeper, collision-guard and recording-mode.

How it works

The mod registers its own task tool, mcp__goal-meter__tasks, with actions to plan, add, start, finish and drop tasks. When you run /goal, it lets the command run and attaches a hidden note asking Claude to plan with that tool before starting, size every task, and mark each one started and done. The note travels with the command, so it leaves the prompt cache alone. If Claude makes four tool calls in a goal without a plan, the mod appends one reminder to the chat. The notes and the task tool calls add a little text to the chat.

What each hook looks at:

  • prompt.submit reads your prompt only to spot a /goal that reached the session without the command event.
  • tool.call checks the name of each tool Claude calls, to count calls before the plan exists and, in strict mode, to refuse Edit, Write, MultiEdit and NotebookEdit. It reads arguments only for its own tool.
  • agent.spawn keeps a subagent’s name or description, to show who runs a task.
  • session.append watches for the goal check’s verdict. That row reaches the mod without its content, so the mod reads the last 12 lines of the chat’s log under ~/.claude/projects/, with tail or, on Windows, PowerShell’s Get-Content -Tail. It is the only process the mod starts.
  • classic.Stop only takes the log’s real path from the event and passes it on. It never keeps Claude from stopping.

The goal closes when the goal check says it is met, or when a turn ends with every task done. If Claude carries on within five minutes without a new prompt, it reopens.

Each chat saves its goal to ~/.claude/mods-data/goal-meter/<session id>.json: the title, the condition you typed (up to 2,000 characters), the project folder, the tasks with their times and the goal check’s last reason. /goals reads the other chats’ files from that folder, and at session start the mod restores the chat’s own goal if it was saved in the last 24 hours. The strict setting lives in the mod’s store. Every 10 seconds it reads Recording Mode’s flag file, ~/.claude/mods-data/recording.json; while recording-mode is on, the goal, the task titles and the goal check’s reason are masked on screen. The mod makes no network calls.

Limitations

  • The bar is only as accurate as Claude’s plan. It depends on Claude calling the tool and keeping the list current; until the plan exists, the band says it is waiting for one.
  • The ETA assumes the remaining work goes at the pace so far, measured per unit of size.
  • The goal check’s verdict comes from the chat log, in a format Claude Code does not document, so an update can break that part. The goal still closes when every task is done.
  • /goals shows up to 15 other chats.

Similar Claude Mods

The whole directory →