AI エージェント が実行 する前 に、破壊 的 なコマンド をブロック。
CC Safety Net は、Claude Code、Codex、Cursor などの AI コーディングエージェント向けの実行前フックです。破壊的な git/ファイルシステムコマンドとシークレットファイルの読み取りを、実行前にブロックします。ガイドラインを守るかどうかを、エージェント任せにはしません。
- 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: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 つ でインストール
インストーラーがこのマシン上のコーディングエージェントを見つけ、選んだエージェントにフックを組み込みます。
よくある質問
エージェントにリポジトリを触らせる前に、開発者がよく尋ねることをまとめました。
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 ライセンスで公開されています。サンドボックスではありません。
Claude Code、Codex、Cursor が git reset --hard や rm -rf を実行 しない よう にする に は、どう す れ ばよい です か?
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 をすでにブロック し てい ま せん か?
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 のコミットで残します。
Claude Code は既定 で .env や ~/.aws/credentials の読み取り をブロック し ます か?
.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
