Claude Code からの確認通知ツールをつくりました

claude-code-notifierという通知確認ツールをつくりました

いつも VS Code で Claude Code を使って作業をしていると、確認ダイアログ(permission request)が次から次へと飛んでくると思うのですが、セキュリティ的にはひとつひとつ目を通したい。でも気が付きにくく、他の作業を集中してできない、みたいなちょっとした課題がありました。

そこで今回、そんな課題を解決するために、見た目と音で「あ、Claude Code から確認が来た」とすぐ分かるツールを自作してみました。

調べてみると、同じ悩みをもってつくられたツールがちらほらありましたが、既存ツールを触ってみても、どうにもしっくりこないので、それなら自分好みのツールをつくっちゃえ〜ということで、開発してみました。

Claude Code と一緒に初めての OSS

今回は Claude Code で手を動かしながら、途中で Agent を 2 体並列で走らせてレビューもしてもらいました。1 体は Swift コードと build スクリプトのセキュリティ・品質、もう 1 体はライセンス選定・README 構成・商標配慮。結果として SF Symbols のライセンス問題、入力値の allowlist 検証、universal binary 対応などが「Critical / High」として上がってきて、そこを潰してから公開しました。

OSS として公開するにあたり、結構ドキドキしていたので、Claude Code を駆使して念入りにチェックしました。それでも抜け漏れはありそうなので、気になる点があれば GitHub の Issues に書いてもらえるとうれしいです🙏

claude-code-notifierのこだわりポイント

macOS の画面右上に表示された Claude Code の通知
通知バナーのイメージ
  • アイコンは Heroicons の MIT ライセンスベルを Claude ブランドカラー(Crail + Cream)で染めて自作。SF Symbols はアプリアイコンに使えない制約があるので避けました。
  • サウンドのデフォルトを心地よい Purr という音に設定。通知が頻繁にきてもうるさくない音です。
  • README は英語 + 日本語の両対応

claude-code-notifierの概要

公開したのは claude-code-notifier という名前の macOS 専用の通知ツールです。

  • Swift 単一バイナリ(Python / Node / Rust のランタイム依存なし)
  • Heroicons の MIT ベルをビルド時にラスタライズ(ライセンスクリーン)
  • サウンドラベル(permission / idle など)で hook とサウンドを分離。音を変えたくなったら config.json だけで完結して、hook 側は触らない
  • 入力の allowlist 検証(soundName、bundleID、本文長さ制限、制御文字除去)
  • universal binary(arm64 + x86_64)、macOS 12.0 以降
  • README は英語 + 日本語の両対応
  • ライセンスは MIT、LICENSE / CONTRIBUTING / SECURITY / CODE_OF_CONDUCT / TRADEMARKS を揃えました

インストール方法やカスタマイズの詳細は README にまとめています。

GitHub - saiso/claude-code-notifier: A macOS notifier for Claude Code with a custom icon and IDE click-through
A macOS notifier for Claude Code with a custom icon and IDE click-through - saiso/claude-code-notifier
github.com

動作確認は VS Code でしかしていないので、Cursor や JetBrains など他の IDE で使う場合は、config.json の activateBundleID を書き換えてもらうと動くはずです。(未検証ですみません!)

まだ初版なので、GUI 設定画面や Homebrew tap 配布は次のバージョンで検討するかもしれないししないかもしれない。自分用につくったツールなので、まずは自分で使い込みながら、気になるところがあれば改善するかもしれません。

AI時代、欲しいツールは自作しよう

類似ツールがいくつかと分かった段階で、これまでなら既存のツールを使いつつ、気になるところはぐっと我慢していたかもしれません。でも、 Claude Codeを始めとしたAI全盛のこの時代、ちょっと欲しいツールだったら、「自分でつくってしまえ〜」のほうがいいなあと思いました。

Claude Codeは育てゲーだと日々思っているのですが、今回のツールも、Claude Codeと自分が育つためのネタを発見した!という気持ちが大きいです。最近は、なにかしらのプロジェクトを成し遂げるためのプロセスを通して得られる体験がとにかく楽しく、手段と目的が入れ替わっている感も否めません笑

今後も、既存のツールを利用するのではなく、どうせなら自作しちゃえ、が多発すると思いますが、公開できそうなものはどんどん公開していこうと思います!