ダッシュボードの起動
http://localhost:8020 で開きます。
ダッシュボードはファイルシステムから直接読み取ります — Claude Code のプロジェクトフォルダと failproofai の設定ファイルを参照します。リモートサービスへの書き込みは一切行いません。
ページ
プロジェクト
マシン上で見つかったすべての Claude Code、OpenAI Codex、GitHub Copilot CLI (beta)、Cursor Agent (beta)、OpenCode (beta)、Pi (beta)、および Gemini CLI (beta) プロジェクトを一覧表示します。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 ドキュメントが取得されます。
ポリシー
ポリシーの管理とアクティビティの確認のための2タブページです。- ポリシータブ
- アクティビティタブ
- 単一パネルから 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。
プロジェクトパスの設定
デフォルトでは、ダッシュボードは標準の Claude Code プロジェクトディレクトリから読み取ります。カスタム設定の場合は上書きしてください:localhost 以外のホストからのアクセス
devモード(npm run dev)でダッシュボードを実行し、localhost 以外のホスト名(カスタムドメイン、リモートIP、トンネルURLなど)からアクセスすると、次のような警告が表示されることがあります:
--allowed-origins フラグを使用してください:
FAILPROOFAI_ALLOWED_DEV_ORIGINS を設定することもできます:
これはdevモードにのみ適用されます。
failproofai(本番モード)を実行している場合、HMR WebSocketもクロスオリジンdevリソースの問題も発生しません。
