redemptionnn/clawd-friend/tree/main/plugin

Claude Code mod,在提示列上方顯示會即時回應 Claude 活動的迷你 Clawd 動畫角色,包含 23 個不同場景與 15 個可自訂外觀。
redemptionnn/clawd-friend/tree/main/plugin

Claude Friend 是一個 Claude Code mod,提供住在提示列上方的小型動畫角色 Clawd,會即時演出 Claude 正在做的事。它包含由工具呼叫與 shell 命令觸發的 23 個場景(寫程式、網頁搜尋、測試、提交、部署、建置、資料庫操作、除錯、設計工作、寫入記憶、子代理、規劃、瀏覽、查詢、權限提示、完成、錯誤、放鬆與打瞌睡),以及會跨工作階段保留的 15 個外觀(帽子與手持物品)。命令包含 /friend、/friend menu、/friend skins、/friend name、/friend scenes、/friend pane、/friend stage 與 /friend stats。它使用 turn.step hook 觀察串流中的模型輸出,使用 tool.call hook 確認場景,並使用 ui.render hook 繪製 SVG 動畫。需要 Claude Code 2.1.286 或更新版本;不會發出網路請求,也不使用權杖或圖片資源。
請先查看作者 README,確認 marketplace 與外掛名稱;指令可能隨儲存庫結構而變動。
claude plugin marketplace add redemptionnn/clawd-friend claude plugin install clawd-friend
A tiny Clawd who lives above your prompt in Claude Code and acts out whatever Claude is doing, live.
He taps away at a laptop while Claude codes, reads the newspaper during a web search, watches a flask bubble while your tests run, stamps a parcel on every commit, launches a rocket when you deploy, chases a bug with a net, and nods off when you go quiet.

In Claude Code, run:
/plugin marketplace add redemptionnn/clawd-friend
/plugin install clawd-friend
Then start a new session (or run /reload-plugins) and your friend shows up above the prompt.
Or from a shell:
claude plugin marketplace add redemptionnn/clawd-friend
claude plugin install clawd-friend
To update later:
claude plugin marketplace update clawd-friend
Requirements: Claude Code 2.1.286 or newer. Mods are an early-access Claude Code feature, so the API may change between releases. The full animated character is drawn in the Claude Code desktop app (and the VS Code extension); the terminal shows a compact text version.

He picks a scene from what Claude is actually doing, as it happens:
| Scene | When |
| --- | --- |
| 💭 Thinking | Claude is thinking, or reading a tool's result before its next move |
| ⌨️ Writing | Claude is writing its reply, or editing .md / .txt docs (a typewriter that faces him) |
| 💻 Coding | Editing or writing code (a laptop, lid turned toward him) |
| 📰 Web search | WebSearch, WebFetch and search or docs MCP tools (he reads the paper with a coffee) |
| 🔍 Reading | Read, Grep, Glob (a magnifying glass over the docs) |
| ⚡ Commands | Any other shell command (green hacker glyphs rain above him) |
| 🧪 Tests | npm test, pytest, vitest, jest, go test, cargo test, ... |
| 📦 Commit | git commit |
| 🚀 Deploy | git push, vercel, npm publish, npm run deploy, deploy MCP tools |
| 🧱 Build | npm run build, tsc, cargo build, docker build, make, ... |
| 🗄️ Database | psql, prisma migrate, Supabase / SQL MCP tools, .sql files and migrations |
| 🐞 Debugging | node --inspect, pdb, gdb, debugging skills |
| 🎨 Design | .css / .svg / Tailwind config edits, Figma and design MCP tools |
| 📔 Memory | Writing CLAUDE.md or Claude's memory files |
| 🐾 Subagents | Claude sends out subagents (tiny Clawds march off with their tasks) |
| 📋 Planning | Todo and task list updates |
| 🌐 Browsing | Browser automation tools |
| 👋 Asking | Claude asks you a question |
| 🪧 Needs your OK | A tool call is waiting for your permission |
| 🎉 Done | A turn finished: he jumps, confetti flies |
| 💧 Oops | A turn ended on an error |
| 😌 Chilling | Nothing going on |
| 💤 Napping | Two quiet minutes in a row |

Dress him up. A skin stays on through every scene and is remembered across sessions. When a scene brings its own hat (the hard hat while building, the beret while designing) that one wins for a moment, and he only holds an item while his hand is free.
| Hats | | Items in hand | |
| --- | --- | --- | --- |
| 👑 /friend crown | 🎩 /friend tophat | ☕ /friend coffee | 🪄 /friend wand |
| 🧙 /friend wizard | 🧢 /friend beanie | 🗡️ /friend sword | 🌸 /friend flower |
| 🤠 /friend cowboy | 🎧 /friend headphones | 🎈 /friend balloon | |
| ⚔️ /friend viking | 😇 /friend halo | | |
| 🥳 /friend party | 🎃 /friend pumpkin | | |
/friend skins shows them all in a gallery (click one to put it on), and /friend noskin takes it off.
/friend name Bob
From then on he greets you with a little speech bubble, "Bob has arrived!", whenever you call him or start a session.
Not sure what's there? /friend menu lists everything, with buttons in the desktop app.
| Command | What it does |
| --- | --- |
| /friend | Call your friend, or send him off if he's already here (remembered across sessions) |
| /friend menu | Every command, with buttons |
| /friend skins | The skin gallery; click one to wear it |
| /friend <skin> | Wear a skin, e.g. /friend crown or /friend sword |
| /friend noskin | Take the skin off |
| /friend name <name> | Give him a name (up to 16 characters) |
| /friend scenes | Every scene, with buttons to play them |
| /friend <scene> | Play any scene for a few seconds, e.g. /friend deploy or /friend build |
| /friend pane | Move him into a side pane |
| /friend stage | Put him back above the prompt |
| /friend stats | What he saw today: file edits, reads, commands, web lookups, helpers, finished turns |
Claude Friend is a Claude Code mod: a plugin whose behaviour is a TypeScript module of function hooks.
turn.step hook watches the model's response as it streams: thinking, visible text, and the start of each tool call, whose arguments it reads as they arrive, so the scene changes before the tool even runs. A tool.call hook confirms the scene while the tool runs, and a tool.check hook notices when a call needs your permission.plugin/hooks/classify.ts maps tool names, shell commands and file paths to scenes: git commit is a commit, npm test is tests, a .css edit is design, an MCP tool named execute_sql is the database.ui.render hook draws the band above the prompt. Every scene is an SVG built in code in plugin/hooks/scenes.ts, animated with CSS. There are no image files.Clone the repo and load the plugin straight from disk; saving a file hot-reloads it.
git clone https://github.com/redemptionnn/clawd-friend.git
claude --plugin-dir ./clawd-friend/plugin
In the desktop app, where you can't pass flags, add the folder to the env block of ~/.claude/settings.json:
{
"env": {
"CLAUDE_CODE_PLUGIN_DIRS": "/absolute/path/to/clawd-friend/plugin"
}
}
If you also installed it with /plugin install, disable that copy (claude plugin disable clawd-friend) so it doesn't load twice.
Check and test it against the engine:
claude plugin validate ./plugin
claude plugin test ./plugin
The tests in plugin/tests/scenes.test.ts run real tool calls through Claude Code's engine, draw the band while each call is in flight, and check that the right scene shows. plugin/tests/skins.test.ts covers skins, names and the menu cards.
.claude-plugin/marketplace.json lets /plugin find and install the plugin
plugin/
.claude-plugin/plugin.json name, version, metadata
hooks/hooks.json points at the hooks module
hooks/register.tsx the hooks: what Claude is doing, commands, drawing
hooks/classify.ts tool calls to scenes
hooks/scenes.ts the 23 scenes, drawn as SVG in code
hooks/skins.ts hats and items in hand
types/index.d.ts the plugin's state contract
tests/ claude plugin test
media/ the demo GIF and screenshots