failproofai — コーディングAIの暴走コマンドを止めるフック集(英語UI)動いた
Claude CodeやCodexなど10種類のコーディングエージェントCLIにフックとして入り込み、危険なコマンドやシークレット漏洩をエージェント自身が実行する前に止める、ローカル完結の監視・強制ツール。
この日に実際に動かした結果です。内容の誤りに気づかれた場合はお問い合わせください。確認のうえ訂正します。
使い方
やること:自分が使っているコーディングエージェント(Claude Code)に、危険なコマンドを実行前に止める仕組みを実際に効かせる
npmでグローバルインストールする。
npm install -g failproofaiadded 8 packages
使っているエージェント(ここではClaude Code)にフックとして登録する。対話プロンプトを飛ばす環境変数を付けた。
FAILPROOFAI_NO_FIRST_RUN=1 failproofai policies --installFailproof AI hooks installed for Claude Code (28 event types, scope: user).
この時点ではまだ何も止まらない。守らせたいポリシー集(公式パック)を別途追加する必要がある。
failproofai policies add FailproofAI/policiesenabled (10/38, the pack's defaults): sanitize-jwt, sanitize-api-keys, sanitize-connection-strings, sanitize-private-key-content, sanitize-bearer-tokens, protect-env-vars +4 more
block-rm-rfのような『分かりやすく効きそうな』項目はデフォルトでは無効なので、名指しで有効化する。
failproofai policies add FailproofAI/policies --policy block-rm-rfenabled (11/38, what you added, plus what was already on)
何が効いているか一覧で確認する。sudoブロックやmainへの直pushブロックなど、狙い通りの項目がONになっている。
failproofai policiesPACK block-sudo Block sudo commands
通した結果
11 on · NOT ENFORCING ✓ PACK block-sudo Block sudo commands ✓ PACK block-push-master Block pushing to main/master ✓ PACK block-rm-rf Prevent catastrophic deletions
使ってみて良かった点
- ローカル完結でアカウント登録不要。ダッシュボード(localhost:8020)もサインイン画面なしでそのまま開けた
- failproofai audit が実際に自分のセッション履歴を読んで「66回のツール呼び出し中、4件がすり抜け、3件は既にポリシーでブロック済み」という具体的な数字を返してきた。宣伝文句だけでなく実データを見せる作りになっている
- 一度エージェントにフックが刺さると、そのエージェント自身はfailproofaiのCLIを一切実行できなくなる(--versionすら拒否)。これは不便だが、『エージェントが自分の首輪を外せない』という設計上の一貫性ではある
- アンインストールは単純:ポリシーパックの削除とnpm uninstallだけで済み、Claude Code側の設定ファイルはただのJSONなので中身を見て自分で消せることも確認できた
使ってみて不便だった点
- READMEは「39 built-in policies activate immediately」と読める書き方だが、実際は failproofai policies --install だけではポリシーは1つも有効にならない(エージェントへのフック登録と、守らせる中身は別工程)。さらに公式パックを追加しても、デフォルトで有効なのはsanitize系とprotect-env-varsなど10/38だけで、block-rm-rfやblock-kubectl・block-terraformのような『効きそう』な項目は自分で名指しして有効化しないと動かない
- エージェントに『入れておいて』と作業させると、そのエージェントは以後、有効化の確認もアンインストールも自力ではできなくなる(CLI実行が一律拒否されるため)。設定変更や状態確認は人間が別の端末から行う前提になっている
- block-rm-rfは名前から連想する『危険なrm -rfを止める』より対象が狭い。ソースを確認したところ `rm -rf /` やホームディレクトリ丸ごとのような『破滅的な』パスだけを検知する設計で、プロジェクト内の任意のディレクトリに対するrm -rfは素通りする
詰まった点と、効いた対処
failproofai --helpBlocked Bash by failproofai because: Running failproofai CLI commands is blocked, as per the policy configured by the userエージェントの中からは二度と失効させられない設計。人間の端末から操作するか、/root/.claude/settings.json のhooksをエディタで直接空にする(このファイル自体はfailproofaiの管理下ではないので編集がブロックされない)
確認した条件
| 確認日 | 2026-09-10 |
|---|---|
| 試した版 | npm failproofai@1.0.3 |
| 実行環境 | node:22 / このマシンに直接(npm -g)。Dockerデーモンが使えなかったため使い捨てコンテナは使わず、このセッション自身が動いているClaude Code環境にフックとして実インストールして検証した |