nickdemari/ember
ember
Claude Code plugin "ember" that narrates what Claude is doing in the spinner line, shows whose move it is above the prompt, tracks subagents, chimes on completion or pending questions, and adds an animated flame pane.
About this mod
Ember is a Claude Code mod built on the function-hooks plugin API (2.1.286, early access). It replaces generic spinner text with plain-language descriptions of the current step, and renders a status band above the prompt showing states such as Working, 2 agents working, Needs your OK, and Your move. When it is your move, it echoes your last request. Subagent activity is counted as work, and "your move" plus the chime wait until all agents report. It chimes once when work lasting 20s or more finishes and once when a question or permission prompt sits for 10s, with an optional idle nudge five minutes after completion. Commands: /ember (status), /ember mute, /ember unmute, and /ember pane (animated flame in the desktop app). Loading: git clone the repo and run claude --plugin-dir ./ember, or set CLAUDE_CODE_PLUGIN_DIRS in your shell profile. License: MIT.
Installation
Check the author's README for the marketplace and plugin name first. Commands may change as the repository evolves.
claude plugin marketplace add nickdemari/ember claude plugin install ember
Original text / README
Ember
A Claude Code mod that follows what you and Claude are doing. Built for an ADD brain: nothing to set up and nothing to manage. It says what Claude is doing right now, whose move it is, and calls you back when it's yours.
What it does
Ember lives in the chat itself. In the terminal:
✳ Reading login.ts… (4s · ↓ 146 tokens)
● Working 3 steps
and once Claude is done:
◆ Your move 2m You asked: fix the flaky login test
- The spinner line says what Claude is doing, in plain words, where it would say "Pontificating".
- The band above the prompt says whose move it is:
● Working,● 2 agents working,▲ Needs your OK: Bash,◆ Your move. When it's your move it also shows what you last asked, for when you come back to it. Nothing on it moves or counts seconds. - Subagents count as work. While agents run, the band says so and the spinner line quotes their latest step. "Your move" and the chime wait until the last one has reported.
- Chimes. One when work of 20 seconds or more finishes, one when a question or permission prompt has sat for 10 seconds.
- Idle nudge. Five minutes after Claude finishes with no reply from you: one chime and one line in the transcript, once. The model never reads that line.
The desktop app gets the same band and transcript line; there the band also says the step, since the spinner row already does its own narrating.
Commands, all optional:
/embersays it's following and whether sound is on./ember muteand/ember unmuteswitch the chimes. The setting is kept between sessions./ember paneopens a pane. In the desktop app it shows an animated flame that sleeps until you prompt, wakes while Claude works, bounces when Claude is blocked on you, and grows through a long stretch of work.
Loading it
git clone https://github.com/nickdemari/ember.git
claude --plugin-dir ./ember
To load it in every terminal session, name the folder in your shell profile:
export CLAUDE_CODE_PLUGIN_DIRS="$HOME/path/to/ember"
In the desktop app's Code tab there is no flag to pass. Ask Claude to load its plugin-authoring skill and copy this folder into the session's mods folder, then pick Enable for this session when asked.
Ember is written against the function-hooks plugin API of Claude Code 2.1.286. That API is early access: it can change between releases, and whether hooks modules load at all depends on your version and account.
Checking a change
npx -p typescript tsc -p .
claude plugin validate .
claude plugin test .
tsc needs .claude-plugin/types/, which the engine writes the first time it loads the mod.
Layout
hooks/register.tsx: every hook, the band and the pane.hooks/creature.ts: the flame as one SMIL-animated SVG per mood, and the caption beside it.hooks/narrate.ts: tool calls in plain words.types/index.d.ts: the state contract.fx/: the chime.
License
MIT
