AI エージェントが実行する前に、破壊的なコマンドをブロック。

CC Safety Net は、Claude Code、Codex、Cursor などの AI コーディングエージェント向けの実行前フックです。破壊的な git/ファイルシステムコマンドとシークレットファイルの読み取りを、実行前にブロックします。ガイドラインを守るかどうかを、エージェント任せにはしません。

Node.js 18 以降が必要です。macOS、Linux、Windows で動作します。
ドキュメントを読む
  • MIT ライセンス
  • 最新リリース v2.6.18(2026年10月23日)
  • GitHub スター数 1,753(2026年10月23日時点)

主要なコーディングエージェントすべてに対応

v2.6.18 時点で、macOS、Linux、Windows 上の対応する 16 のコーディングエージェントすべてに、1 つのインストーラーで導入できます。

見るのは、コマンドが実際に何をするか。

bash -c で包んでも、フラグの順序を入れ替えても、コマンドは隠せません。より安全な書き方なら、そのまま通ります。

コマンドの例

cc-safety-net · pre-exec hook

$ git push --force

✖ BLOCKEDgit.push-force

git push --force destroys remote history. Use --force-with-lease for safer force push.

$ git push --force-with-lease

✔ ALLOWED

前回のフェッチ以降にリモートが更新されていれば、プッシュを拒否します。

シークレットには触れさせません。読み取りさえも。

.env ファイル、SSH 鍵、クラウドの資格情報、コーディングエージェントのトークンは、シェルからも、エージェント自身の読み取り・編集・書き込み・検索ツールからもブロックされます。

$ cat .env

ブロック

理由:環境変数ファイルから API キーとトークンを読み取るため。

$ cp ~/.ssh/id_rsa /tmp/key

ブロック

理由:SSH 秘密鍵を鍵ディレクトリの外にコピーするため。

$ cat ~/.aws/credentials

ブロック

理由:資格情報ストアから AWS のアクセスキーを読み取るため。

$ grep token ~/.claude/.credentials.json

ブロック

理由:コーディングエージェント自身の認証トークンを読み取るため。

既定では的確に、必要なときは厳格に

JSON を手作業で編集する代わりに、ローカルのダッシュボードで安全プリセットを選び、保護のオン・オフを切り替えられます。

127.0.0.1 で動作するため、マシンの外には何も出ません。

127.0.0.1:52341/?token=f3a9…

安全プリセット
  • $ $TOOL --force✔ 許可
  • $ rm -rf ./build✔ 許可
  • $ python -c "shutil.rmtree('build')"✔ 許可

3 つの例です。プリセットは、エージェントが実行するすべてのコマンドに適用されます。

コマンドがマシンの外に出ることはありません。

フックはオフラインで判定し、監査ログは ~/.cc-safety-net に保存されます。テレメトリーもありません。

~/.cc-safety-net/logs/…/2026-10-01-a1b2c3.jsonl

{
"ts": "2026-10-01T13:16:56.213Z","decision": "deny","agent": "claude-code","toolName": "Bash","command": "GITHUB_TOKEN=<redacted> git push --force","ruleId": "git.push-force",…}

コマンド 1 つでインストール

インストーラーがこのマシン上のコーディングエージェントを見つけ、選んだエージェントにフックを組み込みます。

Node.js 18 以降が必要です。macOS、Linux、Windows で動作します。

よくある質問

エージェントにリポジトリを触らせる前に、開発者がよく尋ねることをまとめました。

CC Safety Net とは何ですか?

CC Safety Net は、Claude Code、Codex、Cursor などの AI コーディングエージェント向けの実行前フックです。シェルコマンドとファイル操作のツール呼び出しを実行前に 1 つずつ読み取り、作業を破壊するものやシークレットを露出させるものをブロックします。対象は git reset --hard、git push --force、ホームディレクトリへの rm -rf、.env ファイル・SSH 鍵・クラウドの資格情報の読み取りなどです。macOS、Linux、Windows で 16 のコーディングエージェント CLI に対応し、無料で、MIT ライセンスで公開されています。サンドボックスではありません。

CC Safety Net の概要

Claude Code、Codex、Cursor が git reset --hard や rm -rf を実行しないようにするには、どうすればよいですか?

npx -y cc-safety-net@latest install で CC Safety Net をインストールし、npx -y cc-safety-net@latest doctor を実行してフックが有効になったことを確認します。Node.js 18 以降が必要です。インストール後は、git reset --hard、git checkout -- .、git clean -f、git stash clear、git push --force が拒否され、エージェントにはその理由と、代わりに使う安全なコマンドが伝えられます。rm -rf は、ホームディレクトリ、ファイルシステムのルート、プロジェクト外のパスに対してブロックされます。プロジェクト内での削除は、paranoid レベルを有効にしないかぎり許可されます。

ブロックされるコマンド

Claude Code の権限の拒否ルールで、すでに同じことができませんか?

場合によります。拒否ルールは決定的で、bypassPermissions モードでも適用されます。1 つの CLI でいくつかの決まったコマンドを止めるだけなら、それで足りるかもしれません。ただし拒否ルールはコマンド文字列をワイルドカードのパターンと照合するため、フラグの順序の入れ替え(rm -r -f)、シェルラッパー(sh -c "...")、インタープリターを使うとすり抜けられます。CC Safety Net はコマンドが何をするかを解析するため、こうした変形も捕捉します。さらに、ツールごとに別々の形式で書かなくても、16 の CLI を 1 つのポリシーと 1 つの監査ログで管理できます。両方を使う構成も多くあります。

仕組み

Claude Code の auto モードは、git reset --hard をすでにブロックしていませんか?

部分的にはそうです。2026年10月時点で、Claude Code の auto モードは分類器モデルを使い、git reset --hard、git clean -fd、git stash clear などのコマンドを既定でブロックします。ただしこれは判断に基づくもので、Anthropic は、実際の行き過ぎた操作に対するこの分類器の偽陰性率を 17% と公表しています。bypassPermissions モードでは何も確認されません。CC Safety Net の拒否は決定的なチェックです。Claude Code 2.1.251 での検証では、default、auto、bypassPermissions のいずれのモードでも拒否が働きました。default モードですべてのコマンドを自分で確認しているなら、CC Safety Net は不要かもしれません。

保護レイヤー

エージェントをサンドボックスやコンテナで動かしていても、CC Safety Net は必要ですか?

未コミットの作業を守りたいなら、おそらく必要です。Claude Code や Codex のサンドボックスは、書き込みをプロジェクトディレクトリに限定し、ネットワークアクセスを制限します。しかし git reset --hard と rm -rf . が書き込むのはそのディレクトリの中で、git push --force の送り先は許可済みのリモートです。そのため、サンドボックスは 3 つとも通します。CC Safety Net はこれらをブロックしますが、プロセスの封じ込めやネットワークの制御はしません。主な懸念がプロンプトインジェクション、悪意のある依存関係、信頼できないコード、ネットワーク経由のデータ流出なら、サンドボックスのほうが適しています。両方を使ってください。

保護レイヤー

Claude Code のチェックポイントで、破壊的なコマンドを取り消せますか?

確実には取り消せません。2026年10月時点で、Claude Code のチェックポイントのドキュメントには、bash コマンドで変更されたファイルはチェックポイントで追跡されないとあります。巻き戻せるのは、Claude のファイル編集ツールで行った編集だけです。git reset --hard、git clean、rm はいずれも bash コマンドとして実行されるため、これらが破棄した作業は巻き戻しでは復元できません。コンテナにも同じ隙間があります。マウントした作業ツリーには実際の未コミットの作業があり、プッシュは実在のリモートに届きます。実行前にコマンドをブロックするほうが安全なレイヤーで、長期的な履歴は Git のコミットで残します。

コンテナ・VM・チェックポイント

Claude Code は既定で .env や ~/.aws/credentials の読み取りをブロックしますか?

いいえ。2026年10月時点で、Claude Code のサンドボックスのドキュメントには組み込みの資格情報の拒否リストはないと書かれており、既定の読み取りアクセスでは ~/.aws/credentials や ~/.ssh/ などのファイルも読めます。他の CLI には、ツールごとに自分で書くオプトインの拒否設定があります。CC Safety Net は、インストールした時点から .env ファイル、SSH 秘密鍵、クラウドの資格情報ストア、コーディングエージェントの認証トークンの読み取りをブロックします。対象は cat .env のようなシェルコマンドと、エージェント自身の読み取り、編集、書き込み、検索のツールです。独自の拒否パスも追加できます。

シークレット保護

CC Safety Net はコマンドをどこかに送信しますか? 無料ですか?

MIT ライセンスで公開されている無料のオープンソースです。フックはツール呼び出しをチェックするとき、ネットワークリクエストを送りません。判定は手元のマシンの ~/.cc-safety-net/logs に記録されます。ネットワークに接続するのは、自分で実行するいくつかのコマンドだけです。doctor は npm レジストリで新しいバージョンを確認し、ダッシュボードは GitHub のスター数を取得し、ルールブックの同期は GitHub からルールブックをダウンロードします。いずれも、コマンドやファイルの内容は送信しません。

プライバシーポリシー

CC Safety Net が、本当に必要なコマンドまでブロックすることはありますか? どう調整すればよいですか?

あり得ます。そのため、安全レベルを調整できるようになっています。既定の standard レベルは、認識できる破壊的なパターンをブロックし、通常のコマンドとプロジェクト内での削除は普段どおり実行させます。strict は、完全には解析できないコマンドもブロックします。paranoid では、プロジェクト内の rm -rf と、python -c や node -e のワンライナーもブロックします。npx cc-safety-net gui または policy.json で、レベルを選び、個々のルールをオン・オフできます。ワークツリーモードでは、確認済みのリンクされた Git ワークツリー内で、git reset --hard などのローカルの破棄を許可します。コマンドがブロックされた理由は npx cc-safety-net explain で確認できます。

安全レベルとワークツリーモード

CC Safety Net

Move fast. Break nothing.