npx -y cc-safety-net@latest install --copilot-cli を実行すると、Copilot CLI 自身のプラグインマーケットプレイスのコマンドで cc-safety-net@cc-marketplace プラグインがインストールされます。プラグインが無効になっていた場合は、~/.copilot/settings.json で有効にします。Copilot CLI はプラグインを再起動後にしか読み込まないため、最後に Copilot CLI を再起動してください。
GitHub Copilot CLI に CC Safety Net をインストールする
1
インストーラーを実行する
2
Copilot CLI を再起動する
プラグインを読み込むため、Copilot CLI を再起動します。
3
プラグインが有効か確認する
GitHub Copilot CLI のインストールで変わること
cc-marketplaceマーケットプレイスが未登録であれば追加します。cc-safety-net@cc-marketplaceプラグインをインストールします。- プラグインが明示的に無効化されていた場合は、
~/.copilot/settings.jsonのenabledPluginsでプラグインをtrueにします。
GitHub Copilot CLI のフックが検査する内容
プラグインのフックは、Copilot CLI のpreToolUse イベントで動作します。bash と powershell のツール呼び出しはシェルコマンドとして解析し、その他のツールについては入力に保護対象のパスが含まれていないかを検査します。
フックを手動で追加する場合、Copilot CLI が対応しているかどうかはバージョンによって異なります。設定ファイル内のインラインフック定義には 1.0.8 以降、ユーザーフックファイルには 0.0.422 以降が必要です。doctor は、検出したバージョンと、そのバージョンが対応しているフックの取得元を報告します。
GitHub Copilot CLI のチェックが失敗したときの動作
フックがクラッシュした場合、0 以外の終了コードで終了した場合、起動できない場合、GitHub Copilot CLI はツール呼び出しをブロックします。既定の 30 秒でタイムアウトした場合や、不正な出力を返した場合は、その呼び出しはそのまま実行されます。GitHub Copilot CLI から CC Safety Net をアンインストールする
GitHub Copilot CLI のトラブルシューティング
doctor は、プラグインと、手動で追加した CC Safety Net のフックの両方を確認します。COPILOT_HOME の既定は ~/.copilot です。
手動で追加したフック
doctor は、次のいずれかのファイルにある CC Safety Net のフックを数えます。優先度の高い順に並べています。
<repo>/.github/copilot/settings.local.json<repo>/.github/copilot/settings.json<repo>/.claude/settings.local.json<repo>/.claude/settings.json$COPILOT_HOME/settings.json- フックファイル
<repo>/.github/hooks/*.jsonと$COPILOT_HOME/hooks/*.json
.claude のファイルにあるエントリは、コマンドに hook --copilot-cli または hook -cp を含む場合だけ数えます。Claude Code 用のフックだけでは数えません。
フックファイルや設定のエントリがまだ CC Safety Net のフックを実行している場合、doctor はプラグインが無効でも、それを hook config という方式で報告します。
フックまたはプラグインがオフになっている
- リポジトリの設定ファイルで
disableAllHooks: trueを指定すると、そのリポジトリでは CC Safety Net がプラグインも含めてオフになります。 $COPILOT_HOME/settings.jsonのdisableAllHooks: trueがオフにするのは、そのファイル自身のインラインフックだけです。フックファイルとプラグインは動き続けます。- 自身の
disableAllHooksをtrueにしているフックファイルは数えません。他のフックファイルは引き続き数えます。 enabledPluginsのcc-safety-net@cc-marketplaceは、最初にそれを設定しているリポジトリの設定ファイルが$COPILOT_HOME/settings.jsonより優先されます。ユーザー側がfalseでも、リポジトリ側がtrueなら再び有効になります。