Gavel
Claude Code の物理コントローラー。
なぜ「Gavel(木槌)」?
裁判官の木槌は判決を確定させます——そして、ここでは常に人間が判断を下す側です。 同じキーはどんなキーボードでも送れますが、専用のデバイスがあることで、 無意識にキーを叩く代わりに立ち止まって考えるようになります。反射ではなく、判断として。
入力
3 つの物理ボタンで Claude Code のパーミッションプロンプトに回答します(1 一回許可 / 2
常に許可 / 3 拒否)。キーボードを触る必要はありません。
出力
Claude Code のフックイベントに応じて LED が点灯し、Claude の動作をリアルタイムでフィードバックします。
仕組み
マイコンは 1 本の USB ケーブルで 2 つの独立した役割を担います:
- USB HID キーボード — ボタンを押すと、対応するキーが端末に送信されます。Claude Code はユーザーが直接タイプしたかのように受信します。Claude Code の特別な設定は不要です。
- シリアルリスナー — Claude Code フックが Mac 側の Python スクリプトを呼び出し、 マイコンの USB シリアルポートへ小さな JSON メッセージを送信して LED を制御します。
| フック | LED の反応 |
|---|---|
PreToolUse |
全 LED 点灯 |
PostToolUse |
全 LED 消灯 |
Notification (info) |
ゆっくり 1 回点滅 |
Notification (warn) |
中程度で 3 回点滅 |
Notification (error) |
速く 5 回点滅(赤のみ) |
PostToolUse(コンテキスト 90% 以上) |
中程度で 3 回点滅、その後消灯 |
| アイドル — Pico(KITT モード) | ナイトライダー風スウィープ |
| アイドル — RP2040 Zero(KITT モード) | ブルー呼吸フェード |
セットアップ
セットアップは簡単です:
- ボードに CircuitPython をインストール
firmware/boot.pyとfirmware/code.pyをCIRCUITPYドライブにコピーadafruit_hid/(全ボード)とneopixel.mpy(RP2040 Zero のみ)をCIRCUITPY/lib/にコピーboot.pyを有効にするため、ボードの電源を入れ直す(USB を抜き差し)- Mac 側の依存関係をインストール:
pip3 install pyserial - ハードウェア配線ガイドに従ってボタンと LED を配線
./install.sh --deployを実行して~/.claude/settings.jsonにフックを登録