대시보드 시작하기
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 프로젝트는 opencode db --format json을 통해 ~/.local/share/opencode/opencode.db의 SQLite DB를 쿼리하여 검색됩니다(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가 보호할 에이전트 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가 아닌 호스트에서 접근하기
개발 모드(npm run dev)로 대시보드를 실행하면서 localhost가 아닌 호스트(예: 커스텀 도메인, 원격 IP, 터널 URL)로 접근하면 다음과 같은 경고가 표시될 수 있습니다:
--allowed-origins 플래그를 사용하세요:
FAILPROOFAI_ALLOWED_DEV_ORIGINS를 설정하는 방법도 있습니다:
이 설정은 개발 모드에만 적용됩니다.
failproofai(프로덕션 모드)를 실행할 때는 HMR 웹소켓이 없으므로 크로스 오리진 개발 리소스 문제가 발생하지 않습니다.
