世界を動かす技術を、日本語で。

「Warcraft III」のペオン音声通知 for Claude Code

概要

peon-ping は、Claude Codeの進行状況や許可が必要なタイミングを Warcraft III Peonの音声 で通知するツール。 macOSWSL2 に対応し、インストールやアップデートも コマンド一発 で完了。 サウンドパックの切り替え や通知の一時停止も簡単操作。 ターミナルのタブタイトル更新 やデスクトップ通知にも対応。 カスタマイズ性 が高く、独自パックの追加も可能。

peon-ping 概要

  • Claude Code での作業進行や許可要求を、 Warcraft III Peonの音声 で即時通知
  • 通知を逃して作業効率が下がる 問題の解消
  • ターミナル がOrgrimmarの雰囲気になるエンタメ性
  • 公式デモサイトpeon-ping.vercel.app

インストール方法

  • コマンド一発 で導入(10秒以内完了)

    curl -fsSL https://raw.githubusercontent.com/tonyyont/peon-ping/main/install.sh | bash
    
    • macOS および WSL2 (Windows) 対応 再実行でアップデート (サウンド・設定は維持)

サウンドイベント例

  • セッション開始 :挨拶「Ready to work?」「Yes?」「What you want?」
  • タスク完了 :承認「Work, work.」「I can do that.」「Okie dokie.」
  • 許可要求 :警告「Something need doing?」「Hmm?」「What you want?」
  • 急連続プロンプト :イースターエッグ「Me busy, leave me alone!」
    • タブタイトル (例:● project: done)や デスクトップ通知 もサポート

クイック操作・ミュート機能

  • 会議やペア作業時のミュート切り替え

    • Slashコマンド/peon-ping-toggle(Claude Code CLI内)
    • CLIコマンドpeon --toggle(任意ターミナルから)
      • peon --pause サウンドミュート
      • peon --resume サウンド再開
      • peon --status 状態確認
      • peon --packs 利用可能パック一覧
      • peon --pack <name> 特定パックへ切替
      • peon --pack 次パックへ切替
    • Tab補完対応peon --pack <TAB>で候補表示) ミュート状態はセッション跨いで維持 (タブタイトルは継続更新)

設定・カスタマイズ

  • 設定ファイル~/.claude/hooks/peon-ping/config.json

    • volume:0.0~1.0(オフィスでも静かに設定可能)
    • categories:各サウンド種別のON/OFF
    • annoyed_thresholdannoyed_window_seconds:イースターエッグ発動回数と時間
    • pack_rotation:パック名配列(セッションごとにランダム選択。空配列ならactive_packを使用)

サウンドパック一覧

  • peon(デフォルト) :Orc Peon(Warcraft III)「Ready to work?」「Work, work.」など by @tonyyont
  • peon_fr :Orc Peon(フランス語)by @thomasKn
  • peon_pl :Orc Peon(ポーランド語)by @askowronski
  • peasant :Human Peasant(Warcraft III)by @thomasKn
  • peasant_fr :Human Peasant(フランス語)by @thomasKn
  • ra2_soviet_engineer :Soviet Engineer(Red Alert 2)by @msukkari
  • sc_battlecruiser :Battlecruiser(StarCraft)by @garysheng
  • sc_kerrigan :Sarah Kerrigan(StarCraft)by @garysheng
      • peon --pack ra2_soviet_engineer 特定パックへ切替
      • peon --pack 次パックへ
      • peon --packs 全パック一覧
      • ~/.claude/hooks/peon-ping/config.jsonactive_pack直接設定
    • 独自パック追加方法 はCONTRIBUTING.md参照

アンインストール方法

  • bash ~/.claude/hooks/peon-ping/uninstall.sh
    

動作要件

  • macOS (afplay、AppleScript利用)
  • WSL2 (PowerShell MediaPlayer、WinForms利用)
  • Claude Code (hooks対応版)
  • python3

動作仕組み

  • peon.sh がClaude Codeの各イベント(SessionStart、UserPromptSubmit、Stop、Notification)にフック
  • イベントごとにサウンドカテゴリを割り当て、 重複を避けてランダム再生
  • macOS はafplay、 WSL2 はPowerShell MediaPlayerで再生
  • ターミナルのタブタイトル も自動更新
  • サウンドファイル は各パブリッシャー(Blizzard Entertainment、EA)所有。リポジトリ内に便宜上同梱

公式リンク

Hackerたちの意見

このアイデア大好きだけど、Warcraft IIの声だったらもっと良かったな。

ズグズグ

結局、そうすることにしたよ — かなり簡単だった:* Warcraft IIの声をダウンロードして * Claudeに全部繋げるように指示しただけ。

それとも懐かしのWarcraft I: https://www.youtube.com/watch?v=oAEG8S-F01A&t=7s

あなたのサウンドカードは完璧に動いてるよ。

こんにちは、40〜45歳くらいの仲間よ。Warcraft IIIを好む人は30代のような気がする。Warcraft IIのバトルチェストで育ったから、あの雰囲気が好きだったな。

なんてこった https://www.youtube.com/watch?v=iqGUbvj-Krg

レッドアラートIIがあれば最高だな。いろんなラボのエンジニアチームへのお願い: ローカルで声を設定できるjsonフォーマットとか作ってくれないかな。最近、Open AIのCodexアプリを使っててすごく満足してるんだ。JSONを渡すだけで動いてくれたらいいのに。スキルでできるかもしれないから、後で試してみるけど、こういうのは重要だと思うし、組み込まれてて推奨されるといいな。

音声録音ソフトやYouTubeのmp3ダウンローダーを使えば、めっちゃ簡単にできるよ。ちょっとした想像力があれば、プログラミングが楽になるしね。

はいはい、了解!キャプテンがブリッジにいるぞ!

手伝いが必要ですか?

ようやく、実際に良い仕事をしてる人が現れたね。「Claude、また役に立たないSaaSを作って」みたいなのじゃなくて。予言通り、実際の差別化要因は創造性であって、コーディング能力じゃないんだよね。

創造性が王様になりそうだね。

同意だね。今でも、クリーンルームでマジェル・バレットの声を再現する成功者が現れるのを待ってるよ。やっとコンピュータが本来あるべき声になるために。10年前にはできてたはずなのに、高品質の音声サンプルが、遺族やプロデューサー、商業的な利害関係の間で行き詰まって、プロジェクトが先延ばしになっちゃったんだよね。

Xでその様子をちょっと見てたんだけど、このユーザーは数日前に https://x.com/delba_oliveira/status/2020515010985005255?s=46 の投稿をしてたと思う。もっとシンプルで侵襲性の少ない指示があったし。--- それに、この効果音を使いたいんだけど、私はRTSプレイヤーで、AOEやWCシリーズが大好きだから、これを聞くとプレイしたくなっちゃうんだよね。--- それと、もしAgentCraftをまだ見てないなら、見逃してるよ -> https://x.com/idosal1/status/2021661861163544818 (私のClaudeで1つのnpxコマンドで動いたから、創造性とスムーズさにA+だね)

なんてこった、これがどれだけ欲しかったか今まで気づかなかったよ。スター・トレックのコンピュータの声でね。エレベンラボ、行くぞ..! 編集: まあ、これに30分しかかからなかったけど。「警告: sshトンネルが崩壊しました。続行できません。」いい感じだね。

マジェル・バレット・ロデンベリー、スター・トレックの創造者ユージン・ウェスリー(ジーン)・ロデンベリーの妻。

そのパックは戻したの?

Claude Codeは、終了したり許可が必要なときに通知してくれないんだ。タブを切り替えると、集中力が切れて、戻るのに15分も無駄にしちゃう。macOSのiTerm2では、Claudeが通知を出してくれるから、感動したよ!(でもちょっとイライラもした。通知が嫌いなんだよね。まあ、長いことやらせることはないから、コーヒーを取りに行くこともないけど)

これいいね!でも俺はCodexユーザーだから、フォークしてこっちに相当するものを作ったよ: https://github.com/mrdavey/codex-peon

これを見た瞬間、GLaDOSを追加しなきゃって思ったんだ。でも、PRをテストしてるときにLinuxのサポートがないことに気づいた。もっと賢い誰かが早めに追加してくれるといいな。

これ最高!Claudeには、許可が必要なときにStarcraftの「不足しているヴェスピンガス」のセリフを使うように設定してあるんだ。

これにLinuxサポートを追加したいな。もし他に貢献したい人がいたら、調整するのは大歓迎だよ。

これクールだね。試してみたくなったけど、curl | bashのパイプを見て、やっぱりやめた。このワークフロー、ほんと古臭くなってきたな。昔の良い思い出を仕事やClaudeと結びつけたくないってのもあるし。

完全に同意だわ。これが理由で、Linuxを誰にも勧めるつもりはないんだ。普通の人にこんなことを理解させるのは無理だよね。でも、「このコードを自分のシステムで実行しようと思ったけど、同じリポジトリの別のコードを見て、今は実行するのを拒否してる」って言ったのがちょっと面白いなって思った :D すべて同じリポジトリなのに、コードの一部は試そうとして、別の部分は拒否するって、完全に恣意的だよね。

音声ファイルのためだけにリポジトリをクローンしたよ。時間ができたら、長時間のジョブ用にターミナルに繋げて遊んでみようかな。ラッパースクリプトでも作ろうかな。うん、やってみてもいいかも!