Codex Hooks入門:非エンジニアでもできる安全な自動化

Codex Hooks入門の解説画像

CodexのHooksは、Codexが作業する前後に自動チェックを差し込む仕組みです。非エンジニアの初心者は、難しい自動化機能としてではなく「Codexに付ける安全確認係」と考えると理解しやすくなります。

Codex Hooks入門

Hooksでできること

Hooksを使うと、Codexがツールを実行する前、実行した後、セッションを開始した時などに、自分で決めた処理を走らせられます。たとえば、危険な削除コマンドを止める、作業ログを残す、毎回の作業ルールを読み込ませる、といった使い方ができます。

フックタイミング初心者向けの使い方
PreToolUseツール実行前危険なコマンドを止める
PostToolUseツール実行後結果やログを確認する
SessionStartセッション開始時毎回のルールを読み込ませる
UserPromptSubmit依頼文の送信時APIキーや個人情報の貼り付けを検知する
Stop終了直前確認漏れを防ぐ
Codex Hooksの流れ

最初はPreToolUseだけでいい

初心者が最初に使うべきなのはPreToolUseです。理由は、Codexが操作する前に止められるからです。作業後に気づくより、実行前に危ない操作を止めるほうが安全です。

設定方法

まず、~/.codex/config.toml に次の設定を入れます。

[features]
codex_hooks = true

次に、~/.codex/hooks.json を作ります。以下は、Bashコマンドを実行する前に確認用スクリプトを動かす例です。

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "python3 ~/.codex/hooks/check_command.py",
            "statusMessage": "コマンドを確認中"
          }
        ]
      }
    ]
  }
}

具体例:危険なコマンドを止める

~/.codex/hooks/check_command.py に次のようなスクリプトを置くと、削除や強制リセットのような危険なコマンドを止められます。

import json
import sys

data = json.load(sys.stdin)
command = data.get("tool_input", {}).get("command", "")

danger_words = ["rm -rf", "git reset --hard", "git checkout --"]

if any(word in command for word in danger_words):
    print(json.dumps({
        "hookSpecificOutput": {
            "hookEventName": "PreToolUse",
            "permissionDecision": "deny",
            "permissionDecisionReason": "危険なコマンドのため停止しました。"
        }
    }, ensure_ascii=False))

needs reviewが出たとき

Hooks画面にneeds reviewと出るのは、最近追加または変更されたフックをCodexがまだ信頼していない状態です。見るべき場所は、通常~/.codex/hooks.jsonです。commandに書かれたスクリプトが自分で作ったものか、外部送信や削除をしていないかを確認します。

まとめ

Codex Hooksは、初心者にとって「高度な拡張機能」ではなく「安全確認を自動化する仕組み」です。最初はcodex_hooks = trueを有効にし、PreToolUseで危険なBashコマンドを止めるところから始めるのが現実的です。

会員登録でお役立ち資料をダウンロードできます

低コストかつスピーディーなシステム構築を実現できる「ノーコード開発ツール」の選び方ガイドをプレゼント中!

PICK UP おすすめ記事

記事が見つかりませんでした。

目次