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- GitHub のソースコード
- スキル:
writing-steerhook-rules - デフォルトブランチから読み込んだコミット
6f72ea5
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は規則の有効と無効を切り替えます。
エージェントでの使い方
Section titled “エージェントでの使い方”「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-execenabled: trueevent: bashpattern: (^|[\s;&|(])codex\s+exec\baction: 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がフックのスクリプトに対してすべてのシナリオを実行します。