codex-security と numbat の比較
どちらもガードレール / セキュリティに分類しています。数値はGitHub APIから取得したもので、評価は本サイトによるものです。
基本情報の比較
| 基本情報の比較 | codex-security | numbat |
|---|---|---|
| ライセンス | Apache-2.0 | Apache-2.0 |
| 言語 | TypeScript, Python | Go |
| 提供形態 | ローカル実行 / セルフホスト | ローカル実行 / セルフホスト |
| 成熟度 | 成長期 | 実験的 |
| スター | 9.9k | 924 |
| 直近7日間のスター増加数 | — | — |
| フォーク | 689 | 97 |
| オープンIssue | 129 | 6 |
| 最終コミット | 2026年8月16日 | 2026年8月14日 |
| 開発状況 | 活発 | 活発 |
それぞれの位置づけ
codex-security
基本形は`npx @openai/codex-security scan .`で、結果のJSONはstdoutに出ます。`--mode deep`ではworkerとsubagentを並べ、新しい検出が出なくなるまで探索を続けます。再スキャン時は`scans compare BEFORE_SCAN_ID AFTER_SCAN_ID`が根本原因で前回と突き合わせ、new/persisting/reopened/resolved/unknownに分類するため、差分だけを追えます。ただし探索は既定で96時間まで回る長丁場であり、コミット前の軽量チェックには向きません。実行にはCodex Securityへのアクセスが前提で、一部のサイバーセキュリティ要求やprotected findingsはTrusted Access for Cyberの承認が必要になる点も、導入前に確認しておきたいところです。
詳細を見る →numbat
デスクトップ・CLI・IDE・ゲートウェイの各エージェントの動きをhookやplugin、OTLP/HTTPのログエクスポータ経由で取り込み、単一のイベントモデルへ正規化したうえでローカルのCELルールで評価し、events・findings・enforcement決定をバージョン付きNDJSONとして書き出します。`numbat scan`はディスク上のセッション成果物を読むため、事前に計装していなかった過去の作業も後から再構成できます。一方で遮断は保守的な設計で、enforceモードは既定で無効、同梱ルールはすべて監視専用なので、実際に止めるにはルールYAMLを運用側のディレクトリへ複製し、idを保ったままenforce: trueを追加してversionを上げる手順が必要です。観測できる範囲はエージェントとサーフェスごとにcoverage matrixで決まり、永続化されなかった活動は後から復元できず、findingsは実行された事実の証明ではなくルールの一致にすぎません。網羅的な記録や確定的な事実認定を期待する用途には向きません。
詳細を見る →できること
codex-security
- 1コマンドとSDKの両方から — 入口は
npx @openai/codex-security scan .で、--modelと--effort highにより走らせ方を調整します。TypeScriptではnew CodexSecurity()に対してrun(".")を呼ぶと同じ処理が走り、result.reportPathが返ります。 - deepモードの打ち切り条件 —
--mode deepは--workersと--subagentsで並列度を決め、--stop-after-no-new 3や--max-discovery-runs 10、--max-time-hours 1.5で上限を切ります。指定しなければ96時間で停止し、その時点で完了した検出結果は保持されて返却されます。 - スキャン間の差分管理 —
scans compareは保存済みのマッチを再利用しつつ根本原因で照合しますが、カバレッジが不完全だったり元の箇所が未レビューの場合はunknownのまま残ります。findings list [repository]は最新スキャンで再確認できなかった未解決の検出も示します。 - 推論プロバイダの差し替え —
--provider openrouterや--provider fireworks、--provider amazon-bedrockを--modelと組み合わせます。BedrockはAWS_BEARER_TOKEN_BEDROCKのほか、アクセスキーやプロファイル、web identity、既定のAWS認証チェーンにも対応します。 - コンテナでの一括スキャン — 公式イメージと同梱のDocker Compose構成により、不変のGitリビジョンに固定した複数リポジトリを非対話かつ再開可能に処理します。
--knowledge-base PATHは全リポジトリ共通のセキュリティ資料、--scan-prompt-file PATHは全リポジトリ共通のスキャン指示を渡すもので、リポジトリ個別の指示はCSVのprompt列に書きます。
numbat
- 設定を変えずに現状を把握する —
numbat agentsで検出済みエージェントを一覧し、numbat scan --agent codexのようにディスク上のセッション成果物を読み取り専用で解析します。hookの導入もエージェント設定の書き換えも発生しません。 - ライブ監視をエージェント単位で入れる —
numbat hook install --agent codex --emit allでhookを入れると、events・findings・indicators・enforcement決定が~/.numbat/records.ndjsonへ追記されます。numbat hook statusが確認するのは設定であって、実行や配送の成否ではありません。 - CELルールを書いて検証する — YAMLで書いた独自ルールは
numbat rules check --rules-dir ./numbat-policyとnumbat rules testで検証でき、idが一致すれば同梱ルールを置き換えます。--no-builtin-rulesを付けると運用側のカタログだけで動作します。 - 監視ルールを遮断に切り替える —
rules/のYAMLを複製してidを保ったままenforce: trueを追加しversionを上げ、numbat hook install --agent codex --rules-dir ./numbat-policy --enforceで導入します。遮断できるのは同期的な実行前フックを持つエージェントに限られます。 - 調査結果をまとめて渡す —
numbat timelineでセッション単位の時系列を組み立て、numbat case buildとnumbat case verifyがSHA-256マニフェスト付きのケースバンドルを生成・検証します。マニフェストが示すのは内部整合性までで、署名のないバンドルは出所や完全性を保証しません。生トランスクリプト全文は通常の出力に含まれず、証跡ファイルの同梱は明示的なオプトインになります。