StarCraft and Warcraft voice lines that play whenever Claude Code finishes work, asks for permission, or goes idle. 124 iconic lines from StarCraft Terran and Protoss units alongside Warcraft Human and Orc peons turn your coding sessions into a command center.
Uses Claude Code hooks to trigger sounds on three events:
- Stop — Claude finishes a task
- Notification (permission_prompt) — Claude needs your approval
- Notification (idle_prompt) — Claude is waiting for input
git clone https://github.com/danavramescu/claude-code-taunts.git
cd claude-code-taunts
./install.shThat's it. Start a Claude Code session and you'll hear voice lines.
The installer:
- Copies 124 sound files to
~/.claude/sounds/ - Installs
play-sound.shandtoggle-sounds.shto~/.claude/ - Merges hook entries into
~/.claude/settings.json(backs up existing file first) - Plays a test sound to confirm everything works
Your existing Claude Code settings are always preserved.
- Claude Code installed (
~/.claude/must exist) python3(for safe JSON merging during install)- macOS: No extra dependencies — uses built-in
afplay - Linux: One of these audio players:
paplay(PulseAudio — most common)mpvffplay(comes with FFmpeg)aplay(ALSA)
cd claude-code-taunts
git pull
./install.shThe installer is idempotent — it won't duplicate hooks or overwrite your toggle state. It will update the scripts and copy any new sound files.
cd claude-code-taunts
./uninstall.shThe uninstaller only removes what this repo installed:
- Deletes the repo's sound files from
~/.claude/sounds/(your custom sounds are kept) - Removes
play-sound.sh,toggle-sounds.sh, andsounds-enabled - Removes only the
play-sound.shhook entries fromsettings.json(all other settings preserved) - Cleans up the lock file at
/tmp/claude-sound-lock
# Toggle
~/.claude/toggle-sounds.sh
# Explicit
~/.claude/toggle-sounds.sh off
~/.claude/toggle-sounds.sh onDrop any .mp3, .wav, .aiff, or .m4a file into ~/.claude/sounds/ and it will be included in the random rotation. No restart needed.
Claude Code hook event
→ ~/.claude/play-sound.sh
→ checks toggle (sounds-enabled)
→ checks lock file (5s cooldown to prevent double sounds)
→ picks random file from ~/.claude/sounds/
→ plays in background (non-blocking)
The install script merges hook configuration into ~/.claude/settings.json using Python's json module, so your existing settings are always preserved.
124 voice lines from StarCraft and Warcraft:
about-time |
absolutely |
acknowledged-hq |
add-on-complete |
affirmative |
affirmative-sir |
ah-thats-the-stuff |
ah-yeah |
all-crews-reporting |
all-right |
alright-bring-it-on |
alright-then |
anytime-you-re-ready |
aye-matey |
call-the-shot |
can-i-take-your-order |
channel-open |
checklist-completed-sob |
checklist-protocol-initiated |
come-again |
command-me |
commander |
commencing |
commlink-online |
confirm |
coordinates-received |
damn-i-m-taking-orders-from-a-pup |
delighted-to-sir |
destination |
do-you-mind |
engage |
excellent |
finally |
fire-it-up |
give-me-something-to-shoot |
go-ahead-commander |
go-ahead-hq |
go-ahead-taccom |
go-go-go |
good-day-commander |
greetings-command |
hang-on-we-re-in-for-some-chop |
hello |
hey-there |
howdy |
i-copy-that |
i-dig |
i-do-have-work-to-do |
i-gotcha |
i-m-a-busy-man |
i-m-goin |
i-m-gone |
i-m-here |
i-m-listen |
i-m-ready |
i-m-waiting-on-you |
i-need-orders |
i-read-you |
i-read-you-sir |
i-ve-got-the-brain-uh-uh |
in-the-pipe-five-by-five |
jacked-up-and-good-to-go |
let-s-go |
let-s-move |
let-s-roll |
lieutenant-kerrigan-reporting |
make-it-happen |
master |
move-it |
move-out |
my-lord |
naturally |
need-a-light |
no-problem |
no-sweat |
nuclear-launch-detected |
oh-is-that-it |
oh-my-god-he-s-whacked |
oh-yeah |
order-sir |
orders-captain-scv |
orders-received |
outstanding |
proceeding |
ready-to-roll-out |
receiving-headquarters |
receiving-transmission |
reporting-for-duty |
research-complete |
right-on |
rock-n-roll |
roger-that |
scv-good-to-go-sir |
set-the-course |
sire |
slamin |
something-on-your-mind |
sounds-fun |
standing-by |
step-aside-junior |
sure-thing |
systems-functional |
take-it-slow |
this-is-jimmy |
this-way-no-that-way |
time-is-of-the-essence |
transmit-cord |
upgrade-complete |
vector-locked-in |
very-well |
we-re-not-brainless-anymore |
work-complete |
yeah |
yeah-i-m-going |
yep |
yes-my-lord |
yes-sir |
you-call-down-the-thunder |
you-got-it |
you-got-my-attention |
you-keep-pushing-this-boy |
you-the-boss |
you-want-a-piece-of-me-boy |
your-command-master |
No sound plays
- Check sounds are enabled:
cat ~/.claude/sounds-enabled(should sayon) - Verify files exist:
ls ~/.claude/sounds/ - Test manually:
~/.claude/play-sound.sh - On Linux, verify an audio player is installed:
which paplay mpv ffplay aplay
Double sounds / overlapping
- The lock file at
/tmp/claude-sound-lockprevents sounds within 5 seconds of each other - If stuck, remove it:
rm /tmp/claude-sound-lock
Hooks not triggering
- Check
~/.claude/settings.jsonhas the hook entries (look forplay-sound.shunderhooks) - Re-run
./install.shto re-merge hooks
Install script fails on settings.json
- Ensure
python3is available - Check if
~/.claude/settings.jsonis valid JSON:python3 -m json.tool ~/.claude/settings.json - A backup is saved as
~/.claude/settings.json.backupduring install
The audio files in this repository are voice lines from StarCraft and Warcraft, which are the intellectual property of Blizzard Entertainment. They are included for personal, non-commercial use only. This project is not affiliated with or endorsed by Blizzard Entertainment. The MIT license applies only to the code (scripts and configuration), not the audio files.