ptuf: 1コマンドで PreToolUse フックを入れ、.env や危険コマンドを止める
ptuf init claude-code で ~/.claude/settings.json に PreToolUse フックが入り、.env の読み取りや git reset --hard のような危険操作をエージェントの実行前に止められる。
手順
- ptuf をインストール(GitHub Releases のバイナリ)
- フックを登録
bash
ptuf init claude-code --dry-run # 変更内容だけ確認 ptuf init claude-code # ~/.claude/settings.json に追記追記される内容は
matcher: "Bash|Read|Edit|Write|WebFetch|mcp__.*"でptuf hook claude-codeを呼ぶ PreToolUse フック。既存の設定キーは保持される - 判定を手で試す
bash
ptuf check --tool Bash 'git reset --hard HEAD~1' - 引数なしの
ptuf initは Codex・Copilot・Cursor・Kiro・Cline・Pi・OpenCode も自動検出して入れる
注意点
- バイナリが無いのにフックだけ残ると素通り(fail open)になる。クラウド環境では SessionStart で「インストール→init→
ptuf --versionが失敗したらセッションを止める」をセットにする - ptuf は自分自身の設定やフック行をエージェントが書き換えることも止める(途中で無効化されない)
- 関連: Claude Code: bypassPermissions でも deny リストは効く → 危険コマンドだけ明示的に禁止する / Claude Code: hook に onFailure: "block" を付けて失敗時に通さない