Pular para o conteúdo principal
O dashboard do failproofai é uma aplicação web local para monitorar suas sessões de agentes de IA e gerenciar políticas. Veja o que seus agentes fizeram enquanto você estava ausente.

Iniciando o dashboard

failproofai
Abre em http://localhost:8020. O dashboard lê diretamente do sistema de arquivos — suas pastas de projetos do Claude Code e os arquivos de configuração do failproofai. Nada é gravado em um serviço remoto.

Páginas

Projetos

Lista todos os projetos Claude Code, OpenAI Codex, GitHub Copilot CLI (beta), Cursor Agent (beta), OpenCode (beta), Pi (beta) e Gemini CLI (beta) encontrados na sua máquina. Projetos Claude são descobertos a partir de ~/.claude/projects/ (ou do caminho definido por CLAUDE_PROJECTS_PATH); projetos Codex são descobertos escaneando todas as transcrições em ~/.codex/sessions/<YYYY>/<MM>/<DD>/*.jsonl e agrupando pelo cwd registrado no primeiro registro de cada sessão; projetos Copilot CLI são descobertos escaneando cada ~/.copilot/session-state/<sessionId>/workspace.yaml (configurável via COPILOT_HOME) e agrupando pelo seu campo cwd; projetos Cursor Agent são descobertos escaneando os metadados por sessão em ~/.cursor/agent-sessions/<sessionId>/ (configurável via CURSOR_HOME, com conversations/ e sessions/ verificados como alternativas) para um escalar cwd em meta.json / session.json / workspace.yaml; projetos OpenCode são descobertos consultando seu banco SQLite em ~/.local/share/opencode/opencode.db via opencode db --format json (lemos as tabelas session e project e agrupamos por project_id); projetos Pi são descobertos escaneando transcrições JSONL por sessão em ~/.pi/agent/sessions/<encoded-cwd>/<timestamp>_<uuid>.jsonl (configurável via PI_SESSIONS_DIR) e extraindo o cwd do primeiro registro de cada sessão; projetos Gemini CLI são descobertos escaneando ~/.gemini/tmp/<basename>/chats/session-<timestamp>-<uuid-prefix>.jsonl (configurável via GEMINI_SESSIONS_DIR) e recuperando o cwd canônico a partir do marcador de texto .project_root adjacente. Um projeto utilizado por múltiplas CLIs é exibido como uma única linha com todos os badges correspondentes. Use o menu suspenso CLI acima da tabela para filtrar por um agente CLI específico; a URL preserva sua seleção como ?cli=claude|codex|copilot|cursor|opencode|pi|gemini. Cada projeto exibe:
  • Nome do projeto (derivado do caminho da pasta)
  • Um badge de CLI — Claude Code (laranja), OpenAI Codex (roxo), GitHub Copilot (azul), Cursor Agent (esmeralda), OpenCode (âmbar), Pi (rosa) e/ou Gemini CLI (azul-céu)
  • Data da atividade mais recente da sessão
Clique em um projeto para ver suas sessões.

Sessões

Lista todas as sessões dentro de um projeto. Cada sessão exibe:
  • ID da sessão
  • Timestamps de início e fim
  • Número de chamadas de ferramentas
  • Contagem de atividade de hooks (políticas que foram acionadas)
Use o filtro de intervalo de datas e a busca por ID de sessão para refinar a lista. As sessões são paginadas. Clique em uma sessão para abrir o visualizador de sessão.

Visualizador de sessão

O visualizador de sessão responde à pergunta-chave para agentes autônomos: o que o agente fez e ele se manteve no caminho certo? Um badge de CLI ao lado do cabeçalho indica se a sessão é uma transcrição do Claude Code, OpenAI Codex, GitHub Copilot CLI, Cursor Agent, OpenCode, Pi ou Gemini CLI. Ele exibe uma linha do tempo de tudo o que aconteceu em uma sessão:
  • Mensagens - Respostas de texto do Claude e prompts do usuário
  • Chamadas de ferramentas - Cada ferramenta que Claude invocou, com sua entrada e saída
  • Atividade de políticas - Para cada chamada de ferramenta, quais políticas foram acionadas e qual decisão retornaram
A barra de estatísticas no topo exibe a duração da sessão, total de chamadas de ferramentas e um resumo das decisões de hook (contagens de allow / deny / instruct). Clique no botão Download Logs para exportar a sessão. Para sessões do Claude Code, Codex, Copilot, Cursor, Pi e Gemini, você obtém a transcrição JSONL original em disco byte a byte; para OpenCode (cujas sessões ficam no SQLite, não em disco) você obtém um documento JSON espelhando as tabelas session / messages / parts subjacentes.

Políticas

Uma página com duas abas para gerenciar políticas e revisar atividades.
  • Selecione múltiplas CLIs de agentes que o failproofai protege a partir de um único painel — Claude Code, OpenAI Codex, GitHub Copilot, Cursor Agent, OpenCode, Pi e Gemini CLI têm uma linha com status de instalação (Active / Detected / Inactive), o caminho de configurações do escopo do usuário e um destaque colorido por marca. Marque ou desmarque as CLIs desejadas e clique em Apply changes para instalar/desinstalar as diferenças em uma etapa. CLIs cujo binário é detectado no PATH são marcadas automaticamente.
  • Ative ou desative políticas individuais com um único clique (grava em ~/.failproofai/policies-config.json — compartilhado entre todas as CLIs instaladas)
  • Expanda uma política para configurar seus parâmetros (para políticas que suportam policyParams)
  • Defina um caminho personalizado para o arquivo de políticas

Atualização automática

O dashboard possui um botão de atualização automática na navegação superior. Quando ativado, a página atual é atualizada periodicamente para exibir novas sessões e atividades de políticas à medida que aparecem. Essencial para monitorar sessões de agentes autônomos de longa duração.

Desativando páginas

Se você precisar apenas de algumas partes do dashboard, defina FAILPROOFAI_DISABLE_PAGES com uma lista separada por vírgulas de nomes de páginas:
FAILPROOFAI_DISABLE_PAGES=policies failproofai
Valores válidos: policies, projects.

Configurando o caminho dos projetos

Por padrão, o dashboard lê do diretório padrão de projetos do Claude Code. Substitua-o para configurações personalizadas:
CLAUDE_PROJECTS_PATH=/custom/path/to/projects failproofai

Acessando a partir de um host diferente de localhost

Ao executar o dashboard em modo de desenvolvimento (npm run dev) e acessá-lo a partir de um hostname diferente de localhost — por exemplo, um domínio personalizado, um IP remoto ou uma URL tunelada — você pode ver um aviso como:
⚠ Blocked cross-origin request to Next.js dev resource /_next/webpack-hmr from "dashboard.example.com".
Isso é o Next.js bloqueando o acesso de origem cruzada ao seu websocket de HMR (hot module reload), que é um recurso exclusivo do modo de desenvolvimento. Para permitir seu host, use a flag --allowed-origins:
npm run dev -- --allowed-origins dashboard.example.com
Para múltiplos hosts ou IPs, passe uma lista separada por vírgulas:
npm run dev -- --allowed-origins dashboard.example.com,192.168.1.5
Você também pode definir a variável de ambiente FAILPROOFAI_ALLOWED_DEV_ORIGINS em vez disso:
FAILPROOFAI_ALLOWED_DEV_ORIGINS=dashboard.example.com npm run dev
Isso se aplica apenas ao modo de desenvolvimento. Ao executar failproofai (modo de produção), não há websocket de HMR nem problema de recurso de desenvolvimento de origem cruzada.