Dancing Clawd — Development skill for Claude Code
Claude Code hook + terminal renderer: your sessions dance in the terminal.
How to install Dancing Clawd
This entry records only its repository, not the path inside it, so there is no
exact command to give. Open almightychang/dancing-clawd and copy the folder into
~/.claude/skills/, or the file into ~/.claude/agents/.
What Dancing Clawd does
Claude Code hook + terminal renderer: your sessions dance in the terminal.
Alternatives in Development
- Hookify — Rule-based hook system for Claude Code 14k ★
- Claude Code Prompt Improver — Intelligent prompt improver hook for Claude Code 1.3k ★
- /install-hook - Install Generated Hook To Settings — Install a generated hook to Claude Code settings (user-level or project-level) 618 ★
README
dancing-clawd

A tiny toy that turns Claude Code hook events into dancing mascots in your terminal. Each session spawns one Claude that random-walks the screen, tinted by its current mood (idle / working / tool running / error / needs-you / done). Subagents spawn their own dancers, and speech bubbles float above the most recently active session.
Requirements
- Python 3 (standard library only — no pip install needed)
- Claude Code with a
~/.claude/settings.json - A terminal that supports 256-color ANSI and half-block glyphs (
▀,▄)
Install
git clone https://github.com/almightychang/dancing-clawd.git
cd dancing-clawd
./install.sh
The installer:
- Copies
hook.py,dance.py, andmascot_frames.pyinto~/.claude/dancing-claude/. - Backs up
~/.claude/settings.jsonassettings.json.bak.before any change. - Wires six Claude Code hooks (
UserPromptSubmit,PreToolUse,PostToolUse,Notification,Stop,SubagentStop) to runhook.py. Existing hook entries from other tools are preserved.
Run
Open a spare terminal and start the renderer:
python3 ~/.claude/dancing-claude/dance.py
Then use Claude Code as usual in another terminal. Mascots appear and react as hook events fire. Stop with `Ctrl-C` — the terminal state is restored on exit.
Uninstall
./install.sh --uninstall
Removes only the dancing-clawd hook entries from `settings.json` (other hooks are untouched) and creates a backup first. The installed files under `~/.claude/dancing-claude/` are left in place — delete them manually if you want them gone:
rm -rf ~/.claude/dancing-claude
How it works
hook.py— invoked by Claude Code on every hook event. Reads the event JSON from stdin, updates a per-session entry inside~/.claude/dancing-claude/state.json, and exits. Multiple concurrent sessions are serialized viaflockonstate.lock.dance.py— a standalone rende
Related Skills
Clawd Conduit
Full-lifecycle wiring between Claude Code and the Clawd on Desk pet — all 15 hook events, with permission prom
Tkzmux
Native macOS session manager for Claude Code: one window, a terminal per session, status from Claude's own hoo
Universal Pattern Space
Pattern Space: Where Minds Dance Together
Post Compact Reminder
Claude Code hook that detects context compaction and injects a reminder to re-read AGENTS.md, preventing post-
Cc For Codex
Claude Code workflows inside OpenAI Codex: guarded reviews, isolated delegation, sessions, and an opt-in revie
Mulmoterminal
Run multiple Claude Code and Codex sessions in parallel — a browser terminal grid that shows which agent needs
Related Agents
Terminal
Terminal/PTY domain - multiplexed terminal sessions with xterm.js frontend and Rust PTY backend. Use proactive
App Tester
Builds and exercises Heron end-to-end on this machine — starts the dev app, starts and stops real claude CLI s
Claude Code Hook Agent
Plays agent-specific sounds for the 6 hooks that actually fire in agent sessions