Skip to main content
cc-safety-net gui を実行すると、ローカルのダッシュボードが開きます。このマシン上での判定を確認し、JSON を手で編集せずにポリシーを変更できます。何がブロックされたのか、その理由は何か、どの設定を変更できるのかを一望できます。 このページでは、ダッシュボードの機能と、元に戻せない操作を説明します。policy.json のスキーマはポリシー、rulebook の作り方はカスタムルール、監査レコードのスキーマは監査ログを参照してください。

ダッシュボードを起動する

このコマンドはダッシュボードの URL を出力し、既定のブラウザーで開きます。
ブラウザーを起動せずに URL だけを取得したい場合は、--no-open を指定します。SSH 経由での利用、コンテナ内での実行、特定のブラウザープロファイルに URL を貼り付けたい場合に便利です。
--no-open は、-h, --help を除けば唯一指定できるフラグです。それ以外の引数を渡すと、Usage: cc-safety-net gui [--no-open] を表示して 0 以外の終了コードで終了します。 ブラウザーを起動できなかった場合でも、処理自体は失敗しません。原因となったエラーに続けて Open this URL manually: <url> を出力し、サーバーはそのまま動き続けます。サーバーは Ctrl-C で停止するまでフォアグラウンドで動作します。

ローカルループバックに限定されている

このダッシュボードはホスティングされたサービスではありません。サーバーはローカルのループバックインターフェースだけで待ち受けます。
  • サーバーは、127.0.0.1 の一時ポートにのみバインドします。LAN 上の他のマシンからは接続できません。
  • 起動のたびに新しいランダムなトークンを生成し、URL に埋め込みます。すべてのリクエストにこのトークンが必要で、状態を変更するリクエストではリクエストヘッダーにもトークンが必要です。トークンのないリクエストは 403 で拒否します。
  • JSON のリクエストボディが 1 MiB を超える場合は、パースする前に 413 とエラー Request body is too large を返して拒否します。そうしなければ、ボディ全体がメモリ上に載ってしまうためです。
  • レスポンスには cache-control: no-store を設定します。
トークンは stdout に出力されるため、このコマンドを起動した人はトークンを読み取れます。ブラウザーのページが動作するのはそのためですが、同時に、cc-safety-net gui を自分で実行したエージェントも、同じトークンで保護されたエンドポイントに到達できます。後述のプロジェクトポリシーの適用も含まれます。トークンが締め出せるのは、別のページと、この 1 行を見ていないプロセスです。起動した本人は締め出せません。ただし直接の経路は塞がれたままです。エージェントがコマンドで policy.json を編集する操作や、cc-safety-net policy apply を実行する操作は、引き続き拒否されます。 ページがデータ取得のために外部へ通信することはありません。表示する内容はすべて、ローカルのポリシーファイルと監査ログから取得します。例外は、任意で有効にする更新チェックと、概要画面に表示される GitHub のスターボタンだけです。
トークンは起動のたびに変わるため、前回のセッションで保存した URL は使えません。cc-safety-net gui を実行し直して、新しい URL を取得してください。

6 つの画面

サイドバーには 6 つの画面があります。ハッシュによるルーティングを使うため、同じセッション内であればリンクやブックマークを作成できます。 認識できないハッシュを指定した場合は、概要画面にフォールバックします。連携とルールの画面は、最初に開いたときにデータを読み込みます。

概要

概要画面には、累計ではなく保持されている期間の集計が表示されます。対象は直近 7 日間です。保持期間が 7 日未満の場合は、その全期間を集計します。見出しの Last N day(s) が、実際の集計期間です。 タイル。 BlockedAnalyzed の 2 つのカウンターを表示し、それぞれに古い日から新しい日の順に並ぶ日別のスパークラインが付きます。スパークラインはそれぞれ独自の最大値を基準にするため、2 つのタイルは棒の高さで比べられません。数値のほうを見てください。 保護の状態。 安全レベルを表示し、override によって preset と異なる状態になっている場合は · Customized を付け加えます。有効なルールの数とシークレット保護の状態も表示します。このカードが反映するのは保存済みの状態だけです。ポリシー画面で変更した未保存のトグルは、保存するまで反映されません。破壊的コマンドの保護やシークレット保護が無効になっている場合、あるいは設定を読み込めずフォールバックの設定で動いている場合は、バナーが表示されます。 ヘルス表示。 検出したエージェントで hook が有効になっているか、hook のないエージェントが見つかったか、hook を持つエージェントが 1 つも見つからなかったかを示します。利用可能な更新もここに表示されます。対応が必要な場合は、連携画面へのリンクが表示されます。 ブロックの多いコマンドとルール。 タイルと同じ期間を対象に、上位 5 件を並べた 2 つのパネルです。コマンドを選ぶと、そのコマンドの形式に完全一致し、ブロックだけを対象とする絞り込みが取り外し可能なピルとして設定された状態で、アクティビティ画面が開きます。ルールを選んだ場合の遷移先は、ルールの名前空間によって変わります。custom.* のルール ID はルール画面へ、組み込みのルール ID はその ID を検索ボックスに入れた状態のアクティビティ画面へ移動します。 ガードのエラー。 対象期間内に、ポリシーではなく評価の失敗による拒否があると、ボタンに と表示されます。選ぶと、エラーによる判定だけに絞ったアクティビティ画面が開きます。これは fail closed による拒否で、CC Safety Net が解析を完了できなかったためにコマンドを拒否したものです。繰り返し発生する場合は、トラブルシューティングを参照してください。

アクティビティ

アクティビティ画面には、ローカルのログに記録されたコマンドが新しい順に表示されます。コマンドは、ログに書き込まれる前にシークレットのマスク処理を受けます。マスクの対象は認識済みの資格情報の形式だけなので、エントリにはパス、ホスト名、各種の名前が残ることがあります。この画面の内容を共有する前に、レコードのスキーマとマスクの対象範囲を監査ログで確認してください。

表示期間は保持期間から決まる

表示期間の選択肢は固定ではありません。設定した監査ログの保持期間から算出されます。候補となる 7、30、90、180、365 日のうち保持期間より短いものだけを表示し、保持期間そのものを最も広い選択肢として必ず加えます。そのため、すでに削除済みの履歴を表示できるかのように見せる選択肢は現れず、保持されているログには常に全期間アクセスできます。 どの期間も、今日を含めたローカルの暦日単位で区切られます。そのため、概要画面の日別スパークラインの合計は、表示された総数と正確に一致します。保持期間より広い期間を要求した場合は拒否されます。保持期間を短くすると、現在選択中の期間も新しい範囲内に収まるよう調整されます。保持期間の設定方法と適用のされ方は、監査ログを参照してください。

絞り込み

  • 期間:前述のとおり、保持期間から決まる選択肢です。
  • 判定のチップAllBlockedAllowed は常に表示されます。Errors は対象期間にガードのエラーがある場合、Likely false positive はヒューリスティックが候補を見つけた場合だけ表示されます。このヒューリスティックは、失敗ステージが記録された拒否か、同じセッション内で 2 回以上拒否されたコマンドの形式を候補にします。
  • エージェントのチップ:対象期間に 2 種類以上の既知のエージェントがある場合だけ表示されます。All agents のチップで選択をすべて解除できます。
  • コマンドのピル:コマンドの形式に完全一致し、ブロックだけを対象とする絞り込みです。概要画面から追加し、ここで取り外せます。
  • 検索:上部バーのボックス(Filter by rule or command)は、ルール ID とコマンド文字列を大文字・小文字を区別しない部分一致で照合します。
再読み込み後に意味をなさなくなった絞り込みは、自動的に解除されます。選択中のエージェントがなくなった場合や、対象期間にエラーや誤検知の候補がない場合は、空のリストを表示するのではなく絞り込みを解除します。

再読み込み

再読み込みのボタンは、概要とアクティビティの両方を読み込み直すため、タイルとリストの内容が食い違うことはありません。ローカルの読み込みは一瞬で終わるため、操作したことが分かるように最低限のアニメーション時間を設けています。

表示されるエントリと件数

リストに表示されるのは最大 500 件です。この上限は判定の種類ごとに分け合い、各種類には上限の半分が確保されたうえで、使われなかった分を他の種類に融通します。そのため、拒否が大量にあっても、許可されたエントリが完全に押し出されることはありません。 一方、件数の集計にはこの 500 件の上限は適用されません。チップ、タイル、上位パネルの数値は、リストに表示されるエントリとは別に、サーバー側で対象期間全体を集計した結果です。フッターには Showing X of Y entries from the last N day(s) と表示され、件数が絞られている場合は (capped at 500, newest of each decision) が加わります。 件数そのものが不足するケースが 1 つあります。監査ログの一部を読み取れなかった場合、フッターに N audit log source(s) could not be read, so this list is incomplete. が加わります。この場合は集計からもそれらのエントリが抜け落ちるため、読み取れるようになるまで、リストも件数も総数ではなく下限として扱ってください。
リストを見て結論を出す前に、フッターを読んでください。Showing 500 of 4,120 は、リストが直近の一部にすぎない一方で、チップとタイルの数値は 4,120 件すべてを反映していることを意味します。

エントリごとの操作

各エントリには、判定のバッジ(BlockedAllowedError)、エージェントのバッジ、ルール ID のチップ、相対時刻、そしてログのエントリを JSON としてコピーするボタンがあります。長いコマンドは省略表示され、Show more で展開できます。コピーされるのは監査レコードそのものです。各フィールドの意味は監査ログを参照してください。 拒否されたエントリには Report false positive があります。選ぶと、内容をあらかじめ入力した公開の GitHub Issue を用意するダイアログが開きます。送信前にコマンドとログのエントリのどちらも編集でき、プロジェクトのパスは <project>、ホームディレクトリは ~ に置き換えられます。GitHub 上で自分が送信するまで、何も送信されません。 許可されたエントリには Block this in future があります。選ぶと、ルール画面のプロンプト作成欄にそのコマンドが入力されます。ルールが自動的に作られるわけではありません。下記のルールを参照してください。

ポリシー

ポリシー画面では、CC Safety Net が何をブロックするかを設定します。この画面にあるのはすべて組み込みの保護です。安全 preset、破壊的コマンドのルール、CC Safety Net に同梱されるシークレット保護のパターンが含まれます。自作の rulebook はこれとは別の仕組みで、ここでは編集しません。 この画面が書き込むファイルのフィールドごとの仕様は、ポリシーにまとめてあります。

保存済みと未保存

編集内容はいったん下書きとして溜まり、保存したときにだけ適用されます。
  • 下書きがディスク上の内容と異なる場合、ポリシー画面に破棄保存を備えた保存バーが表示されます。
  • 他の画面の上部バーには Unsaved policy changes · Review のチップが表示され、クリックするとこの画面に移動します。
  • 下書きは、同じブラウザーセッション内であれば再読み込みしても残ります。保存、破棄、修復、リセットのいずれかを行うと消えます。
  • 未保存の変更がある状態でページを離れようとすると、確認を求められます。
保存するとポリシーファイルを書き込み、そのパスを表示します。ディスク上のポリシーにエラーがある間は、フォームにファイルの値は表示されません。ランタイムがディスクから救済している有効な値は使われず、すべての項目に組み込みの既定値が表示されます。実際のファイルの内容を確認できるのは、生の JSON を表示するミラーだけです。この状態では Repair policy before saving changes. と表示して保存を拒否するため、画面上の既定値でファイルを上書きしてしまうことはありません。先にポリシーを修復してから保存してください。修復後は、残せた設定を使ってフォームを読み込み直します。

プロジェクトポリシーを下書きする

画面上部の Draft project policy を押すと、ポリシー画面全体がプロジェクトファイルの下書きに切り替わります。下書きバーには書き込み先のパスと、そのファイルが従う原則が表示されます。Only the fields you mark are written here; everything else keeps inheriting from each member's own policy. Exit draft を押すと、自分のポリシーの編集に戻ります。OS 標準のディレクトリ選択が使える場合は Change… が表示され、確認に同意すると現在の下書きを破棄して別のディレクトリを対象にします。変更しないかぎり、対象はダッシュボードを起動したディレクトリです。 マークと継承。 各コントロールには、表示している値の出どころを示すチップが付きます。Inherited は、そのフィールドをプロジェクトファイルに書かず、各メンバーが自分の値を使い続けるという意味です。Set by project は下書きがそのフィールドを書き込むという意味で、チップをクリックすると継承に戻ります。コントロールを編集すると、そのフィールドがマークされます。マークされたパスのリストにはプロジェクト自身の項目だけが表示されるため、マークした直後は空の状態から始まります。自分の個人的なパスがリポジトリに公開されることはありません。 確認して適用する。 SaveReview & apply に変わります。押すとサーバーに差分を要求し、Apply this project policy? のダイアログを開きます。ダイアログには書き込み先のパスと、実効ポリシーの変更前後を並べた Setting / Now / After の表が表示されます。片側にフィールドがない場合は (unset) になります。差分がなければ、表の代わりに No change to the effective policy. と表示されます。表の下には、下書きがユーザーポリシーに対して緩和するフィールドごとに 1 行ずつ警告が並びます。文言はポリシーに記載のものと同じです。ディスク上の既存ファイルが読み取れない場合は、The existing project policy file is invalid and will be replaced. も加わります。既定でフォーカスされるのは Cancel です。 差分の読み込み中にフォームを編集すると、Error: the draft changed while the review was loading. Review it again. と表示され、確認をやり直すことになります。別のタブがプロジェクトのディレクトリを変更した場合は、新しい対象で下書きを読み込み直し、適用前にもう一度確認するよう求めます。 下書きを開始できない場合。 ユーザーポリシーにエラーがあると、ランタイムはそれを保護的な既定値に切り替えます。その値をもとに下書きを作ると、既定値がチームの継承元であるかのように見えてしまいます。そのためダッシュボードは下書きの開始を拒否し、診断メッセージとともに Error: repair your user policy before drafting a project policy. と表示します。プロジェクトファイルが存在するのに読み取れない場合は扱いが異なります。下書きは空の状態で始まり、そのファイルの診断メッセージをフォームの上に表示します。 CLI と同じ保証。 この下書きは、cc-safety-net policy checkcc-safety-net policy apply をフォームにしたものです。書き込むのは、設定したフィールドだけを持つ同じファイルです。差分もランタイムの同じユーザーベースラインに対して取り、確認するまで何も書き込みません。ファイルの仕様と 2 つのスコープのマージ規則は、ポリシーを参照してください。 違いは 1 つだけあります。エージェントが実行した cc-safety-net policy apply は、ガードが intent hard_stop で拒否します。CC Safety Net が強制する設定の書き換えは、ユーザー本人が行う必要があるからです。ダッシュボードの適用も同じく人間の操作で、セッショントークンを持つ人だけが開けるページで自分でクリックします。ただしローカルループバックに限定されているで述べたとおり、ダッシュボードを起動したエージェントもそのトークンを持っています。

コマンドを試す

コマンドのテストにシェルコマンドを貼り付けると、ブロックされるかどうかを確認できます。判定は現在の未保存の編集内容に対して行われるため、変更を確定する前に効果を確かめられます。 プロジェクトの下書き中は、ランタイムが実際に読み込む内容、つまり継承元のベースラインに下書きがマークしたフィールドを重ねたものを評価します。パスのリストは、自分の項目と下書きの項目を合わせた和集合として扱います。ローダーも同じように和集合を取るためです。この画面の保護状況の表示とルールごとのステータス行も同じ評価結果を使うため、マークしたパスのリストが画面上で空に見えても、自分のパスが保護されていないかのように表示されることはありません。 ダッシュボードから rulebook は編集できませんが、このテストではディスクから読み込んだカスタム rulebook のルールも適用されます。組み込みの層だけでなく、実際の判定結果のプレビューとして使えます。ターミナルで同じ解析を行う方法は、explainを参照してください。

安全 preset

この画面では、StandardStrictParanoid の 3 つの安全 preset を選べます。これらを継承元の既定値として、作業環境に合わせて調整できます。後の preset ほど厳格です。各 preset と機能の正確な動作は、モードを参照してください。 保護を強める環境変数が設定されている場合は、その旨が表示されます。表示されているレベルより実際の動作が厳しい理由が分かるようにするためです。既定で折りたたまれている Advanced overrides では、preset から解決された個別の機能(fail closed、paranoid の rm -rf チェック、paranoid interpreters)を確認できます。preset を変えずに、それぞれを上げ下げすることもできます。ワークフローに関する例外は、安全レベルとは別に設定します。

破壊的コマンドの保護

最初にマスタースイッチがあり、その下にルールが 4 つの折りたたみ可能な階層に分かれています。 どの階層も、最初は折りたたまれた状態です。ポリシー画面で検索すると、一致した階層が自動的に開きます。Always enforced の階層には、スイッチもルールごとのチェックボックスもありません。ヘッダーにはルール数が N protections と表示され、各ルールは ? の例示ポップオーバーで Always enforced と示されます。 設定可能な 3 つの階層では、All <tier> protections というラベルの階層スイッチの隣に、ヘッダーで N on · N off の件数が表示されます。このスイッチは、階層内のルールが 1 つでもオンであればオンの状態になり、マスタースイッチがオフの間は操作できません。切り替えると、個々のチェックボックスと同じルール単位の override をまとめて書き込みます。最終的に継承された値と一致するルールには override が残らないため、グループ単位の設定が別途保存されることはありません。 マスタースイッチがオンの間、パネルの概要には N active, N disabled と表示されます。オフにすると、Configurable protection disabled. Catastrophic protections remain active; saved rule settings and allow paths are preserved. に置き換わります。その状態でも、Always enforced の階層はブロックを続けます。 設定可能な各ルールのカードには、ブロックされるコマンドの具体例を示す ? のポップオーバーと、現在の値がどこから来ているかを示す状態表示があります。たとえば と表示される場合は、override ではなくマスタースイッチが優先されています。 ルールを切り替えると、明示的な on または off の override が保存されます。継承値に戻すと、override 自体が削除されます。各ルールの Use inherited setting で継承値に戻せます。パネル上部の Restore defaults を使うと、すべての override を一度に削除できます。 allow path もこのパネルにあります。ここに挙げたパスを対象とする再帰削除はブロックされません。たとえば /tmp を使えるようにする設定です。各項目は絶対パスのディレクトリか ~/ で始まるディレクトリである必要があり、ホームディレクトリそのものは拒否されます。検証ルールの一覧は Allow path、allow path が緩和する範囲と緩和しない範囲は許可されるコマンドを参照してください。

シークレット保護

マスタースイッチと、パターンごとのチェックボックスがあります。既定の機密パス、資格情報のベース名や拡張子とその派生形、Coding CLI credentialCoding CLI config をカテゴリ別に表示します。各カテゴリのヘッダーは、N on · N off を表示する折りたたみボタンです。その隣に All <category> protections というグループスイッチがあります。動作は、破壊的コマンド側の階層スイッチと同じです。グループ内のルールが 1 つでもオンなら、スイッチもオンになります。マスタースイッチがオフの間は操作できません。切り替えると、ルール単位の override をまとめて書き込みます。グループは最初は折りたたまれていますが、ポリシー画面で検索すると自動で開きます。 リテラルのファイルパスを保護するルールには、そのルールが対象とするパスを正確に列挙する 保護されたパス のポップオーバーを開く ? ボタンが付いています。 すべてのルールが既定でオンになっているわけではありません。Coding CLI config のルールは既定でオフです。設定ファイルや MCP 設定ファイルには資格情報が直接書かれることがある一方、エージェントが通常の作業で編集するファイルでもあるため、ルールごとに明示的に有効化する形にしています。チェックボックスは、ルールの既定値から外れたときにだけ override を保存します。既定がオフのルールをチェックすると on の override が書き込まれ、チェックを外すと override が削除されます。逆に既定がオンのルールは、チェックを外すと off が書き込まれ、再びチェックすると override が削除されます。 マスタースイッチがオンの間、パネルの概要には N active, N disabled と表示されます。オフの場合は Protection disabled. Saved rule settings and deny paths are preserved. と表示されます。保存済みのシークレットの allow path も、下書きに保持されます。 deny path もこのパネルにあります。シークレット保護が有効な間は、設定したパスとその配下をすべてブロックします。deny path はマスタースイッチに依存するため、シークレット保護を無効にすると適用されなくなります。指定できる形式はポリシーを参照してください。 allow path もこのパネルにあります。特定のファイルやディレクトリツリーを、組み込みのパターンルールから除外できます。ただし deny path と Coding CLI の保護は引き続き適用されます。ダッシュボードは、各項目を下書きに追加する前に検証し、glob パターン、ホームディレクトリを含むパス、ガード自身の設定は拒否します。優先順位と検証ルールの詳細は、Secret allow pathを参照してください。

ポリシー JSON

Policy JSON のパネルは、この画面のいちばん下にあります。コピーボタン付きの読み取り専用のミラーで、2 つ目のエディターではありません。何を表示しているかは、パネルの説明文でわかります。

確認が求められる操作

ルールの切り替え、preset の変更、パスの追加・削除は下書きに保存され、Save でまとめて適用されます。個別の確認はありません。確認ダイアログが出るのは、保護を弱める操作か、設定を破棄する操作だけです。 これらのダイアログでは、既定でキャンセル側にフォーカスが当たります。
破壊的コマンドの保護やシークレット保護をオフにすると、再びオンにするまで、その層の設定可能なルールが一度にすべて無効になります。ブロックを続けるのは、常時有効な破壊的コマンドの階層だけです。マスタースイッチを切るより、個々のルールの override や、より低い preset の選択を優先してください。

修復

ディスク上のポリシーファイルにエラーがあると、Repair ボタン付きのポリシー修復が利用可能というバナーが表示されます。修復すると正規の JSON が書き込まれます。有効な設定は保持し、無効なフィールドは破棄します。JSON をパースできない場合は、既定値を書き戻します。読み込んだポリシーにエラーがなければ、このボタンは無効です。
修復すると無効なフィールドは破棄され、ファイルをパースできない場合は既定値に戻ります。手書きで書いた重要な設定がファイルに含まれている場合は、修復する前に安全な場所へコピーしておいてください。

リセット

リセットは、意図的にこの画面には置いていません。設定画面の Danger zone にあります。

ルール

ルール画面では、ユーザーが作成したカスタム rulebook を扱います。ポリシー画面の組み込み保護とは別です。rulebook の形式、スコープ、override、検証はカスタムルールを参照してください。
ルール画面は rulebook のエディターではありません。CC Safety Net がダッシュボードから rulebook を書き込むことはありません。この画面の役割は、実際に適用されているルールを読み取り専用で表示することと、rulebook を作成させるためにコーディングエージェントへ渡すプロンプト文を生成することです。

rulebook のパネル(読み取り専用)

各 rulebook のカードには、名前、バージョンのバッジ、名前と異なる場合は設定元の指定、スコープ(All projects または This project)、ルール数が表示されます。 ルールは、override 適用後の状態で一覧表示されます。override で無効になったルールは rulebook に残りますが、ルール一覧には表示されません。この画面が示すのは、ファイルの内容そのものではなく、実際に有効な rulebook です。再読み込みボタンを押すと、ディスクから読み込み直します。 rulebook を 1 つも設定していない場合、パネルには cc-safety-net rule init が案内されます。rulebook はあるもののすべて破棄されている場合は、その状態を示して診断パネルへ誘導します。

診断

報告すべき内容がない場合、診断パネルは表示されません。エラーがある場合は、rulebook が破棄され、そのルールが適用されていないことを示します。作ったルールが効かないときは、まずここを確認してください。

プロンプト作成欄(コピーのみ)

この欄は、コーディングエージェントに渡すプロンプトを生成します。実行できる操作は Copy prompt だけです。画面には作成・保存・書き込みの操作はなく、rulebook を書き込むためのサーバー側の処理も存在しません。 次の項目を入力します。
  • スコープProject または All projects
  • プロジェクトのパス:プロジェクトスコープのときだけ表示され、ダッシュボードを起動したディレクトリがあらかじめ入力されます。OS 標準のディレクトリ選択が使える場合、この欄は読み取り専用になり Choose… ボタンが表示されます。実行環境で選択画面が使えない場合は、代わりに欄が編集可能になります。
  • 要望:どんなルールが欲しいかを記述します。ルールが照合するのは、ファイルパスやパターンではなく、コマンド、そのサブコマンドの並び、正確な引数です。
  • :ルールの提案、コマンドのブロック、既存ルールの確認を 1 クリックで始められるサンプルです。
生成されるプロンプトは、cc-safety-net の skill を使うようエージェントに指示します。その skill が使えない場合は、先に npx -y cc-safety-net rule doc を実行し、その出力をスキーマ・パス・検証の正として扱うよう指示します。スコープ、プロジェクトのパス、既存の rulebook の名前を含むため、エージェントはまだ使われていない名前を選べます。プロンプトに含めるのは、意図的に rulebook の名前だけです。ルール名、ブロック対象の引数、理由、バージョンは文面に含まれず、このマシンの外に出ることはありません。 ルールがまだ読み込まれていない場合、要望が空の場合、プロジェクトスコープなのにパスが未指定の場合は、コピーが拒否され、その理由が表示されます。

連携

連携画面では、このマシン上の各コーディングエージェントについて、CC Safety Net の hook をインストールまたは削除します。Agents のパネルには、検出した CLI と hook の状態が表示されます。各エージェントの接続方式は連携アーキテクチャ、GUI を使わない場合の手順はインストールを参照してください。 Not inspected には、This runtime's state file could not be read, so its status is unknown. というツールチップが表示されます。CLI 自体は見つかっているため、インストールの操作は引き続き提示されます。 表示される操作は検出結果によって変わります。CLI が見つからない場合は、hook を入れる対象がないためボタンを表示しません。インストールとアンインストールは順番に実行し、同時には処理しません。処理中はボタンが無効になります。失敗すると、Install failed または Uninstall failed と表示されます。 再読み込みボタンを押すと、すべてのエージェントを検出し直します。CLI をインストールした後や、エージェントの設定を手作業で編集した後に必要な操作です。その下の System パネルには、CC Safety Net のバージョン、Node.js のバージョン、検出されたプラットフォームが表示されます。

設定

設定画面には、外観、ファイルの場所、メンテナンスの項目があります。 外観。 テーマの切り替えは Auto → Light → Dark の順に切り替わります。この設定はポリシーではなく、このブラウザーに保存されます。 ファイル。 CC Safety Net がこのマシン上で読み書きする場所を、読み取り専用の行で表示します。対象は、ポリシーファイルと監査ログのディレクトリです。プロジェクトポリシーが効いている場合は、その 2 行の間に Project policy の行が現れ、行の下には Merged on top of this file: で始まる通知として、そのファイルが変える内容が並びます。 監査ログの保持期間。 監査レコードを保持する日数です。指定範囲、記録内容、スイープの挙動は監査ログを参照してください。ポリシー画面と異なり、保持期間は変更した時点で保存されます。保存バーは表示されません。ポリシー画面に未保存の変更がある間は変更できないため、先に保存または破棄してください。保持期間はユーザースコープ専用の設定のため、プロジェクトポリシーの下書き中も変更できません。ディスク上のポリシーにエラーがあっても、この項目は無効になりません。その状態ではフォームが既定値を保持しています。保持期間を変更すると、既定値だけのファイルに新しい保持期間を加えた内容で上書きされます。先にポリシーを修復してください。
保持期間の短縮は元に戻せません。新しい期間より古い監査エントリは次回のスイープで削除され、復元できません。アクティビティ画面で確認できる範囲も、新しい期間までになります。ダッシュボードは短縮前に確認を求め、削除対象のログディレクトリを表示します。必要なエントリは先に保存してください。各エントリは、アクティビティ画面から JSON としてコピーできます。
バージョン。 実行中の CC Safety Net のバージョンを示す、読み取り専用の 1 行です。 Danger zone。 操作は 1 つだけで、ポリシーのリセットです。設定されたパスに既定のポリシー JSON を書き戻します。
リセットすると、保存済みの設定は破棄されます。preset の選択、ルールの override、allow path、deny path はすべて既定に戻り、元には戻せません。影響を受けるのはポリシーファイルだけで、カスタム rulebook は別のファイルなので影響を受けません。
ポリシーファイルのスキーマはポリシー、rulebook の作り方はカスタムルール、監査ログの形式と保持の挙動は監査ログgui を含むすべてのコマンドは CLI コマンドを参照してください。
最終更新日 2026年9月3日