メインコンテンツへスキップ
failproofai ダッシュボードは、AIエージェントセッションの監視とポリシー管理のためのローカルWebアプリケーションです。不在中にエージェントが行ったことを確認できます。

ダッシュボードの起動

failproofai
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.yamlCOPILOT_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>.jsonlPI_SESSIONS_DIR で設定可能)配下のセッションごとの JSONL トランスクリプトをスキャンし、各セッションの最初のレコードから cwd を取得して検出されます。Gemini CLIプロジェクトは ~/.gemini/tmp/<basename>/chats/session-<timestamp>-<uuid-prefix>.jsonlGEMINI_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 ドキュメントが取得されます。

ポリシー

ポリシーの管理とアクティビティの確認のための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 にページ名をカンマ区切りで設定してください:
FAILPROOFAI_DISABLE_PAGES=policies failproofai
有効な値: policiesprojects

プロジェクトパスの設定

デフォルトでは、ダッシュボードは標準の Claude Code プロジェクトディレクトリから読み取ります。カスタム設定の場合は上書きしてください:
CLAUDE_PROJECTS_PATH=/custom/path/to/projects failproofai

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

devモードnpm run dev)でダッシュボードを実行し、localhost 以外のホスト名(カスタムドメイン、リモートIP、トンネルURLなど)からアクセスすると、次のような警告が表示されることがあります:
⚠ Blocked cross-origin request to Next.js dev resource /_next/webpack-hmr from "dashboard.example.com".
これは Next.js がHMR(ホットモジュールリロード)WebSocketへのクロスオリジンアクセスをブロックしているもので、dev専用の機能です。自分のホストを許可するには --allowed-origins フラグを使用してください:
npm run dev -- --allowed-origins dashboard.example.com
複数のホストやIPを許可するには、カンマ区切りのリストで渡してください:
npm run dev -- --allowed-origins dashboard.example.com,192.168.1.5
代わりに環境変数 FAILPROOFAI_ALLOWED_DEV_ORIGINS を設定することもできます:
FAILPROOFAI_ALLOWED_DEV_ORIGINS=dashboard.example.com npm run dev
これはdevモードにのみ適用されます。failproofai(本番モード)を実行している場合、HMR WebSocketもクロスオリジンdevリソースの問題も発生しません。