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 projeto 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 em sua máquina. Os projetos Claude são descobertos a partir de ~/.claude/projects/ (ou do caminho definido por CLAUDE_PROJECTS_PATH); os projetos Codex são descobertos varrendo cada transcrição em ~/.codex/sessions/<YYYY>/<MM>/<DD>/*.jsonl e agrupando pelo cwd registrado no primeiro registro de cada sessão; os projetos Copilot CLI são descobertos varrendo cada ~/.copilot/session-state/<sessionId>/workspace.yaml (configurável via COPILOT_HOME) e agrupando pelo campo cwd; os projetos Cursor Agent são descobertos varrendo metadados por sessão em ~/.cursor/agent-sessions/<sessionId>/ (configurável via CURSOR_HOME, com conversations/ e sessions/ verificados como alternativas) em busca de um escalar cwd em meta.json / session.json / workspace.yaml; os 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); os projetos Pi são descobertos varrendo 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; os projetos Gemini CLI são descobertos varrendo ~/.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 na mesma pasta. Um projeto utilizado por múltiplos CLIs é exibido como uma única linha com todos os badges correspondentes. Use o menu 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 (verde-esmeralda), OpenCode (âmbar), Pi (rosa) e/ou Gemini CLI (azul-céu)
  • Data da atividade de sessão mais recente
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 hook (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 central para agentes autônomos: o que o agente fez e ele permaneceu no caminho certo? Um badge de CLI ao lado do cabeçalho indica se a sessão é uma transcrição de Claude Code, OpenAI Codex, GitHub Copilot CLI, Cursor Agent, OpenCode, Pi ou Gemini CLI. Ele exibe uma linha do tempo de tudo que aconteceu em uma sessão:
  • Mensagens - Respostas de texto do Claude e prompts do usuário
  • Chamadas de ferramentas - Cada ferramenta invocada pelo Claude, 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 de 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 residem no SQLite, não em disco), você obtém um documento JSON espelhando as tabelas session / messages / parts subjacentes.

Auditoria

Um relatório orientado por personalidade de como seu agente realmente se comportou em sessões anteriores. Executa a mesma varredura do CLI failproofai audit, mas a renderiza como um dashboard de seis seções:
  1. Identidade — classifica seu agente em um dos 8 arquétipos (the optimist, the cowboy, the explorer, the goldfish, the paranoid architect, the precision builder, the hammer, the ghost) com base em quais detectores e políticas foram acionados e com que intensidade. Renderiza um sigilo de 8×8 pixels, o slogan do arquétipo, enquadramento “comum em” / “risco principal” e a frase final.
  2. Exiba seu agente — captura o cartão de identidade como um PNG de 1200×630 adequado para publicar no X / LinkedIn (clique em make poster).
  3. Pontos fortes — comportamentos marcados em verde que seu agente já faz corretamente, derivados dos dados de auditoria em tempo real (taxa de chamadas de ferramentas limpas, duração média de sessão, zero vazamentos de credenciais, zero tempestades de retry, etc.).
  4. Pontuação + leaderboard — pontuação de 0 a 100 com nota em letra (S/A/B/C/D/F), um histograma de distribuição mostrando onde você se posiciona no grupo, texto descritivo (“a B starts at 71. you’re 13 points away.”) e uma tabela de leaderboard com sua linha destacada.
  5. Descobertas — cards por descoberta, classificados por impacto. Cada card mostra o que aconteceu, o custo, uma amostra de evidências com comandos reais capturados e a política do failproofai que interceptaria o mesmo padrão ($ failproof policy add <slug>, clique para copiar).
  6. Políticas prescritas + ciclo de retorno — uma grade com cada política builtin não habilitada que fecharia uma lacuna, com uma estimativa de pontuação projetada, mais um CTA de “re-auditar em 7 dias”.
Alimentado pelo runtime failproofai audit — consulte Audit CLI para o mecanismo de varredura subjacente, flags suportadas e invariantes de cache por transcrição. O dashboard armazena em cache o resultado mais recente em ~/.failproofai/audit-dashboard.json (modo 0600, slot único, novas execuções sobrescrevem) para que revisitas sejam instantâneas; clicar em [ Re-run ↻ ] faz um POST para /api/audit/run e o dashboard consulta /api/audit/status a 1Hz até a execução terminar. O estado vazio (sem cache) e o estado de sessões zeradas (cache existe, mas a varredura não encontrou transcrições) são exibidos separadamente.

Políticas

Uma página com duas abas para gerenciar políticas e revisar atividades.
  • Selecione múltiplos 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 na cor da marca. Marque ou desmarque os CLIs desejados e clique em Apply changes para instalar/desinstalar as diferenças em um único passo. CLIs cujo binário é detectado no PATH são pré-marcados.
  • Ative ou desative políticas individuais com um único clique (grava em ~/.failproofai/policies-config.json — compartilhado entre todos os CLIs instalados)
  • 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 tem 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 conforme surgem. 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, audit.

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 dev (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 dev. Para permitir seu host, use o 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:
FAILPROOFAI_ALLOWED_DEV_ORIGINS=dashboard.example.com npm run dev
Isso se aplica apenas ao modo dev. Ao executar failproofai (modo produção), não há websocket de HMR nem problemas de recursos dev de origem cruzada.