Avviare la dashboard
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/oGemini CLI(azzurro) - Data dell’attività della sessione più recente
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)
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
session / messages / parts.
Audit
Un rapporto caratterizzato su come il tuo agente si è effettivamente comportato nelle sessioni passate. Esegue la stessa scansione del CLIfailproofai audit ma la renderizza come una dashboard a sei sezioni:
- 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. - 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). - 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.).
- 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.
- 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). - 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”.
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à.- Scheda Politiche
- Scheda 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 suApply changesper 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, impostaFAILPROOFAI_DISABLE_PAGES su un elenco separato da virgole di nomi di pagina:
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: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:
--allowed-origins:
FAILPROOFAI_ALLOWED_DEV_ORIGINS:
Questo vale solo per la modalità dev. Quando esegui
failproofai (modalità produzione), non c’è websocket HMR e nessun problema di risorsa dev cross-origin.
