ダッシュボードの起動
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
- 開始・終了タイムスタンプ
- ツール呼び出し回数
- フックアクティビティ件数(発動したポリシー数)
セッションビューアー
セッションビューアーは、自律エージェントに関する核心的な問いに答えます:エージェントは何をしたのか、そして正しく動作し続けたのか?ヘッダー横の CLI バッジは、そのセッションが Claude Code、OpenAI Codex、GitHub Copilot CLI、Cursor Agent、OpenCode、Pi、Gemini CLI のどのトランスクリプトであるかを示します。セッション内で起きたすべての出来事をタイムラインで表示します:- メッセージ — Claude のテキスト応答とユーザーのプロンプト
- ツール呼び出し — Claude が実行したすべてのツールと、その入力・出力
- ポリシーアクティビティ — 各ツール呼び出しに対して、どのポリシーが発動し、どの決定を返したか
session / messages / parts テーブルを反映した JSON ドキュメントが取得されます。
監査
過去のセッションを通じてエージェントが実際にどのような動作をしていたかを、個性的なレポートとして表示します。failproofai audit CLI と同じスキャンを実行し、6セクションのダッシュボードとしてレンダリングします:
- Identity — 発動したディテクターとポリシー、その頻度に基づいて、エージェントを8つのアーキタイプ(
the optimist、the cowboy、the explorer、the goldfish、the paranoid architect、the precision builder、the hammer、the ghost)のいずれかに分類します。8×8ピクセルのシジル、アーキタイプのタグライン、「common in」/「primary risk」のフレーミング、締めくくりの一文が表示されます。 - Show off your agent — X / LinkedIn への投稿に適した 1200×630 PNG としてアイデンティティカードをキャプチャします(
make posterをクリック)。 - Strengths — エージェントがすでに正しく行っている動作をグリーンチェックで表示します。ライブ監査データから導出(クリーンなツール呼び出し率、平均セッション長、認証情報漏洩ゼロ、リトライストームゼロなど)。
- Score + leaderboard — 0〜100 のスコアとレターグレード(S/A/B/C/D/F)、コホート内での位置を示す分布ヒストグラム、プローズ説明(「B は 71 点から。あと 13 点足りません。」)、自分の行がハイライトされたリーダーボードテーブルを表示します。
- Findings — インパクト順にランク付けされた各検出結果のカード。発生した内容、そのコスト、実際に取得したコマンドを含むエビデンスサンプル、同じパターンを検出できる failproofai ポリシー(
$ failproof policy add <slug>、クリックでコピー)が表示されます。 - Prescribed policies + return loop — スコア予測の吹き出しとともに、ギャップを埋める未有効化の組み込みポリシーのグリッド、および「7日後に再監査」の CTA が表示されます。
failproofai audit ランタイムによって駆動されます — 基盤となるスキャンエンジン、サポートされるフラグ、トランスクリプトごとのキャッシュ不変条件については Audit CLI を参照してください。ダッシュボードは最新の結果を ~/.failproofai/audit-dashboard.json(モード 0600、単一スロット、新しい実行で上書き)にキャッシュするため、再訪問は即時表示されます。[ Re-run ↻ ] をクリックすると /api/audit/run に POST し、ダッシュボードは実行完了まで 1Hz で /api/audit/status をポーリングします。空の状態(キャッシュなし)とゼロセッション状態(キャッシュはあるがスキャンでトランスクリプトが見つからなかった)は個別に表示されます。
ポリシー
ポリシーの管理とアクティビティの確認のための2タブページです。- Policies タブ
- Activity タブ
- 単一パネルから 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をサポートするポリシーの場合) - カスタムポリシーファイルのパスを設定できます
自動更新
ダッシュボードのトップナビゲーションには自動更新のトグルがあります。有効にすると、現在のページが定期的に更新され、新しいセッションやポリシーアクティビティが表示されます。長時間実行される自律エージェントセッションの監視に欠かせない機能です。ページの無効化
ダッシュボードの一部のみ必要な場合は、FAILPROOFAI_DISABLE_PAGES にページ名のカンマ区切りリストを設定してください:
policies、projects、audit。
プロジェクトパスの設定
デフォルトでは、ダッシュボードは標準の Claude Code プロジェクトディレクトリから読み取ります。カスタムセットアップの場合はオーバーライドできます:localhost 以外のホストからのアクセス
開発モード(npm run dev)でダッシュボードを実行し、localhost 以外のホスト名(カスタムドメイン、リモート IP、トンネル URL など)からアクセスする場合、次のような警告が表示されることがあります:
--allowed-origins フラグを使用してください:
FAILPROOFAI_ALLOWED_DEV_ORIGINS を使用することもできます:
これは開発モードにのみ適用されます。
failproofai(本番モード)を実行している場合、HMR WebSocket もクロスオリジン開発リソースの問題も発生しません。
