✳ClaudeModsClaude Code 模组目录
☰
● 0 人在线 · 浏览 0 次
+ 提交作品
← 返回作品集
GitHub 仓库 · 用量与成本

clawd-spinner

clawd-spinner:当 Claude 工作时,Clawd 会在上方表演 spinner 的词语:Sautéing 时烹饪,Vibing 时跳舞,pacin

ssaiharsha03@saiharsha03
已翻译

关于这个 mod

clawd-spinner

一个 Claude Code 模组:当 Claude 工作时,Clawd 会在 spinner 行上方表演 spinner 词语。

它不会使用你的任何用量。 每个场景都从代码本地绘制:没有模型调用,没有 token, 没有网络。你的用量用在重要的事情上。

  • Claude Code 的 189 个 spinner 词语每一个都有自己的场景:Baking 把面包滑进烤箱, Beaming 被 UFO 拉上去,Gitifying 画提交图,Honking 按喇叭。
  • 后来 Claude Code 添加的词语会回退到 11 个通用动作之一(烹饪、思考、跳舞、建造……)。
  • Clawd 谈论他在做什么,在他头旁边的对话气泡中,气泡跟随他在场景中移动并逐字打出。他说话像《Project Hail Mary》中的 Rocky:问题以“,问题?”结尾,一个词说三次表示很多(“Hot hot hot。”),小词会被省略。
  • 每个词有十行自己的台词,总共 1,890 行,没有两个词共享一行。Baking: “Oven very hot. Clawd wait.” Gitifying:“Merge conflict, question? Ugh.” 他每 10 秒 移动到下一行,每轮从不同的地方开始。他从未见过的词会围绕它构建二十行 (“Big word. Small Clawd. Defenestrating!”)。
  • 宁愿他安静?/clawd-talk 关闭他的对话气泡(并再次打开);/clawd-talk off 或 /clawd-talk on 设置它。选择会跨会话记住。

一个词如何选择它的场景

Claude Code 每轮随机选择一个 spinner 词。hooks/frame.ts 在 hooks/scenes/ 中查找这个词(每个词一个场景);未知词转到 hooks/acts.ts 中的 actFor(),它 匹配词干列表(saut|whisk|brew… → 烹饪,……)。

他的台词在 hooks/lines.ts(按词键控);hooks/rocky.ts 选择一个并为未见过的词保留 二十个;hooks/frame.ts 中的 bubble() 在 clawd() 上次放置他的地方绘制它。

安装

/plugin marketplace add https://github.com/saiharsha03/clawd-spinner.git
/plugin install clawd-spinner@clawd-spinner

然后 /reload-plugins(或重启 Claude Code)。HTTPS 链接对 GitHub 无论有没有 SSH 密钥都有效; 短形式 saiharsha03/clawd-spinner 可能会先尝试 SSH。或者从克隆: claude --plugin-dir ./clawd-spinner。

更新:/plugin marketplace update clawd-spinner,然后 /plugin update clawd-spinner@clawd-spinner。

需要 Claude Code 2.1.287 或更新版本(从那时起模组默认开启)。仅终端,窗口至少 54 列宽

安装

请先查看作者 README 确认 marketplace 和插件名称;命令可能随仓库结构改变。

claude plugin marketplace add saiharsha03/clawd-spinner
claude plugin install clawd-spinner
原文 / README

clawd-spinner

A Claude Code mod: while Claude works, Clawd acts out the spinner word above the spinner line.

It won't use any of your usage. Every scene is drawn locally from code: no model calls, no tokens, no network. Your usage goes to the things that matter.

  • Every one of Claude Code's 189 spinner words has its own scene: Baking slides bread into an oven, Beaming gets pulled up by a UFO, Gitifying draws a commit graph, Honking honks.
  • A word a later Claude Code adds falls back to one of 11 general acts (cook, think, dance, build, …).
  • Clawd talks about what he's doing, in a speech bubble beside his head that follows him around the scene and types itself out. He talks like Rocky from Project Hail Mary: a question ends in ", question?", a word said three times means a lot ("Hot hot hot."), and small words get dropped.
  • Every word has ten lines of its own, 1,890 in all, and no two words share a line. Baking: "Oven very hot. Clawd wait." Gitifying: "Merge conflict, question? Ugh." He moves on to the next line every 10 seconds, starting somewhere different each turn. A word he has never seen gets twenty lines built around it ("Big word. Small Clawd. Defenestrating!").
  • Rather have him quiet? /clawd-talk turns his speech bubble off (and on again); /clawd-talk off or /clawd-talk on sets it. The choice is remembered across sessions.

How a word picks its scene

Claude Code picks a random spinner word each turn. hooks/frame.ts looks the word up in hooks/scenes/ (one scene per word); an unknown word goes to actFor() in hooks/acts.ts, which matches stem lists (saut|whisk|brew… → cook, …).

His lines are in hooks/lines.ts (keyed by the word); hooks/rocky.ts picks one and holds the twenty for unseen words; bubble() in hooks/frame.ts draws it where clawd() last put him.

Install

/plugin marketplace add https://github.com/saiharsha03/clawd-spinner.git
/plugin install clawd-spinner@clawd-spinner

Then /reload-plugins (or restart Claude Code). The HTTPS link works with or without SSH keys for GitHub; the short form saiharsha03/clawd-spinner may try SSH first. Or from a clone: claude --plugin-dir ./clawd-spinner.

To update: /plugin marketplace update clawd-spinner, then /plugin update clawd-spinner@clawd-spinner.

Needs Claude Code 2.1.287 or newer (mods are on by default from there). Terminal only, in a window at least 54 columns wide; narrower, the stock spinner shows. On Windows, a "Filename too long" error while adding the marketplace goes away after git config --global core.longpaths true.

What the hooks do

hooks/register.tsx hooks five events and only reads them; it never changes what they carry:

  • session.start: in an interactive session, reads whether his speech is on, registers /clawd-talk, and starts a timer that repaints the animation about 12 times a second.
  • command.run for /clawd-talk: turns his speech bubble off or on and remembers the choice.
  • turn.start: notes when the turn began, so the scene's clock starts at 0 (a subagent's turn doesn't restart it).
  • turn.complete: stops the animation when the main turn ends.
  • ui.render on the Spinner component: draws Clawd, and his speech bubble, above the spinner line. Below 54 columns, or outside the terminal, it hands the spinner back to Claude Code unchanged.

Privacy: what data it sends

None. The mod reads only the spinner word and the turn's elapsed time that Claude Code hands it, and draws in the terminal. Every line Clawd says is written into the mod; none is generated. It makes no network requests, no model calls, reads and writes no files, and stores one thing: whether you turned his speech off (talk, in Claude Code's own plugin store). There is no remote server, so there is no privacy policy to link.

Develop

claude plugin validate .
claude plugin test .
npx tsx scripts/preview.ts preview.png Baking Beaming   # PNG contact sheet

/plugin-types .claude-plugin/types regenerates the editor typings (git-ignored).

Credits

Spinner word list: shanraisshan/claude-code-best-practice (reports/claude-spinner-verbs-and-tips.md). Clawd is Anthropic's mascot; this is an unofficial fan mod.

MIT licensed.

查看原始来源 ↗

更多类似作品