Skip to main content
CC Safety Net は、コーディングエージェント内のプラグイン、拡張機能、または hook として動作します。常駐サービスや daemon は不要です。一部の連携は、確認ごとに短時間だけ動作する hook subprocess を開始します。 多くの連携は Windows、macOS、Linux で動作します。path 処理とコマンド解決のために host OS を検出します。Windows では、大文字と小文字を区別しない path、および COMSPECPATHEXT による cmd.exe または PowerShell の解決を含みます。install コマンドと対話式 installer は、npm が Windows で .cmd shim としてインストールする agent CLI も解決するため、install --codex などのコマンドはそれらを見つけられます。 Hermes AgentOpenClaw の連携は、macOS と Linux だけで動作します。POSIX home directory path の ~/.hermes~/.openclaw を使用し、Windows path をサポートしません。 開始前に Node.js 18 以降をインストールしてください。例では npx を使用して CLI subcommand を実行します。 1 つの連携をインストールするには cc-safety-net install <target-flag>、削除するには cc-safety-net uninstall <target-flag>、すべてを更新するには cc-safety-net update を使います。

対話形式でインストールする

対象 flag なしで installer を実行すると、マシンで検出したコーディング CLI の対話式 multi-select が開きます。 選択画面では、Space で対象を選択し、Enter で確定します。u は代わりにすべてのインストール済み連携を更新し、q または Esc は変更せず終了します。@latest qualifier は重要です。qualifier なしの cc-safety-net spec は、現在の release ではなく npx cache にある以前の copy を再実行する場合があります。そのため、このページのすべての install、uninstall、update コマンドは version を固定します。 同じ形式でアンインストールできます。
CLI を頻繁に使う場合は、グローバルにインストールすると、同じコマンド用の短い alias ccsn を使えます。
この alias は global install に含まれます。npx で実行する場合は完全な cc-safety-net 名を使用します。

インストール済み連携を更新する

update は、無効な連携を含むマシン上のインストール済み連携を検出し、各連携の install path を update mode で再実行します。対象の agent CLI が見つからない連携は skipped と報告します。何もインストールされていない場合は、先に cc-safety-net install を実行するよう表示します。対話式 installer で u を押すと、同じ update を実行します。 update は major version 間の upgrade path でもあります。v1 のインストールで実行すると、すべてのインストール済み連携を現在の v2 release に移行します。v1 の inline 設定でカスタムルールを定義していた場合は、以前の設定の移行を完了してください。その後、npx cc-safety-net doctor で runtime が ready であることを確認します。

特定のエージェントをインストールする

script による非対話式 install では、対象 flag を正確に 1 つ渡します。対象 flag が 0 個または複数の場合は error です。対話式 terminal で対象 flag を渡さない場合、installer selector が始まります。 すべての install コマンドは冪等です。すでに設定済みのエージェントに再実行しても安全であり、管理対象の項目は 1 つだけ残ります。

Amp Code

管理対象プラグイン artifact を、アカウントの hosted Amp Personal Plugins repository に cc-safety-net.ts として publish します。personal plugin はアカウントに従ってどこでも有効になるため、Amp Orb などの remote マシンで実行する thread も保護します。 install には amp CLI とサインイン済みのアカウントが必要です。最初に amp plugins repositories --json を実行して、書き込み可能な Personal Plugins repository を見つけます。CLI がない場合やサインインしていない場合は、amp login を示して install を停止します。次に user-plugins を使い捨ての一時 checkout に clone し、cc-safety-net.ts を書き込み、tool identity の cc-safety-net で commit し(commit signing は無効にするため、global git 設定が install を止めることはありません)、push します。コマンドを再実行すると、publish 済み artifact をその場で更新します。 install は、user policy file の snapshot も publish する artifact に埋め込みます。runtime では、policy file がないマシン(例えば Orb の空の home directory)だけに snapshot を適用します。マシンに policy file があれば、無効なものであっても常に優先します。policy file が存在しないか parse できない場合は、snapshot なしの artifact を publish します。snapshot には audit retention、user rulebook、project scope の policy は含まれません。policy の編集は、次の install --amp または update で反映されます。
uninstall は、同じ commit と push の流れで personal repository から cc-safety-net.ts を削除します。
install、update、uninstall 後は、変更を有効にするため Amp を再起動するか plugins: reload を実行してください。
personal repository 内の cc-safety-net.ts が symlink、regular file 以外、または CC Safety Net managed header がないファイルの場合、install と uninstall はどちらも変更を拒否します。repository 側でファイルを削除してから、コマンドを再実行してください。 以前の release は、plugin を local file の ~/.config/amp/plugins/cc-safety-net.ts にコピーしていました。残った local エントリは personal plugin を隠すため、install は publish 後に管理対象の local copy を削除します。local エントリが管理対象の copy ではない場合、install は次のエラーで失敗します。
uninstall も管理対象の local copy を削除しますが、管理対象ではない local エントリはそのまま残します。

Antigravity CLI

~/.gemini/config/hooks.json に管理対象 PreToolUse 項目を書き込み、各 run_command tool call で npx -y cc-safety-net hook --agy-cli を実行します。 hook は npx で動作するため、install は最初に npm cache の _npx directory から cache 済みの cc-safety-net copy を削除し、hook が現在の release を解決できるようにします。場所は $npm_config_cache が設定されていればその path、未設定なら macOS と Linux では ~/.npm、Windows では %LOCALAPPDATA%\npm-cache です。uninstall は cache を変更しません。
Antigravity CLI 内で対話形式にルールを作成するには、任意で /cc-safety-net skill をインストールします。

Claude Code

kenryu42/cc-marketplace から cc-marketplace marketplace を追加し、cc-safety-net@cc-marketplace plugin をインストールします。無効な copy がすでにある場合は有効にします。
自動更新を有効にする CC Safety Net を自動で最新に保つには、Claude Code 内で /plugin を実行し、Marketplaces に移動し、cc-marketplace を選択して auto-update を有効にします。
plugin は共有 Coding CLI hook の cc-safety-net hook --coding-cli(短い flag は -cc)を呼び出します。これは正規の flag 名であり、Codex plugin と共有します。hook --claude-code は以前の alias としてだけ使用できます。新しい設定では使用しないでください。

Codex

kenryu42/cc-marketplace から cc-marketplace marketplace を追加し、cc-safety-net@cc-marketplace plugin をインストールします。 hook を信頼する Codex は信頼されていない hook を実行しません。Codex を起動し、/hooks を開き、cc-safety-net PreToolUse hook を選択して t を押し、信頼済みにします。
信頼した後も hook が動作しない場合は、~/.codex/config.toml(または $CODEX_HOME/config.toml)で plugin hook support が有効であることを確認してください。

Cursor

グローバルな ~/.cursor/hooks.json の管理対象 preToolUse エントリに次を書き込みます。
設定は global であるため、すべてのプロジェクトにある Cursor IDE と Cursor CLI の session を保護します。failClosed により、hook が判定を返せない場合はツール呼び出しを拒否します。 hook は npx で動作するため、install は最初に npm _npx cache から cache 済みの cc-safety-net copy を消去し、hook が現在の release を解決できるようにします。uninstall は cache を変更しません。cache の場所は、Antigravity CLI の節にあります。

Gemini CLI

Gemini Safety Net extension を https://github.com/kenryu42/gemini-safety-net からインストールします。無効な copy がすでにある場合は再度有効にします。Gemini CLI は cc-marketplace plugin ではありません。extension は extension id gemini-safety-net を持つ独自の repository にあります。
extension と hook を読み込むため、install 後に Gemini CLI を再起動するか、新しい session を開始してください。

GitHub Copilot CLI

未登録の場合は cc-marketplace marketplace を追加し、cc-safety-net@cc-marketplace plugin をインストールします。~/.copilot/settings.jsonenabledPlugins で明示的に無効であれば true に変更します。
変更を有効にするため、plugin の install または削除後に Copilot CLI を再起動してください。
Copilot CLI の hook support には version 条件があります。Copilot 設定ファイル内の inline hook definition には Copilot CLI 1.0.8 以降、~/.copilot/hooks 内の user hook file には 0.0.422 以降が必要です。plugin がこれを処理します。hook を手動で設定して問題が発生した場合は、npx cc-safety-net doctor を実行してください。検出した Copilot version と、対応する hook source を報告します。

Hermes Agent

管理対象 Python plugin の __init__.pyplugin.yaml$HERMES_HOME/plugins/cc-safety-net/HERMES_HOME が未設定の場合は ~/.hermes/plugins/cc-safety-net/)に書き込み、hermes plugins enable cc-safety-net --no-allow-tool-override を実行します。ファイルだけでは動作しません。Hermes は自身の設定に有効と記載された user plugin だけを読み込むため、ファイルが最新の場合も install は enable コマンドを実行します。 plugin は npx を介して subprocess を実行するため、install は最初に npm _npx cache から cache 済みの cc-safety-net copy を消去します。uninstall は cache を変更しません。cache の場所は、Antigravity CLI の節にあります。
変更を有効にするため、install、update、uninstall 後に Hermes を再起動してください。
pre_tool_call で、plugin は JSON stdin を使って tool call を npx -y cc-safety-net hook --hermes-agent(短い flag は -ha)に送り、30 秒で timeout します。terminalread_filewrite_filepatch tool を保護します。その他の Hermes tool は転送しません。plugin は fail-closed です。npx がない、解析を開始できない、timeout する、non-zero で終了する、または読めない出力を返す場合、tool call を通過させず、明示的なメッセージでブロックします。
uninstall は、plugin file を削除するhermes plugins disable cc-safety-net を実行します。Hermes は disk 上に残る plugin だけを解決し、有効な設定項目が残ると、同じ名前の将来の plugin を自動的に読み込むためです。hermes CLI が失敗するか存在しない場合も file は削除し、Hermes config に cc-safety-net が残っている可能性があることを warning で示します。uninstall は Python __pycache__ bytecode directory も削除し、他に何も残っていない場合だけ plugin directory を削除します。 plugin directory が symlink または regular directory ではない場合、install と uninstall は変更を拒否します。また、managed file が symlink、regular file 以外、または CC Safety Net managed header がない場合、上書きまたは削除を拒否します。自身で移動または削除してから、コマンドを再実行してください。 この連携は macOS と Linux だけに対応します。

Kimi Code

Kimi Code には 2 つのインストール方法があります。Kimi Code の config に書き込む global hook と、Kimi Code 内からインストールする native Kimi Code plugin です。対話式 terminal では、install --kimi-code(または対話式 installer での Kimi Code の選択)は、どちらの方法を使うかを尋ねる single-select prompt を開きます。global hook を今インストールするか、native plugin の手順を表示するかを選びます。非対話式 session では、flag は global hook を直接インストールするため、script や CI pipeline が prompt で止まることはありません。update は変わりません。
どちらの方法でも Kimi Code hook は fail-open です。hook process が開始できない、crash する、または timeout する場合、Kimi Code は tool call を許可します。
Global hook
~/.kimi-code/config.toml(または $KIMI_CODE_HOME/config.toml)に [[hooks]] block を書き込み、各 PreToolUse Bash call で npx -y cc-safety-net hook --kimi-code を実行します。 hook は npx で動作するため、install は最初に npm _npx cache から cache 済みの cc-safety-net copy を消去します。uninstall は cache を変更しません。cache の場所は、Antigravity CLI の節にあります。
Native plugin 代わりに native plugin を使うには、Kimi Code 内で次を実行します。
trust prompt を確認します。デフォルトは cancel です。その後、/reload を実行するか、新しい session を開始します。plugin は、node ./dist/bin/cc-safety-net.js hook --kimi-code を 30 秒の timeout で実行する PreToolUse Bash hook を 1 つ宣言します。global hook と同じ adapter です。 global hook がすでに設定済みの場合、対話式 installer の Kimi Code 行は選択可能なままで、(global hook installed) と表示されます。また、表示される plugin の手順に注意書きが追加されます。cc-safety-net uninstall --kimi-code は、plugin が有効になったにだけ実行してください。両方の hook が動作する短い重複は拒否メッセージが重複するだけですが、どちらも有効でない期間は保護されません。 Kimi Code 内で対話形式にルールを作成するには、任意で /cc-safety-net skill をインストールします。

OpenClaw

OpenClaw 自身の CLI で plugin をインストールします。npm package 内に含まれる plugin directory を使って openclaw plugins install <packaged plugin dir> --force を実行し、続けて openclaw plugins enable cc-safety-net を実行します。その後、openclaw plugins inspect cc-safety-net --runtime --json で plugin が実際に読み込まれたことを確認します。runtime が壊れた有効な plugin は正常にインストールされた後に保護しないため、loaded 以外の status は install を失敗させ、詳細確認用の openclaw plugins inspect cc-safety-net --runtime を示します。 --forcecc-safety-net extension id の対象を上書きし、uninstall 時に削除するため、両方のコマンドは extension directory が CC Safety Net managed plugin だけを含むか、空であることを最初に確認します。それ以外の場合は実行を拒否します。directory を移動または削除してから、コマンドを再実行してください。
変更を有効にするため、install、update、uninstall 後に OpenClaw Gateway を再起動してください。openclaw.jsonplugins.allow がある場合、cc-safety-net も記載する必要があります。allowlist にない場合、有効でも plugin は読み込まれません。
OpenClaw は CC Safety Net を hook subprocess ではなく process 内 plugin として読み込むため、runtime hook flag はありません。plugin は exec tool だけの before_tool_call handler を登録し、OpenClaw の file tool は保護しません。各 exec call は agent の workspace directory に対して解析します。workspace を解決できない場合、workdir が workspace 外に解決される場合、または autogateway 以外の execution host(例えば sandbox または node)を指定する場合は fail-closed です。 OpenClaw の state directory は、OPENCLAW_STATE_DIR が設定されていればその directory、そうでなければ OPENCLAW_CONFIG_PATH を含む directory、どちらもなければ ~/.openclaw です。config file は、OPENCLAW_CONFIG_PATH が設定されていればその file、そうでなければ state directory 内の openclaw.json です。install と doctor は同じ順序で path を解決するため、移動した OpenClaw install を absent と誤報しません。 この連携は macOS と Linux だけに対応します。

OpenCode

OpenCode は古い cache 済み plugin version を提供し続ける場合があります。そのため、install コマンドは opencode plugin -g -f cc-safety-net@latest を実行する前に、必ず ~/.cache/opencode/packages/cc-safety-net@latest を消去します。
uninstall は ~/.config/opencode/opencode.json(または .jsonc)の plugin array から cc-safety-net を削除し、cache package をもう一度消去します。 更新済み cache から plugin を読み込むため、install または update 後に OpenCode を再起動してください。

Pi

pi install npm:cc-safety-net を実行します。Pi 設定が CC Safety Net を無効にする extensions filter を固定している場合、~/.pi/agent/settings.json でその filter を消去します。
Pi は CC Safety Net を hook subprocess ではなく process 内 extension として読み込みます。extension は bash tool とカスタム Shell tool(例えば pi-grok-cli)をインターセプトし、各 call の作業ディレクトリを解決し、rulebook 管理用の /cc-safety-net builtin command を登録します。詳細は、連携アーキテクチャを参照してください。

以前のプラグイン ID から移行する

該当するすべての場所で、現在の plugin identifier は cc-safety-net@cc-marketplace です。以前の release にあった 2 つの identifier が既存のマシンに残る場合があります。 手動で削除する必要はありません。エージェント用の通常の install コマンドを実行すると、その一部として移行します。新しい設定では以前の identifier を使用しないでください。

インストールを確認する

doctor は、すべての対応エージェントについて完全な health check を実行します。hook 連携、ブロック機能を確認するセルフテスト、カスタムルールの検証、有効な mode flag、最近の activity、system version、update check が対象です。各チェックの動作と使用できる flag については、doctor コマンドのリファレンスを参照してください。 失敗したチェックには、問題の説明と推奨される修正が表示されます。
最終更新日 2026年8月12日