logoalt Hacker News

Warcraft III Peon Voice Notifications for Claude Code

915 pointsby doppptoday at 5:18 AM282 commentsview on HN

Comments

wiseowisetoday at 6:49 AM

Finally someone doing actual good work with LLMs instead of “Claude, shit me out another useless SaaS”.

Just as was foretold: an actual differentiator is creativity, not coding ability.

show 3 replies
magicalhippotoday at 1:15 PM

Reminded me of Warcraft (the first), where, if you kept clicking on the same unit they would respond in more annoyed ways. The best IMHO was the human soldier[1], which would end with "Why do you keep touching me?".

First game that I knew of which had such fun details like that.

[1]: https://www.youtube.com/watch?v=jaZyZZtwdzQ

show 6 replies
CharlesWtoday at 3:59 PM

I did this as well, and loved to hear "Work complete!" (https://www.youtube.com/watch?v=bupagiROLV8) when Claude Code needed me.

Once the novelty wore off, I found it more useful to hear per-project, event-specific messages. On macOS, that looks like this:

    {
      "Stop": [
        {
          "hooks": [
            {
              "type": "command",
              "command": "osascript -e 'say \"ProjectX work complete\" volume 0.25' > /dev/null 2>&1 &"
            }
          ]
        }
      ],
      "Notification": [
        {
          "matcher": "permission_prompt",
          "hooks": [
            {
              "type": "command",
              "command": "osascript -e 'say \"ProjectX needs help\" volume 0.5' > /dev/null 2>&1 &"
            }
          ]
        }
      ]
    }
show 2 replies
splonktoday at 10:45 AM

Maybe 20 years ago a build system at Google was called "grunt". For some reason I came across a CL description that said something like "make the build 10% funnier." It made the build script output an additional "zug-zug" line 10% of the time.

show 1 reply
caymanjimtoday at 6:32 AM

I love this idea, but I really wish it were Warcraft II voices.

show 16 replies
Dwedittoday at 12:22 PM

I remember making custom Warcraft II levels, and you could change the construction time for buildings. If you picked a construction time of zero, the building would be built very quickly, but be damaged. There's something hilarious about asking a peasant to build a farm, then seeing a burning farm and hearing the "Job's Done!"

nottorptoday at 12:45 PM

I don't see any mention of having to own warcraft 3 to use its assets...

This is as much of a copyright violation as the LLM training process.

Did anyone vote an exemption from copyright if it's for "AI" use?

show 7 replies
putnatoday at 9:23 PM

Please do "Commandos" game characters: the Green Beret, the Sapper, the Sniper, the Driver, the Marine and the Spy

_alayatoday at 5:48 PM

I think this is a really fun project, but even more importantly, I believe it’s a portent of things to come.

I really leaned into coding with agents last year, and after some time, it became evident to me that the vision now being pushed -- the "software factory" -- is where things will eventually end up. Building off that understanding, I began thinking about what interfaces would be necessary and useful for managing code and technology at that scale.

I keep coming back to the idea of a video game-like interface for managing all these agents and fleets of agents. Many of the information affordances in video games are reusable in other scenarios. So even though on the surface this project is 'just' a silly and fun enhancement, I think it’s actually a pretty serious contribution as well.

show 1 reply
isoprophlextoday at 7:20 AM

My god I never realised how badly I wanted this until now. Only, with the voice of the Star Trek Computer. Elevenlabs, here I come..!

Edit: well that only took me 30 minutes. "Warning: ssh tunnel collapsed. Unable to proceed."

Nice.

show 2 replies
nusltoday at 8:52 AM

This is cool. I was tempted to try it until I saw the curl | bash pipe, then no. This workflow is getting really old.

I guess that I also don't want to pollute old good memories by associating them with work/Claude

show 3 replies
nzxt210today at 9:34 PM

Actually good staff

Lucasoatotoday at 9:52 AM

Actually, I’ve seen a 150% improvement on Claude Opus 4.6 just by setting up the notifications with Final Fantasy VI menu sounds.

thomasfromcdnjstoday at 6:56 AM

I was kinda watching it unfold on X, I think this user was a couple days before https://x.com/delba_oliveira/status/2020515010985005255?s=46 and simpler/less-invasive instructions

---

Also, I'd love to use these sound effects, but I am an rts player and love aoe and wc franchise, these noises just trigger me to want to play too much.

---

Also, also, if you haven't seen AgentCraft, you are missing out -> https://x.com/idosal1/status/2021661861163544818 (worked in one npx command for me using my claude, a+ for creativity and smoothness)

daveyteatoday at 8:27 AM

Love this but i'm a Codex user, so forked and created the equivalent here: https://github.com/mrdavey/codex-peon

general1465today at 7:37 AM

Stronghold Crusader advisor would be much funnier: Token stocks are too low sire! Not enough tokens mi lord!

skrunchtoday at 8:19 AM

Would love this with CS1.6 voices: "GO GO GO!", "The bomb has been planted", "Need backup"

show 1 reply
gkhartmantoday at 6:54 PM

It's can a long time since I've heard those sound clips. Brings back a lot of great memories of playing WCIII as a teen. Didn't have the money at the time to play WoW, so I ended up playing Guild wars instead.

I never tried playing the WCIII reboot after hearing some pretty bad reviews.

d4rkp4tterntoday at 1:51 PM

Related: I used the amazing 100M-parameter Pocket-TTS [1] model to make a stop-hook based voice plugin [2] that lets Claude Code give a short voice update whenever it stops. The hook quietly inserts nudges to Claude Code to end its response with a short speakable summary, and in case it forgets, it uses a headless agent to create the summary.

It was trickier than I expected, to get it working well: FFMpeg pipe streaming for low-latency playback, a three-hook injection strategy because the agent forgets instructions mid-turn, mkdir-based locks to queue concurrent voice updates from multiple sessions, and /tmp sentinel files to manage async playback state and prevent infinite loops.

[1] Pocket-TTS: https://github.com/kyutai-labs/pocket-tts

[2] Claude-code voice plugin: https://pchalasani.github.io/claude-code-tools/plugins-detai...

bronkictoday at 11:44 AM

Cool idea but not very helpful if you're playing Warcraft III while waiting for claude code to be done.

show 1 reply
0xbadcafebeetoday at 8:14 PM

I'm pretty sure I can imitate the goblin voice exactly, if anyone wants custom sound clips

itsjustjordantoday at 8:12 AM

I just swapped all my Claude code spinner verbs to be Warcraft related and was thinking today how I could get it to say “Jobs done” when it needed my attention

rubenflamsheptoday at 4:30 PM

I wrote a local react app that lets you assign specific unit unit sounds from StarCraft II to different CC hooks: https://github.com/rubenflamshepherd/starcraft-claude

It also lets you manage Claude notifications more gracefully than what you get out of the box with CC. Been lazy about putting the finishing touches on it so this is a good kick in the ass to get that done!

delducatoday at 3:28 PM

I will build one with Starcraft 2 SCV[1] for opencode.

1 - https://starcraft.fandom.com/wiki/SCV_(StarCraft_II)

show 1 reply
Symmetrytoday at 12:48 PM

If you're the sort of person not to use a pre-packaged desktop environment, you can use mako as your notofication daemon and get the same effect by adding

  on-notify=exec play /usr/share/sounds/freedesktop/stereo/complete.oga
or the equivalent to your config.
MisterTeatoday at 3:40 PM

> curl -fsSL https://raw.githubusercontent.com/tonyyont/peon-ping/main/in... | bash

>300 line bash script to hand hold a person who I would assume is capable of using the computer they are downloading a program in source form. 'git clone' followed by 'make install' or go home.

NeroVanbiervtoday at 3:34 PM

I have a `notify` command in my `bin/` for a couple of years now. It's using an audio snippet from Her (2013) with Scarlett Johansson's voice.

Usage: `~ my-bash-command; notify`

`.wav` snippet: https://gitlab.com/NeroVanbiervliet/linux-config/-/blob/mast...

midtaketoday at 6:42 AM

I'll be looking forward to making an Infested Terran sound pack.

show 1 reply
CGamesPlaytoday at 11:12 AM

If you want this to work over SSH, you'll need a different approach. I wrote an article about getting sounds from iTerm2 over SSH a while back: https://cgamesplay.com/post/2020/11/25/iterm-plugins/#playin...

Then it's just a simple Claude code hook to play whatever sound: https://github.com/CGamesPlay/dotfiles/blob/0fd07aea4863b581...

show 1 reply
aliljettoday at 7:08 AM

What I really want is for the peon voice to be replicated and for custom things to be in that voice. Or even better, the starcraft battlecruiser guy's voice!

standarditemtoday at 8:40 AM

This is great! I already have Claude set up to use the "insufficient vespene gas" line from Starcraft when it needs permissions.

show 1 reply
literallyroytoday at 1:17 PM

I don’t see “Jobs done!” in the README :(

novaleaftoday at 4:31 PM

I'm building an agent wrapper over Claude Code, and use the "Jobs done" peon voice for notification (there are two variants).

For when user attention is needed, I play a few seconds of Rick Astley's "Never Gonna Give You Up". =D

AceJohnny2today at 8:25 AM

> Claude Code doesn't notify you when it finishes or needs permission. You tab away, lose focus, and waste 15 minutes getting back into flow.

On macOS, in iTerm2, Claude will trigger notifications. I was impressed!

(and also annoyed: I don't like notifications. Then again, I don't have Claude do long things where I can go get a coffee)

show 1 reply
pratikbptoday at 5:38 PM

This is so satisfying. A couple weeks ago I found myself reciting these lines (as well as some StarCraft MCV line) to myself. Thank you so much for doing this.

a13ntoday at 4:43 PM

Oh man can't wait till Cursor allows you to customize sound effects.

brailsafetoday at 7:18 AM

This is amazing. Incidentally, I've always enjoyed Blizzard's UI art style/textures, in-game and on their website. To me it felt like a hallmark of the quality they used to hold their games to, and it was only once in a rare while I'd see some other website put so much work into their art direction

2gremlin181today at 8:33 AM

I knew I had to add GLaDOS as soon as I saw this. Unfortunately, while testing my PR I realized there’s no support for Linux. Hopefully someone smarter than me can get that added sooner rather than later.

show 1 reply
codelikeawolftoday at 6:48 PM

Bring in Starcraft sounds next please. I want to hear "YOU MUST CONSTRUCT ADDITIONAL PYLONS" when I hit my token limit.

patrick4urcloudtoday at 10:49 AM

Love this, brings back LAN party vibes! Sound notifications for Claude Code are a real pain point.

I built something in the same space but took a different approach — less fun, more engineering: Vox (https://github.com/rtk-ai/vox) — local TTS in pure Rust, no API key, no cloud dependency.

sidravi1today at 7:04 PM

Is there an easy port of this for OpenCode?

dankletoday at 9:04 PM

tars voice when??

jbetala7today at 8:18 PM

This is the kind of thing that makes developer tools fun again.

show 1 reply
yowlingcattoday at 8:39 PM

Does this support when you click on a peon a bunch of times and it says "Me not that kind of Orc!"

giancarlostorotoday at 2:48 PM

Oh man, can we get Starcraft version, I wanna hear "WE MUST CONSTRUCT ADDITIONAL PYLONS" for every minute I dont tab back in.

maxfurmantoday at 3:53 PM

First time I've been jealous of Claude as a Codex user. When does it say "Stop poking me!"?

Fnoordtoday at 1:08 PM

ICQ and TomTom voice packs deja vu. Although 'oh-oh' was heavily used by public broadcast TV here, in documentaries warning about cybercrime.

cadamsdotcomtoday at 6:54 AM

Ah! I was hoping to see the science vessel, or as we used to call it, the Mr. Burns ship.

Awesome idea and well realised, love this :)

dtzurtoday at 6:36 AM

You sir, deserve a medal

🔗 View 50 more comments