コンテンツにスキップ

steerhook

steerhookApache-2.0

Rules that block or warn before a tool runs and tell Claude the alternative. Rules live in ~/.claude/steerhook/ and apply in every project.

インストール

/plugin marketplace add meganemura/steerhook
/plugin install steerhook@steerhook

steerhook は、Claude の行動を望む方向へ導くフックを持つ Claude Code のプラグインです。 規則には、Claude に実行してほしくないコマンドのパターンと、代わりに使ってほしい形を書きます。 Claude がツールを実行する前に、steerhook はその呼び出しを規則と照らし合わせます。 規則は、呼び出しをブロックするか、警告を付けて通します。 どちらの場合も規則のメッセージが Claude に届くので、Claude は行動する直前に代わりの方法を知ります。 steerhook は、Anthropic の Claude Code 向けプラグイン hookify のフォークで、Apache License 2.0 で公開されています。

  • メッセージが Claude に届く。 ブロックするときは規則のメッセージを permissionDecisionReason として、警告のときは additionalContext として送ります。 ユーザーにも、これまでどおり systemMessage として表示されます。
  • 自分の規則を 1 か所に。 規則は ~/.claude/steerhook/ のファイルで、すべてのプロジェクトに適用されます。 STEERHOOK_RULES_DIR で別のディレクトリを指定できます。 プロジェクトの中に置かれた規則を読むことはありません。
  • シェルが実際に実行するものと照合する。 bash の規則は、steerhook がクォートを解釈した後のコードと照合するので、クォートされた引数の中の codex exec では発火しません。 command_literal、command_expanded、command_raw は、それ以外の形のコマンドを照合の対象にするときの名前です。
  • 言葉から規則を作る。 /steerhook:add <what to prevent> は、ユーザーの言葉と、直近のやり取りにある実例から規則の案を作り、block か warn かを尋ね、同意を得てからファイルを書きます。
  • 確認できる規則。 /steerhook:list は読み込んだすべての規則を、メッセージの最初の行とともに出力し、/steerhook:configure は規則の有効と無効を切り替えます。

「force-push させないで」のように自分の言葉で規則を頼むと、Claude は writing-steerhook-rules スキルを読み込み、/steerhook:add も最初にこれを読み込みます。 このスキルには、ファイルの形式、実際の誤りを捉えるパターンの書き方、Claude が行動に移せるメッセージの書き方が書かれています。 その後のツールの呼び出しが規則に一致すると、Claude は拒否か警告とともにそのメッセージを読みます。 規則は、再起動しなくても次のツールの呼び出しから適用されます。

フックは node がそのまま実行する TypeScript のファイルなので、steerhook には Node 22.18 以降が必要です。

ターミナルウィンドウ
/plugin marketplace add meganemura/steerhook
/plugin install steerhook@steerhook

規則は、~/.claude/steerhook/no-direct-codex-exec.md のような、frontmatter 付きの Markdown ファイルです。

---
name: no-direct-codex-exec
enabled: true
event: bash
pattern: (^|[\s;&|(])codex\s+exec\b
action: block
---
Do not run `codex exec` from Bash. Send the task to the `codex:codex-rescue`
subagent with `--wait`, so the completion arrives as an agent notification.
  • features/ の下のシナリオは steerhook の振る舞いの契約で、nukadoko 向けに書かれています。 npx nuka check がそれを検査し、npx nuka run features がフックのスクリプトに対してすべてのシナリオを実行します。