Skip to main content
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

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 na 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 escaneando todos os transcritos 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 escaneando cada ~/.copilot/session-state/<sessionId>/workspace.yaml (configurável via COPILOT_HOME) e agrupando pelo campo cwd; os 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 fallbacks) para 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 escaneando transcritos 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 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 irmão. Um projeto que foi utilizado por múltiplos 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 à principal pergunta sobre 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 é um transcrito 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 o 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 elas retornaram
A barra de estatísticas no topo exibe a duração da sessão, 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ê recebe o transcrito JSONL original em disco byte a byte; para o OpenCode (cujas sessões ficam no SQLite, não em disco) você recebe um documento JSON espelhando as tabelas subjacentes session / messages / parts.

Auditoria

Um relatório orientado por personalidade de como seu agente tem se comportado de fato ao longo de sessões passadas. Executa o mesmo escaneamento que o CLI failproofai audit, mas renderiza como um pôster de tela única compartilhável + quatro seções abaixo da dobra:
  1. Pôster — preenche o primeiro viewport. Região de captura PNG independente com o logotipo failproof_ai + rótulo de auditoria · índice de arquétipo (№ NN of 08) + data da auditoria · pontuação numérica (0–100) + pílula de percentil (top 15%) · o nome do arquétipo (um dentre the optimist, the cowboy, the explorer, the goldfish, the paranoid architect, the precision builder, the hammer, the ghost) + faixa de 3 palavras-chave · linha de raridade // only N% of agents are this archetype · bloco de símbolo pixel 8×8 · rodapé audit yours → failproof.ai. Três botões de compartilhamento ficam logo fora da caixa de captura: post your archetype (X intent), share on linkedin, download poster. A captura é feita via html-to-image, portanto o PNG corresponde pixel a pixel à renderização em tela (bordas tracejadas, máscara de logo SVG, gradientes, métricas de fonte — tudo preservado).
  2. Pontos fortes — lista de linhas com ✓ destacando comportamentos que seu agente já faz corretamente, derivados dos dados de auditoria em tempo real (taxa limpa de chamadas de ferramentas, sem pushes diretos para main, zero vazamentos de credenciais, zero tempestades de retry) — cada item exibido apenas quando a política relevante tem um histórico limpo ao longo da janela de auditoria.
  3. Peculiaridades — tabela do que passou despercebido, classificado por severidade: quando · o que escapou + a política que teria detectado · pílula de severidade · visto, onde a recorrência é exibida como new (uma vez), N× seen (2–9 vezes) ou recurring (10+).
  4. Como melhorar — lista de linhas tranquilas, uma por política prescrita: nome da política em branco, descrição em uma linha, comando de instalação + botão de cópia à direita. O cabeçalho da seção exibe enable all N → projected <score> · <tier> (a pontuação que você alcançaria com todas as correções aplicadas), e seu botão [install all] copia o comando combinado failproofai policy add a b c … para cada política prescrita.
  5. Volte melhor — dois cards lado a lado. Esquerda: definir um lembrete (seletor de cadência 3d / 7d / 14d / 30d; persiste via /api/auth/reminder após autenticação). Direita: desbloquear vantagens failproof — invite a friend abre um modal que aceita uma lista de e-mails de amigos separados por vírgula/espaço/nova linha (máximo 10 por envio), faz POST para /api/audit/invite, que encaminha para o POST /v0/invite do api-server. O api-server envia um e-mail por destinatário a partir de invite@failproof.ai com o remetente em Cc e Reply-To definido, para que o destinatário saiba quem o convidou e o remetente receba uma cópia em sua caixa de entrada. Usuários anônimos são direcionados pelo AuthDialog primeiro para que o e-mail do remetente seja conhecido antes dos convites serem enviados. Direitos e benefícios serão implementados em uma etapa futura.
Alimentado pelo runtime failproofai audit — veja Audit CLI para o motor de escaneamento subjacente, flags suportadas e invariantes de cache por transcrito. 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; tanto o cache por transcrito quanto o cache do resultado completo são rejeitados na leitura quando têm mais de 7 dias, portanto o dashboard nunca serve silenciosamente um resultado de uma semana atrás — após o TTL, /audit cai em seu estado vazio e solicita uma nova execução. Clicar em [ re-audit now ] perto da parte inferior do relatório faz POST em /api/audit/run com noCache: true — a re-auditoria ignora o cache por transcrito e reescanieia todos os transcritos do zero em vez de retornar silenciosamente o resultado em cache — e o dashboard verifica /api/audit/status a 1Hz até a execução terminar; uma faixa de progresso rosa fixa é fixada ao topo do viewport durante a execução com um timer de tempo decorrido, e o resultado atualizado substitui o anterior no lugar em caso de sucesso (sem recarregamento completo da página; uma re-auditoria com falha mantém o relatório anterior intacto). Em caso de falha, a faixa fica vermelha com texto baseado no RerunError.kind (timeout / network / post_failed). Estado vazio (sem cache ou expirado) e estado de zero sessões (cache existe mas o escaneamento não encontrou transcritos) 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 de escopo do usuário e um destaque colorido pela marca. Marque ou desmarque os CLIs desejados e clique em Apply changes para instalar/desinstalar a diferença em uma única etapa. 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 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 conforme aparecem. Essencial para monitorar sessões de agentes autônomos de longa duração.

Desabilitando páginas

Se você precisar apenas de algumas partes do dashboard, defina FAILPROOFAI_DISABLE_PAGES como uma lista separada por vírgulas de nomes de páginas:
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:

Acessando de um host não-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:
Isso é o Next.js bloqueando acesso cross-origin ao websocket de HMR (hot module reload), que é um recurso exclusivo de desenvolvimento. Para permitir seu host, use a flag --allowed-origins:
Para múltiplos hosts ou IPs, passe uma lista separada por vírgulas:
Você também pode definir a variável de ambiente FAILPROOFAI_ALLOWED_DEV_ORIGINS:
Isso se aplica apenas ao modo dev. Ao executar failproofai (modo de produção), não há websocket de HMR nem problema de recurso dev cross-origin.