npx -y cc-safety-net@latest install --kimi-code を実行し、2 つの方法から 1 つを選びます。インストーラーに ~/.kimi-code/config.toml へグローバルフックを書き込ませるか、Kimi Code 内からネイティブプラグインをインストールします。どちらもすべてのツール呼び出しに同じチェックを行い、どちらが有効かは npx cc-safety-net doctor で確認できます。どちらの方法でも、Kimi Code のフックはフェイルオープンです。
Kimi Code に CC Safety Net をインストールする
ターミナルでinstall --kimi-code または対話式インストーラーを実行すると、グローバルフックを今すぐインストールするか、ネイティブプラグインの手順を表示するかを尋ねられます。プラグインを選んだ場合は何も書き込みません。CI などターミナル以外で実行すると、このフラグは確認なしでグローバルフックをインストールします。
- グローバルフック
- ネイティブプラグイン
1
インストーラーを実行する
2
フックが有効か確認する
Kimi Code のグローバルフックのインストールで変わること
インストーラーは、~/.kimi-code/config.toml に [[hooks]] ブロックを書き込みます。KIMI_CODE_HOME が設定されている場合は $KIMI_CODE_HOME/config.toml です。このブロックは、PreToolUse の呼び出しのたびに npx -y cc-safety-net hook --kimi-code を実行します。
Kimi Code のフックが検査する内容
グローバルフックとプラグインは、すべてのツール呼び出しに同じチェックを行います。Bash の呼び出しはシェルコマンドとして解析し、その他のツールについては入力に保護対象のパスが含まれていないかを検査します。
Kimi Code のチェックが失敗したときの動作
Kimi Code のフックはフェイルオープンです。どちらの方法でも、フックのプロセスが起動できない、クラッシュする、タイムアウトするといった場合は、ツール呼び出しがそのまま実行されます。また、hooks のエントリが 1 つでも不正だと、Kimi Code はconfig.toml のフックをすべて無視します。Kimi Code の不正な hooks エントリを参照してください。
Kimi Code での保護範囲の制限
kimi web と ACP のセッションでは、Kimi Code はペイロードの cwd として、セッション自身のディレクトリではなくサーバーを起動したディレクトリを送ります。そのため、これらのセッションでは、CC Safety Net はすべての Bash 呼び出しをサーバーの起動ディレクトリを基準に検査します。
- 相対パスの解決と、作業ディレクトリの外のパスに関するルールの判定が、誤ったディレクトリを基準に行われます。その結果、安全なコマンドをブロックしたり、本来ブロックすべきコマンドを許可したりすることがあります。
- セッションのディレクトリがサーバーの起動ディレクトリの外にある場合、そのディレクトリを指定した
cwd引数をフックは拒否します。
kimi セッションには影響しません。この問題は、Kimi Code がセッションのディレクトリを送るようにならない限り解消できません。
グローバルフックからネイティブプラグインへ移行する
先にプラグインをインストールして有効になったことを確認し、その後でグローバルフックを削除します。Kimi Code の CC Safety Net を更新する
update はグローバルフックを更新しますが、ネイティブプラグインは更新しません。プラグインについては次のメッセージを表示します。
Kimi Code から CC Safety Net をアンインストールする
Kimi Code のトラブルシューティング
Kimi Code の不正な hooks エントリ
hooks のエントリが 1 つでもスキーマに違反していると、Kimi Code はconfig.toml のフックをすべて無視します。そのため doctor は CC Safety Net のエントリに限らず、すべての [[hooks]] エントリを検査し、不正なエントリごとに次のエラーを表示します。
<n> は 1 から数えたエントリの番号です。<problem> は次のいずれかです。
Kimi Code のプラグインがインストール済みだが有効になっていない
doctor は、Kimi のホームディレクトリ($KIMI_CODE_HOME または ~/.kimi-code)の plugins にある installed.json からプラグインの記録を読みます。記録が有効になっていない場合は、次のように表示します。
/plugins enable cc-safety-net を実行してください。doctor がこのファイルを読み取れない場合は、Cannot read <path>, so doctor cannot tell whether the Kimi Code plugin is installed と表示し、終了コード 1 で終了します。