Démarrer le tableau de bord
http://localhost:8020.
Le tableau de bord lit directement depuis le système de fichiers — vos dossiers de projets Claude Code et les fichiers de configuration failproofai. Aucune donnée n’est transmise à un service distant.
Pages
Projets
Liste tous les projets Claude Code, OpenAI Codex, GitHub Copilot CLI (bêta), Cursor Agent (bêta), OpenCode (bêta), Pi (bêta) et Gemini CLI (bêta) trouvés sur votre machine. Les projets Claude sont découverts depuis~/.claude/projects/ (ou le chemin défini par CLAUDE_PROJECTS_PATH) ; les projets Codex sont découverts en analysant chaque transcript sous ~/.codex/sessions/<YYYY>/<MM>/<DD>/*.jsonl et en les regroupant par le cwd enregistré dans le premier enregistrement de chaque session ; les projets Copilot CLI sont découverts en analysant chaque ~/.copilot/session-state/<sessionId>/workspace.yaml (configurable via COPILOT_HOME) et en les regroupant par leur champ cwd ; les projets Cursor Agent sont découverts en analysant les métadonnées par session sous ~/.cursor/agent-sessions/<sessionId>/ (configurable via CURSOR_HOME, avec conversations/ et sessions/ explorés en solution de repli) pour un scalaire cwd dans meta.json / session.json / workspace.yaml ; les projets OpenCode sont découverts en interrogeant sa base de données SQLite à ~/.local/share/opencode/opencode.db via opencode db --format json (nous lisons les tables session et project et les regroupons par project_id) ; les projets Pi sont découverts en analysant les transcripts JSONL par session sous ~/.pi/agent/sessions/<encoded-cwd>/<timestamp>_<uuid>.jsonl (configurable via PI_SESSIONS_DIR) et en extrayant le cwd du premier enregistrement de chaque session ; les projets Gemini CLI sont découverts en analysant ~/.gemini/tmp/<basename>/chats/session-<timestamp>-<uuid-prefix>.jsonl (configurable via GEMINI_SESSIONS_DIR) et en récupérant le cwd canonique depuis le marqueur texte .project_root situé dans le même répertoire. Un projet utilisé par plusieurs interfaces CLI s’affiche sur une seule ligne avec tous les badges correspondants. Utilisez le menu déroulant CLI au-dessus du tableau pour filtrer par un agent CLI spécifique ; l’URL conserve votre sélection sous la forme ?cli=claude|codex|copilot|cursor|opencode|pi|gemini.
Chaque projet affiche :
- Le nom du projet (dérivé du chemin du dossier)
- Un badge CLI —
Claude Code(orange),OpenAI Codex(violet),GitHub Copilot(bleu),Cursor Agent(émeraude),OpenCode(ambre),Pi(rose) et/ouGemini CLI(ciel) - La date de la dernière activité de session
Sessions
Liste toutes les sessions d’un projet. Chaque session affiche :- L’identifiant de session
- Les horodatages de début et de fin
- Le nombre d’appels d’outils
- Le nombre d’activités de hook (politiques déclenchées)
Visualiseur de session
Le visualiseur de session répond à la question essentielle pour les agents autonomes : qu’a fait l’agent, et est-il resté sur la bonne voie ? Un badge CLI à côté de l’en-tête indique si la session est un transcript Claude Code, OpenAI Codex, GitHub Copilot CLI, Cursor Agent, OpenCode, Pi ou Gemini CLI. Il affiche une chronologie de tout ce qui s’est passé durant une session :- Messages — Les réponses textuelles de Claude et les invites utilisateur
- Appels d’outils — Chaque outil invoqué par Claude, avec ses entrées et sorties
- Activité des politiques — Pour chaque appel d’outil, quelles politiques ont été déclenchées et quelle décision elles ont retournée
session / messages / parts.
Audit
Un rapport personnalisé décrivant le comportement réel de votre agent à travers les sessions passées. Exécute la même analyse que la CLIfailproofai audit, mais le restitue sous la forme d’une affiche partageable plein écran et de quatre sections sous la ligne de flottaison :
- Affiche — occupe le premier viewport. Zone de capture PNG autonome avec le logotype failproof_ai + étiquette d’audit · index d’archétype (
№ NN of 08) + date d’audit · score numérique (0–100) + pastille de rang en centile (top 15%) · le nom de l’archétype (l’un dethe optimist,the cowboy,the explorer,the goldfish,the paranoid architect,the precision builder,the hammer,the ghost) + banderole de 3 mots-clés · ligne de rareté// only N% of agents are this archetype· tuile sigil 8×8 pixels · pied de pageaudit yours → failproof.ai. Trois boutons de partage se trouvent juste en dehors de la zone de capture :post your archetype(X intent),share on linkedin,download poster. La capture est réalisée viahtml-to-imageafin que le PNG corresponde pixel pour pixel au rendu à l’écran (bordures en pointillés, masque SVG du logo, dégradés, métriques de police — tout est préservé). - Points forts — liste de lignes ✓ apaisées décrivant les comportements que votre agent adopte déjà correctement, dérivés des données d’audit en direct (taux d’appels d’outils propre, aucun push direct sur main, zéro fuite de credentials, zéro tempête de tentatives) — chaque point n’est affiché que lorsque la politique concernée affiche un historique propre sur toute la fenêtre d’audit.
- Écarts — tableau de ce qui est passé entre les mailles, classé par gravité :
quand · ce qui a glissé + la politique qui l'aurait intercepté · pastille de gravité · observé, où la récurrence se litnew(une fois),N× seen(2–9 fois) ourecurring(10+). - Comment s’améliorer — liste de lignes apaisées, une par politique prescrite : nom de la politique en blanc, description en une ligne, commande d’installation + bouton de copie sur le côté droit. L’en-tête de section indique
enable all N → projected <score> · <tier>(le score que vous atteindriez en appliquant toutes les corrections), et son bouton[install all]copie la commande combinéefailproofai policy add a b c …pour toutes les politiques prescrites. - Revenez mieux armé — deux cartes côte à côte. À gauche : définir un rappel (sélecteur de cadence
3d/7d/14d/30d; persisté via/api/auth/reminderune fois authentifié). À droite : débloquer les avantages failproof —invite a friendouvre une fenêtre modale qui accepte une liste d’e-mails d’amis séparés par des virgules, espaces ou sauts de ligne (max 10 par envoi), les envoie via POST à/api/audit/invite, qui les transmet auPOST /v0/invitedu serveur API. Le serveur API envoie un e-mail par destinataire depuisinvite@failproof.aiavec l’expéditeur en Cc etReply-Toconfiguré, afin que le destinataire voie qui l’a invité et que l’expéditeur reçoive une copie dans sa boîte de réception. Les utilisateurs anonymes sont d’abord redirigés vers l’AuthDialogpour que l’e-mail de l’expéditeur soit connu avant l’envoi des invitations. Les droits d’accès et l’exécution des avantages feront l’objet d’une mise à jour ultérieure.
failproofai audit — consultez Audit CLI pour le moteur d’analyse sous-jacent, les options prises en charge et les invariants de cache par transcript. Le tableau de bord met en cache le dernier résultat dans ~/.failproofai/audit-dashboard.json (mode 0600, emplacement unique, les nouvelles exécutions écrasent l’ancien) afin que les revisites soient instantanées ; les caches par transcript et le cache de résultat global sont rejetés à la lecture dès qu’ils ont plus de 7 jours, de sorte que le tableau de bord ne serve jamais silencieusement un résultat vieux d’une semaine — passé le délai d’expiration, /audit retombe dans son état vide et invite à effectuer une nouvelle analyse. Cliquer sur [ re-audit now ] en bas du rapport envoie un POST à /api/audit/run avec noCache: true — la ré-analyse contourne le cache par transcript et réanalyse chaque transcript depuis le début plutôt que de retourner silencieusement le résultat mis en cache — et le tableau de bord interroge /api/audit/status à 1 Hz jusqu’à la fin de l’exécution ; une banderole de progression rose épinglée reste visible en haut du viewport pendant l’exécution avec un compteur de temps écoulé, et le nouveau résultat se substitue en place en cas de succès (sans rechargement complet de la page ; un échec de ré-analyse laisse le rapport précédent intact). En cas d’échec, la banderole devient rouge avec un message adapté selon le RerunError.kind (timeout / network / post_failed). L’état vide (pas de cache ou expiré) et l’état sans sessions (cache existant mais l’analyse n’a trouvé aucun transcript) sont présentés séparément.
Politiques
Une page à deux onglets pour gérer les politiques et consulter l’activité.- Onglet Politiques
- Onglet Activité
- Sélectionnez les CLIs d’agents que failproofai protège depuis un panneau unique — Claude Code, OpenAI Codex, GitHub Copilot, Cursor Agent, OpenCode, Pi et Gemini CLI ont chacun une ligne avec l’état d’installation (
Active/Detected/Inactive), le chemin des paramètres de portée utilisateur et un accent de couleur de marque. Cochez ou décochez les CLIs souhaités et cliquez surApply changespour installer/désinstaller les différences en une seule étape. Les CLIs dont le binaire est détecté dans le PATH sont pré-cochés. - Activez ou désactivez les politiques individuelles d’un simple clic (écrit dans
~/.failproofai/policies-config.json— partagé entre tous les CLIs installés) - Développez une politique pour configurer ses paramètres (pour les politiques qui prennent en charge
policyParams) - Définissez un chemin de fichier de politiques personnalisé
Actualisation automatique
Le tableau de bord dispose d’un bouton d’actualisation automatique dans la navigation principale. Lorsqu’il est activé, la page actuelle se rafraîchit périodiquement pour afficher les nouvelles sessions et l’activité des politiques au fur et à mesure qu’elles apparaissent. Indispensable pour surveiller les sessions d’agents autonomes de longue durée.Désactiver des pages
Si vous n’avez besoin que de certaines parties du tableau de bord, définissezFAILPROOFAI_DISABLE_PAGES avec une liste de noms de pages séparés par des virgules :
policies, projects, audit.
Configurer le chemin des projets
Par défaut, le tableau de bord lit depuis le répertoire de projets Claude Code standard. Remplacez-le pour des configurations personnalisées :Accès depuis un hôte autre que localhost
Lorsque vous exécutez le tableau de bord en mode développement (npm run dev) et y accédez depuis un nom d’hôte autre que localhost — par exemple, un domaine personnalisé, une IP distante ou une URL tunnelisée — vous pouvez voir un avertissement comme :
--allowed-origins :
FAILPROOFAI_ALLOWED_DEV_ORIGINS à la place :
Ceci s’applique uniquement au mode développement. Lors de l’exécution de
failproofai (mode production), il n’y a pas de websocket HMR ni de problème de ressource de développement cross-origin.
