> ## Documentation Index
> Fetch the complete documentation index at: https://exosphere-auto-translate-docs-20260623-1106.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# ダッシュボード

> エージェントセッションの監視、ツール呼び出しの確認、ポリシーの管理

failproofai ダッシュボードは、AIエージェントセッションの監視とポリシー管理を行うローカルWebアプリケーションです。あなたが離れている間にエージェントが何をしていたかを確認できます。

***

## ダッシュボードの起動

```bash theme={null}
failproofai
```

`http://localhost:8020` で開きます。

ダッシュボードはファイルシステムから直接読み取ります。Claude Code のプロジェクトフォルダーと failproofai の設定ファイルを参照しており、リモートサービスへの書き込みは一切行いません。

***

## ページ一覧

### プロジェクト

マシン上で見つかった Claude Code、OpenAI Codex、GitHub Copilot CLI *(ベータ)*、Cursor Agent *(ベータ)*、OpenCode *(ベータ)*、Pi *(ベータ)*、Gemini CLI *(ベータ)* のすべてのプロジェクトを一覧表示します。Claudeプロジェクトは `~/.claude/projects/`（または `CLAUDE_PROJECTS_PATH` で設定されたパス）から検出されます。Codexプロジェクトは `~/.codex/sessions/<YYYY>/<MM>/<DD>/*.jsonl` 以下のすべてのトランスクリプトをスキャンし、各セッションの最初のレコードに記録された `cwd` でグループ化して検出されます。Copilot CLI プロジェクトは各 `~/.copilot/session-state/<sessionId>/workspace.yaml`（`COPILOT_HOME` で設定可能）をスキャンし、その `cwd` フィールドでグループ化して検出されます。Cursor Agent プロジェクトは `~/.cursor/agent-sessions/<sessionId>/`（`CURSOR_HOME` で設定可能。フォールバックとして `conversations/` と `sessions/` も確認）以下のセッションごとのメタデータから `meta.json` / `session.json` / `workspace.yaml` の `cwd` スカラーを読み取って検出されます。OpenCode プロジェクトは `~/.local/share/opencode/opencode.db` の SQLite DB を `opencode db --format json` 経由でクエリし（`session` テーブルと `project` テーブルを読み取り `project_id` でグループ化）して検出されます。Pi プロジェクトは `~/.pi/agent/sessions/<encoded-cwd>/<timestamp>_<uuid>.jsonl`（`PI_SESSIONS_DIR` で設定可能）以下のセッションごとの JSONL トランスクリプトをスキャンし、各セッションの最初のレコードから `cwd` を取得して検出されます。Gemini CLI プロジェクトは `~/.gemini/tmp/<basename>/chats/session-<timestamp>-<uuid-prefix>.jsonl`（`GEMINI_SESSIONS_DIR` で設定可能）をスキャンし、隣接する `.project_root` テキストマーカーから正規の cwd を復元して検出されます。複数の CLI で使用されたプロジェクトは、すべての一致するバッジを持つ単一の行として表示されます。テーブル上部の **CLI** ドロップダウンで特定のエージェント CLI に絞り込めます。URLには選択内容が `?cli=claude|codex|copilot|cursor|opencode|pi|gemini` として保持されます。

各プロジェクトには以下が表示されます：

* プロジェクト名（フォルダーパスから導出）
* CLI バッジ — `Claude Code`（オレンジ）、`OpenAI Codex`（パープル）、`GitHub Copilot`（ブルー）、`Cursor Agent`（エメラルド）、`OpenCode`（アンバー）、`Pi`（ピンク）、`Gemini CLI`（スカイ）
* 最新セッションアクティビティの日付

プロジェクトをクリックするとそのセッション一覧が表示されます。

### セッション

プロジェクト内のすべてのセッションを一覧表示します。各セッションには以下が表示されます：

* セッション ID
* 開始・終了タイムスタンプ
* ツール呼び出し回数
* フックアクティビティ数（発火したポリシーの数）

日付範囲フィルターとセッション ID 検索で絞り込みができます。セッションはページネーションされています。

セッションをクリックするとセッションビューアーが開きます。

### セッションビューアー

セッションビューアーは、自律型エージェントにとって重要な問いに答えます：エージェントは何をしたのか、そして想定通りに動作していたのか？ヘッダーの横の CLI バッジが、セッションが Claude Code、OpenAI Codex、GitHub Copilot CLI、Cursor Agent、OpenCode、Pi、Gemini CLI のどのトランスクリプトかを示します。セッション内で起きたことのタイムラインが表示されます：

* **メッセージ** — Claudeのテキスト応答とユーザープロンプト
* **ツール呼び出し** — Claudeが呼び出したすべてのツールとその入力・出力
* **ポリシーアクティビティ** — 各ツール呼び出しに対して、どのポリシーが発火しどの判断が返されたか

上部のスタッツバーにはセッション時間、合計ツール呼び出し数、フック判断のサマリー（allow / deny / instruct の件数）が表示されます。

**ログをダウンロード** ボタンをクリックするとセッションをエクスポートできます。Claude Code、Codex、Copilot、Cursor、Pi、Gemini のセッションはディスク上の元の JSONL トランスクリプトがバイト単位でそのまま取得されます。OpenCode（セッションがディスクではなく SQLite に保存される）では、`session` / `messages` / `parts` テーブルのデータを反映した JSON ドキュメントが取得されます。

### 監査

過去のセッション全体にわたるエージェントの実際の挙動を個性的なレポートとして表示します。`failproofai audit` CLI と同じスキャンを実行しますが、単一画面の共有可能なポスターと折り畳み以降の4つのセクションとしてレンダリングされます：

1. **ポスター** — 最初のビューポートを埋めます。failproof\_ai ワードマーク＋監査ラベル・アーキタイプインデックス（`№ NN of 08`）＋監査日・数値スコア（0〜100）＋パーセンタイルランクピル（`top 15%`）・アーキタイプ名（`the optimist`、`the cowboy`、`the explorer`、`the goldfish`、`the paranoid architect`、`the precision builder`、`the hammer`、`the ghost` のいずれか）＋3キーワードストリップ・`// only N% of agents are this archetype` レアリティ行・8×8ピクセルシジルタイル・`audit yours → failproof.ai` フッターを含む自己完結型 PNG キャプチャ領域。キャプチャボックスのすぐ外に3つのシェアボタンがあります：`post your archetype`（X インテント）、`share on linkedin`、`download poster`。キャプチャは `html-to-image` で実行されるため、PNG は画面表示とピクセル単位で一致します（破線ボーダー、SVG ロゴマスク、グラデーション、フォントメトリクスもすべて保持されます）。
2. **強み** — 監査データから導出された、エージェントがすでに正しく行っている動作の落ち着いた ✓ 行リスト（クリーンなツール呼び出し率、メインへの直接プッシュなし、認証情報の漏洩なし、リトライストームなし）— 関連するポリシーが監査ウィンドウ全体でクリーンな記録を持つ場合にのみ表示されます。
3. **クセ** — 深刻度順にランク付けされた問題点のテーブル：`いつ・何が漏れた＋それを検知するはずのポリシー・深刻度ピル・検出回数`。再発回数は `new`（1回）、`N× seen`（2〜9回）、`recurring`（10回以上）と表示されます。
4. **改善方法** — 推奨ポリシーごとの落ち着いた行リスト：ポリシー名を白文字で、1行の説明、右側にインストールコマンド＋コピーボタン。セクションヘッダーには `enable all N → projected <score> · <tier>`（すべての修正を適用した場合に到達するスコア）が表示され、`[install all]` ボタンは推奨されるすべてのポリシーをまとめた `failproofai policy add a b c …` コマンドをコピーします。
5. **次回はもっとよく** — 2つの横並びカード。左：リマインダーの設定（`3d` / `7d` / `14d` / `30d` のケイデンスピッカー。認証後に `/api/auth/reminder` 経由で保存されます）。右：failproof の特典を解除 — `invite a friend` はカンマ・スペース・改行区切りの友人のメールアドレスリスト（1回の送信で最大10件）を入力するモーダルを開き、`/api/audit/invite` に POST します。api-server の `POST /v0/invite` に転送され、`invite@failproof.ai` から受信者1人ずつにメールが送信されます。送信者は CC され `Reply-To` が設定されるため、受信者は誰が招待したかがわかり、送信者も受信トレイにコピーが届きます。匿名ユーザーは先に `AuthDialog` を経由するため、招待送信前に送信者のメールアドレスが確認されます。エンタイトルメント／特典のフルフィルメントは今後対応予定です。

`failproofai audit` ランタイムで動作します。基盤となるスキャンエンジン、サポートされるフラグ、トランスクリプトごとのキャッシュの動作については [Audit CLI](/ja/cli/audit) を参照してください。ダッシュボードは最新の結果を `~/.failproofai/audit-dashboard.json`（モード `0600`、単一スロット、新しい実行で上書き）にキャッシュするため、再訪問は即時に表示されます。**トランスクリプトごとのキャッシュと結果全体のキャッシュはいずれも、7日を超えると読み取り時に拒否されます**。そのため、ダッシュボードが1週間前の古い結果を無音で提供することはありません。TTL を過ぎると `/audit` は空の状態にフォールスルーして再実行を促します。レポート下部の `[ re-audit now ]` をクリックすると `noCache: true` で `/api/audit/run` に POST されます。再監査はトランスクリプトごとのキャッシュをバイパスし、キャッシュ結果を返すのではなくすべてのトランスクリプトを最初からスキャンし直します。ダッシュボードは実行が完了するまで 1Hz で `/api/audit/status` をポーリングし、実行中はビューポート上部にスティッキーなピンクの進行状況バーと経過タイマーが表示されます。成功すると新しい結果がその場で差し替えられます（フルページリロードなし。再監査が失敗した場合は以前のレポートがそのまま残ります）。失敗時はバーが赤くなり、`RerunError.kind`（`timeout` / `network` / `post_failed`）に応じたメッセージが表示されます。空の状態（キャッシュなしまたは期限切れ）とセッションなしの状態（キャッシュは存在するがスキャンでトランスクリプトが見つからなかった）は別々に表示されます。

### ポリシー

ポリシーの管理とアクティビティの確認を行う2タブのページです。

<Tabs>
  <Tab title="ポリシータブ">
    * 単一のパネルから failproofai が保護するエージェント CLI を複数選択できます — Claude Code、OpenAI Codex、GitHub Copilot、Cursor Agent、OpenCode、Pi、Gemini CLI それぞれの行にインストール状態（`Active` / `Detected` / `Inactive`）、ユーザースコープの設定パス、ブランドカラーのアクセントが表示されます。有効にしたい CLI にチェックを入れ、`Apply changes` をクリックすると差分が一括でインストール／アンインストールされます。PATH 上でバイナリが検出された CLI は事前にチェックされています。
    * 個々のポリシーをクリック一つでオン／オフに切り替えられます（`~/.failproofai/policies-config.json` に書き込まれ、インストール済みのすべての CLI で共有されます）
    * ポリシーを展開してパラメーターを設定できます（`policyParams` をサポートするポリシーのみ）
    * カスタムポリシーファイルのパスを設定できます
  </Tab>

  <Tab title="アクティビティタブ">
    * すべてのセッションにわたって発火したすべてのフックイベントのフルページネーション履歴
    * 判断、イベントタイプ、CLI（Claude Code / OpenAI Codex / GitHub Copilot *(ベータ)* / Cursor Agent *(ベータ)* / OpenCode *(ベータ)* / Pi *(ベータ)* / Gemini CLI *(ベータ)*）、ポリシー名、セッション ID でフィルタリング可能
    * 各行には：タイムスタンプ、ポリシー名、判断、CLI バッジ（オレンジ = Claude Code、パープル = OpenAI Codex、ブルー = GitHub Copilot、エメラルド = Cursor Agent、アンバー = OpenCode、ピンク = Pi、スカイ = Gemini CLI）、ツール名、セッション ID、deny／instruct 判断の理由が表示されます
    * セッション ID をクリックするとそのトランスクリプトが開きます — ビューアーはフックを発火した CLI（Claude `~/.claude/projects/…`、Codex `~/.codex/sessions/…`、Copilot CLI `~/.copilot/session-state/<id>/events.jsonl`、Cursor Agent `~/.cursor/agent-sessions/<id>/events.jsonl`、OpenCode `~/.local/share/opencode/opencode.db`、Pi `~/.pi/agent/sessions/<encoded-cwd>/<id>.jsonl`、Gemini CLI `~/.gemini/tmp/<basename>/chats/<session>.jsonl`）を自動検出し、ヘッダーに対応する CLI バッジを表示します
  </Tab>
</Tabs>

***

## 自動更新

ダッシュボードの上部ナビゲーションには自動更新トグルがあります。有効にすると、現在のページが定期的に更新され、新しいセッションやポリシーアクティビティが表示されます。長時間動作する自律型エージェントセッションの監視に不可欠です。

***

## ページの無効化

ダッシュボードの一部のみ必要な場合は、`FAILPROOFAI_DISABLE_PAGES` にカンマ区切りのページ名リストを設定します：

```bash theme={null}
FAILPROOFAI_DISABLE_PAGES=policies failproofai
```

有効な値：`policies`、`projects`、`audit`。

***

## プロジェクトパスの設定

デフォルトでは、ダッシュボードは標準の Claude Code プロジェクトディレクトリから読み取ります。カスタム設定の場合は上書きできます：

```bash theme={null}
CLAUDE_PROJECTS_PATH=/custom/path/to/projects failproofai
```

***

## localhost 以外のホストからのアクセス

**開発モード**（`npm run dev`）でダッシュボードを実行し、`localhost` 以外のホスト名（カスタムドメイン、リモート IP、トンネル URL など）からアクセスすると、次のような警告が表示されることがあります：

```text theme={null}
⚠ Blocked cross-origin request to Next.js dev resource /_next/webpack-hmr from "dashboard.example.com".
```

これは、開発専用機能である HMR（ホットモジュールリロード）WebSocket へのクロスオリジンアクセスを Next.js がブロックしているためです。ホストを許可するには `--allowed-origins` フラグを使用します：

```bash theme={null}
npm run dev -- --allowed-origins dashboard.example.com
```

複数のホストや IP を許可する場合は、カンマ区切りのリストで指定します：

```bash theme={null}
npm run dev -- --allowed-origins dashboard.example.com,192.168.1.5
```

環境変数 `FAILPROOFAI_ALLOWED_DEV_ORIGINS` を設定することもできます：

```bash theme={null}
FAILPROOFAI_ALLOWED_DEV_ORIGINS=dashboard.example.com npm run dev
```

<Note>
  これは開発モードにのみ適用されます。`failproofai`（本番モード）を実行する場合、HMR WebSocket は存在せず、クロスオリジン開発リソースの問題も発生しません。
</Note>
