Skip to content

shuoh-yama/ClaudeCodeMenuHelper

Repository files navigation

ClaudeMenuHelper

Claude Code のツール実行をメニューバーから通知するmacOSアプリ。

Claude Code がファイル編集やコマンド実行の許可を求めるとき、メニューバーにポップアップ通知を表示します。許可/拒否の操作はターミナル側で行い、操作後にパネルが自動消去されます。

機能

  • ツール実行の通知をメニューバーからポップアップ表示
  • コマンドの要約とリスクレベル(低/中/高)をカラーバッジで表示
  • ターミナルで応答後にパネルを自動消去
  • Claude API によるAI要約(オプション)
  • 通知音のオン/オフ切替
  • ログイン時の自動起動

動作イメージ

Claude Code (ターミナル)
    ↓ PreToolUse hook
ClaudeMenuHelper (メニューバー通知)
    ↓ ユーザーがターミナルで応答
    ↓ PostToolUse hook
パネル自動消去

必要環境

  • macOS 14.0 以上
  • Xcode または Command Line Tools(swift コマンドが必要)
  • Claude Code

インストール

自動インストール

git clone <repository-url>
cd ClaudeMenuHelper
./install.sh

install.sh は以下を自動で行います:

  1. ソースコードをビルド
  2. .app バンドルを /Applications にコピー
  3. Claude Code のフック設定を ~/.claude/settings.json に追加

Note: jq が必要です。未インストールの場合は brew install jq でインストールしてください。

手動インストール

# ビルド
make app

# /Applications にコピー
make install

# フック設定を確認
make install-hook

表示される設定を ~/.claude/settings.json に手動で追加してください。

使い方

  1. ClaudeMenuHelper.app を起動(メニューバーに 🧠 アイコンが表示されます)
  2. Claude Code を通常通り使用
  3. ツール実行の許可要求時にメニューバーからポップアップが表示されます
  4. ターミナルで Yes/No を操作するとパネルが自動消去されます

設定

メニューバーアイコンをクリック → 「設定...」から以下を変更できます:

項目 説明 デフォルト
ポート番号 HTTPサーバーのポート 27182
Claude API Key AI要約を有効にする(オプション) なし
ログイン時に自動起動 macOS起動時にアプリを自動起動 OFF
通知音 通知パネル表示時のサウンド ON

Note: ポート番号を変更した場合はアプリの再起動が必要です。フックスクリプトの環境変数 CLAUDE_MENU_HELPER_PORT も合わせて設定してください。

アーキテクチャ

hooks/
  permission-hook.sh    # PreToolUse: /notify に通知送信 → exit 0
  post-tool-hook.sh     # PostToolUse: /dismiss でパネル消去

Sources/ClaudeMenuHelper/
  Server/               # HTTPサーバー (/health, /notify, /dismiss)
  Panel/                # 通知パネル (SwiftUI + FloatingPanel)
  AI/                   # コマンド要約 (ルールベース + Claude API)
  Models/               # データモデル
  MenuBar/              # メニューバーUI + 設定画面
  App/                  # アプリケーションライフサイクル
  Configuration/        # UserDefaults設定管理

開発

# デバッグビルド + 起動
make run

# テスト
make test

# クリーン
make clean

アンインストール

# アプリを削除
rm -rf /Applications/ClaudeMenuHelper.app

# フック設定を削除(jq + sponge が必要)
jq 'del(.hooks.PreToolUse, .hooks.PostToolUse)' ~/.claude/settings.json | sponge ~/.claude/settings.json

ライセンス

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors