nickdemari/ember
ember
Claude Code 插件 "ember" 会在旋转行中说明 Claude 正在做什么,在提示词上方显示轮到谁,跟踪子代理,在完成或有待处理问题时发出提示音,并增加一个动画火焰面板。
关于这个 mod
Ember 是一个基于 function-hooks 插件 API(2.1.286,早期访问)的 Claude Code 模组。它用直白的语言描述当前步骤,替换通用的旋转提示文字,并在提示词上方渲染状态带,显示 Working、2 agents working、Needs your OK 和 Your move 等状态。轮到你时,它会回显你上一条请求。子代理活动也算作工作,"your move" 和提示音会等到所有代理报告完成后才出现。持续 20s 或更久的工作完成时,它会提示一次;问题或权限提示停留 10s 时,也会提示一次;完成后五分钟还可以选择发出闲置提醒。命令:/ember(状态)、/ember mute、/ember unmute,以及 /ember pane(桌面应用中的动画火焰)。加载方式:克隆仓库并运行 claude --plugin-dir ./ember,或者在 shell 配置文件中设置 CLAUDE_CODE_PLUGIN_DIRS。许可证:MIT。
安装
请先查看作者 README 确认 marketplace 和插件名称;命令可能随仓库结构改变。
claude plugin marketplace add nickdemari/ember claude plugin install ember
原文 / 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
