Iniciando o dashboard
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/ouGemini CLI(azul-céu) - Data da atividade mais recente da sessão
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)
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
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 CLIfailproofai audit, mas renderiza como um pôster de tela única compartilhável + quatro seções abaixo da dobra:
- 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 dentrethe 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 viahtml-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). - 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.
- 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 comonew(uma vez),N× seen(2–9 vezes) ourecurring(10+). - 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 combinadofailproofai policy add a b c …para cada política prescrita. - Volte melhor — dois cards lado a lado. Esquerda: definir um lembrete (seletor de cadência
3d/7d/14d/30d; persiste via/api/auth/reminderapós autenticação). Direita: desbloquear vantagens failproof —invite a friendabre 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 oPOST /v0/invitedo api-server. O api-server envia um e-mail por destinatário a partir deinvite@failproof.aicom o remetente em Cc eReply-Todefinido, 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 peloAuthDialogprimeiro 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.
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.- Aba de Políticas
- Aba de Atividade
- 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 emApply changespara 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, definaFAILPROOFAI_DISABLE_PAGES como uma lista separada por vírgulas de nomes de páginas:
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:
--allowed-origins:
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.
