Vai al contenuto principale
La dashboard di failproofai è un’applicazione web locale per monitorare le sessioni dei tuoi agenti AI e gestire le politiche. Scopri cosa hanno fatto i tuoi agenti mentre eri assente.

Avviare la dashboard

failproofai
Si apre all’indirizzo http://localhost:8020. La dashboard legge direttamente dal filesystem - le cartelle dei tuoi progetti Claude Code e i file di configurazione di failproofai. Nulla viene scritto in un servizio remoto.

Pagine

Progetti

Elenca tutti i progetti Claude Code, OpenAI Codex, GitHub Copilot CLI (beta), Cursor Agent (beta), OpenCode (beta), Pi (beta) e Gemini CLI (beta) trovati sulla tua macchina. I progetti Claude vengono scoperti da ~/.claude/projects/ (o dal percorso impostato da CLAUDE_PROJECTS_PATH); i progetti Codex vengono scoperti scansionando ogni trascrizione sotto ~/.codex/sessions/<YYYY>/<MM>/<DD>/*.jsonl e raggruppando per il cwd registrato nel primo record di ogni sessione; i progetti Copilot CLI vengono scoperti scansionando ogni ~/.copilot/session-state/<sessionId>/workspace.yaml (configurabile tramite COPILOT_HOME) e raggruppando per il relativo campo cwd; i progetti Cursor Agent vengono scoperti scansionando i metadati per sessione sotto ~/.cursor/agent-sessions/<sessionId>/ (configurabile tramite CURSOR_HOME, con conversations/ e sessions/ testati come fallback) alla ricerca di uno scalare cwd in meta.json / session.json / workspace.yaml; i progetti OpenCode vengono scoperti interrogando il suo DB SQLite all’indirizzo ~/.local/share/opencode/opencode.db tramite opencode db --format json (leggiamo le tabelle session e project e raggruppiamo per project_id); i progetti Pi vengono scoperti scansionando le trascrizioni JSONL per sessione sotto ~/.pi/agent/sessions/<encoded-cwd>/<timestamp>_<uuid>.jsonl (configurabile tramite PI_SESSIONS_DIR) ed estraendo il cwd dal primo record di ogni sessione; i progetti Gemini CLI vengono scoperti scansionando ~/.gemini/tmp/<basename>/chats/session-<timestamp>-<uuid-prefix>.jsonl (configurabile tramite GEMINI_SESSIONS_DIR) e ripristinando il cwd canonico dal marcatore di testo .project_root adiacente. Un progetto utilizzato da più CLI viene visualizzato come una singola riga con tutti i badge corrispondenti. Utilizza il menu a discesa CLI sopra la tabella per filtrare per uno specifico CLI agente; l’URL preserva la tua selezione come ?cli=claude|codex|copilot|cursor|opencode|pi|gemini. Ogni progetto mostra:
  • Nome del progetto (derivato dal percorso della cartella)
  • Un badge CLI — Claude Code (arancione), OpenAI Codex (viola), GitHub Copilot (blu), Cursor Agent (smeraldo), OpenCode (ambra), Pi (rosa) e/o Gemini CLI (azzurro)
  • Data dell’attività della sessione più recente
Fai clic su un progetto per vederne le sessioni.

Sessioni

Elenca tutte le sessioni all’interno di un progetto. Ogni sessione mostra:
  • ID sessione
  • Timestamp di inizio e fine
  • Numero di chiamate ai tool
  • Numero di attività hook (politiche che si sono attivate)
Utilizza il filtro intervallo di date e la ricerca per ID sessione per restringere l’elenco. Le sessioni sono impaginate. Fai clic su una sessione per aprire il visualizzatore di sessione.

Visualizzatore di sessione

Il visualizzatore di sessione risponde alla domanda chiave per gli agenti autonomi: cosa ha fatto l’agente e ha mantenuto la giusta direzione? Un badge CLI accanto all’intestazione indica se la sessione è una trascrizione di Claude Code, OpenAI Codex, GitHub Copilot CLI, Cursor Agent, OpenCode, Pi o Gemini CLI. Mostra una timeline di tutto ciò che è accaduto in una sessione:
  • Messaggi - Risposte di testo di Claude e prompt dell’utente
  • Chiamate ai tool - Ogni tool che Claude ha invocato, con il suo input e output
  • Attività delle politiche - Per ogni chiamata al tool, quali politiche si sono attivate e quale decisione hanno restituito
La barra delle statistiche in alto mostra la durata della sessione, il totale delle chiamate ai tool e un riepilogo delle decisioni hook (conteggi allow / deny / instruct). Fai clic sul pulsante Download Logs per esportare la sessione. Per le sessioni Claude Code, Codex, Copilot, Cursor, Pi e Gemini ricevi la trascrizione JSONL originale su disco byte-per-byte; per OpenCode (le cui sessioni vivono in SQLite, non su disco) ricevi un documento JSON che rispecchia le tabelle sottostanti session / messages / parts.

Audit

Un rapporto caratterizzato su come il tuo agente si è effettivamente comportato nelle sessioni passate. Esegue la stessa scansione del CLI failproofai audit ma la renderizza come una dashboard a sei sezioni:
  1. Identità — classifica il tuo agente in uno degli 8 archetipi (l'ottimista, il cowboy, l'esploratore, il pesce rosso, l'architetto paranoico, il costruttore di precisione, il martello, il fantasma) in base a quali detector + politiche si sono attivati e quanto intensamente. Renderizza un sigillo pixel 8×8, il tagline dell’archetipo, il framing “comune in” / “rischio primario” e la battuta di chiusura.
  2. Mostra il tuo agente — cattura la carta d’identità come PNG 1200×630 adatto per la pubblicazione su X / LinkedIn (fai clic su make poster).
  3. Punti di forza — comportamenti con spunta verde che il tuo agente già fa bene, derivati dai dati di audit live (tasso di chiamate ai tool pulito, durata media della sessione, zero perdite di credenziali, zero tempeste di tentativi, ecc.).
  4. Punteggio + classifica — punteggio 0–100 con voto in lettere (S/A/B/C/D/F), un istogramma di distribuzione che mostra dove ti posizioni nella coorte, prosa (“una B inizia a 71. sei a 13 punti di distanza.”) e una tabella di classifica con la tua riga evidenziata.
  5. Risultati — carte per ogni risultato classificate per impatto. Ogni carta mostra cosa è accaduto, cosa costa, un campione di prove con comandi effettivamente acquisiti e la politica di failproofai che catturerebbe lo stesso pattern ($ failproofai policy add <slug>, fare clic per copiare).
  6. Politiche prescritte + loop di ritorno — una griglia di ogni politica builtin non abilitata che chiuderebbe un gap, con un callout di punteggio proiettato, più un CTA “rivaluta in 7 giorni”.
Guidato dal runtime failproofai audit — vedi Audit CLI per il motore di scansione sottostante, i flag supportati e gli invarianti della cache per trascrizione. La dashboard memorizza nella cache il risultato più recente in ~/.failproofai/audit-dashboard.json (modalità 0600, slot singolo, le nuove esecuzioni sovrascrivono) quindi le revisitazioni sono istantanee; sia le cache per trascrizione che il risultato intero vengono rifiutate in lettura una volta che hanno più di 7 giorni quindi la dashboard non serve mai un risultato di una settimana fa silenziosamente — superato il TTL /audit ricade nel suo stato vuoto e richiede un’esecuzione nuova. Facendo clic su [ rivaluta ora ] vicino al fondo del report POST /api/audit/run con noCache: true — la rivalutazione ignora la cache per trascrizione e ripete la scansione di ogni trascrizione da zero piuttosto che restituire silenziosamente il risultato memorizzato nella cache — e la dashboard esegue il polling su /api/audit/status a 1Hz fino al completamento dell’esecuzione; una barra di progresso adesiva rosa si appunta alla parte superiore del viewport durante l’esecuzione con un timer trascorso, e il risultato nuovo si sostituisce in posizione al successo (nessun ricaricamento della pagina intera; una rivalutazione fallita lascia intatto il rapporto precedente). In caso di errore la barra diventa rossa con copia basata su RerunError.kind (timeout / network / post_failed). Lo stato vuoto (nessuna cache o scaduta) e lo stato zero-sessioni (la cache esiste ma la scansione non ha trovato trascrizioni) vengono visualizzati separatamente.

Politiche

Una pagina a due schede per gestire le politiche e rivedere l’attività.
  • Seleziona più CLI agenti che failproofai protegge da un singolo pannello — Claude Code, OpenAI Codex, GitHub Copilot, Cursor Agent, OpenCode, Pi e Gemini CLI hanno tutti una riga con stato di installazione (Active / Detected / Inactive), il percorso delle impostazioni nel campo dell’utente e un accento colorato del marchio. Seleziona o deseleziona i CLI che desideri e fai clic su Apply changes per installare/disinstallare il diff in un unico passaggio. I CLI il cui binario viene rilevato su PATH sono pre-selezionati.
  • Attiva o disattiva singole politiche con un singolo clic (scrive su ~/.failproofai/policies-config.json — condiviso tra ogni CLI installato)
  • Espandi una politica per configurarne i parametri (per le politiche che supportano policyParams)
  • Imposta un percorso file di politiche personalizzate

Auto-refresh

La dashboard ha un interruttore di auto-refresh nella navigazione in alto. Se abilitato, la pagina corrente si aggiorna periodicamente per mostrare nuove sessioni e attività di politica man mano che appaiono. Essenziale per monitorare le sessioni di agenti autonomi a lungo termine.

Disabilitare pagine

Se hai bisogno solo di alcune parti della dashboard, imposta FAILPROOFAI_DISABLE_PAGES su un elenco separato da virgole di nomi di pagina:
FAILPROOFAI_DISABLE_PAGES=policies failproofai
Valori validi: policies, projects, audit.

Configurare il percorso dei progetti

Per impostazione predefinita, la dashboard legge dalla directory dei progetti Claude Code standard. Ignoralo per configurazioni personalizzate:
CLAUDE_PROJECTS_PATH=/custom/path/to/projects failproofai

Accesso da un host non-localhost

Quando esegui la dashboard in modalità dev (npm run dev) e la accedi da un nome host diverso da localhost - ad esempio, un dominio personalizzato, un indirizzo IP remoto o un URL tunnelato - potresti vedere un avviso come:
⚠ Blocked cross-origin request to Next.js dev resource /_next/webpack-hmr from "dashboard.example.com".
Questo è Next.js che blocca l’accesso cross-origin al suo websocket HMR (hot module reload), che è una funzione solo per dev. Per consentire il tuo host, utilizza il flag --allowed-origins:
npm run dev -- --allowed-origins dashboard.example.com
Per più host o indirizzi IP, passa un elenco separato da virgole:
npm run dev -- --allowed-origins dashboard.example.com,192.168.1.5
Puoi anche impostare la variabile di ambiente FAILPROOFAI_ALLOWED_DEV_ORIGINS:
FAILPROOFAI_ALLOWED_DEV_ORIGINS=dashboard.example.com npm run dev
Questo vale solo per la modalità dev. Quando esegui failproofai (modalità produzione), non c’è websocket HMR e nessun problema di risorsa dev cross-origin.