くらげになりたい。

くらげのようにふわふわ生きたい日曜プログラマなブログ。趣味の備忘録です。

効果音・音声読み上げ・デスクトップ通知を一気にできるCLIツールを作った(ccnoti)

Claude CodeのHooksで完了通知をしたいなと調べると、
いろんな記事が無限に出てくる。。。

  • afplayで音を鳴らしたり
  • sayで読み上げたり
  • terminal-notifierで通知したり

全部したいけど、いろいろ設定するのはめんどくさい。。。

ので、
1つのコマンドで全部できるCLIツールを作ってみた(*´ω`*)

つくったもの

www.npmjs.com

使い方はこんな感じ

# デスクトップ通知+音声読み上げ
npx ccnoti@latest --desktop --voice -m "完了しました"

# デスクトップ通知のみ
npx ccnoti@latest --desktop -m "入力を待っています"

# 音声読み上げのみ
npx ccnoti@latest --voice -m "Task Complete"

# 効果音のみ+ファイル指定
npx ccnoti@latest --sound --soundFile=/System/Library/Sounds/Hero.aiff

とりあえず、macでは動いてるけど、win/linuxもちょっとは動くはず?

Claude Code Hooksの設定

.claude/settings.jsonにこんな設定をすればOK
メッセージを"ccnotiが完了しました"とかにすると、どのプロジェクトかわかりやすい

{
  "hooks": {
    "Notification": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "npx ccnoti@latest -v -d -m 'ccnotiが入力を待っています'"
          }
        ]
      }
    ],
    "Stop": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "npx ccnoti@latest -v -d -m 'ccnotiが完了しました'"
          }
        ]
      }
    ]
  }
}

利用したライブラリたち

CLI/build部分は、unjsスタック

ぜひ遊んでみてください!!

ソースコードとかはこちら。とりあえず、ベースができたので、
slackとかにも送れるようにしたいなとかも。。

ぜひぜひ遊んでみてみてください〜(*´ω`*)

github.com

参考にしたサイト様