Funny spinner words plus a live tool-call counter

From the video "3 Claude Code Mods I Built in 5 Minutes (Take Them)".
| Mod | What it does |
|---|---|
spinner-quips | Replaces the spinner word with a joke ("Blaming the intern", "Googling the error"…) and counts tool calls |
safety-net | Blocks rm -rf, git push --force, git reset --hard and DROP TABLE, and shows a warning |
session-hud | A live HUD above the prompt: time, tool calls, files edited, context bar, cost, and a mood 😎 😅 🥵 |
Needs Claude Code v2.1.287 or newer (Desktop app v2.1.286+).
/plugin marketplace add ivtrade777/coding-tips-mods
/plugin install spinner-quips@coding-tips-mods
/plugin install safety-net@coding-tips-mods
/plugin install session-hud@coding-tips-mods
/reload-plugins
Install only the ones you want.
git clone https://github.com/ivtrade777/coding-tips-mods.git
claude --plugin-dir ./coding-tips-mods
Each mod is one short file: <mod>/hooks/register.ts (or .tsx). Change the jokes in spinner-quips, add your own dangerous commands to safety-net, or new stats to session-hud, then run /reload-plugins.
Mods are not sandboxed: they run with your permissions. Read the code (each mod is one short file in hooks/) and check what it does:
claude plugin validate ./session-hud
Tests: claude plugin test ./safety-net
Not affiliated with or endorsed by Anthropic. MIT licence.
hooks/register.ts 28 lines1import type { Register } from 'claude-code'
2
3const QUIPS = [
4 'Blaming the intern',
5 'Googling the error',
6 'Pretending to understand regex',
7 'Turning it off and on again',
8 'Reading the docs (finally)',
9 'Asking the rubber duck',
10]
11
12let calls = 0
13
14export const register: Register = on => {
15 // Each time Claude uses a tool: count it and redraw
16 on('tool.call', ($, e, next) => {
17 calls += 1
18 $.ui.invalidate('ui.render')
19 return next(e)
20 })
21
22 // Each time the spinner is drawn: swap the word, add the count
23 on('ui.render', { component: 'Spinner' }, ($, e, next) => {
24 const word = QUIPS[calls % QUIPS.length]!
25 return next({ ...e, props: { ...e.props, word, suffix: ` · tool calls: ${calls}…` } })
26 })
27}
28