डैशबोर्ड शुरू करना
http://localhost:8020 पर खुलता है।
डैशबोर्ड सीधे फाइलसिस्टम से पढ़ता है - आपके Claude Code प्रोजेक्ट फोल्डर और failproofai कॉन्फ़िग फाइलें। कुछ भी किसी रिमोट सेवा को नहीं लिखा जाता है।
पृष्ठ
प्रोजेक्ट्स
आपकी मशीन पर पाए गए सभी Claude Code, OpenAI Codex, GitHub Copilot CLI (बीटा), Cursor Agent (बीटा), OpenCode (बीटा), Pi (बीटा), और Gemini CLI (बीटा) प्रोजेक्ट्स की सूची। Claude प्रोजेक्ट्स~/.claude/projects/ से खोजे जाते हैं (या CLAUDE_PROJECTS_PATH द्वारा निर्धारित पाथ); Codex प्रोजेक्ट्स ~/.codex/sessions/<YYYY>/<MM>/<DD>/*.jsonl के तहत हर ट्रांसक्रिप्ट को स्कैन करके और प्रत्येक सेशन के पहले रिकॉर्ड में दर्ज cwd द्वारा समूहीकृत करके खोजे जाते हैं; Copilot CLI प्रोजेक्ट्स प्रत्येक ~/.copilot/session-state/<sessionId>/workspace.yaml को स्कैन करके (COPILOT_HOME के माध्यम से कॉन्फ़िगर करने योग्य) और इसके cwd फील्ड द्वारा समूहीकृत करके खोजे जाते हैं; Cursor Agent प्रोजेक्ट्स ~/.cursor/agent-sessions/<sessionId>/ के तहत प्रति-सेशन मेटाडेटा को स्कैन करके (CURSOR_HOME के माध्यम से कॉन्फ़िगर करने योग्य, conversations/ और sessions/ को फॉलबैक के रूप में जांचा गया) meta.json / session.json / workspace.yaml में cwd स्केलर के लिए खोजे जाते हैं; OpenCode प्रोजेक्ट्स ~/.local/share/opencode/opencode.db पर इसके SQLite DB को क्वेरी करके opencode db --format json के माध्यम से खोजे जाते हैं (हम session और project टेबल्स को पढ़ते हैं और project_id द्वारा समूहीकृत करते हैं); Pi प्रोजेक्ट्स ~/.pi/agent/sessions/<encoded-cwd>/<timestamp>_<uuid>.jsonl के तहत प्रति-सेशन JSONL ट्रांसक्रिप्ट्स को स्कैन करके (PI_SESSIONS_DIR के माध्यम से कॉन्फ़िगर करने योग्य) और प्रत्येक सेशन के पहले रिकॉर्ड से cwd निकालकर खोजे जाते हैं; Gemini CLI प्रोजेक्ट्स ~/.gemini/tmp/<basename>/chats/session-<timestamp>-<uuid-prefix>.jsonl को स्कैन करके (GEMINI_SESSIONS_DIR के माध्यम से कॉन्फ़िगर करने योग्य) और सहोदर .project_root पाठ मार्कर से canonical cwd को पुनः प्राप्त करके खोजे जाते हैं। एक प्रोजेक्ट जो कई CLIs द्वारा उपयोग किया गया है, एक एकल पंक्ति के रूप में प्रस्तुत होता है जिसमें सभी मिलान बैज हैं। तालिका के ऊपर CLI ड्रॉपडाउन का उपयोग करके किसी विशेष एजेंट CLI द्वारा फ़िल्टर करें; URL आपके चयन को ?cli=claude|codex|copilot|cursor|opencode|pi|gemini के रूप में संरक्षित करता है।
प्रत्येक प्रोजेक्ट दिखाता है:
- प्रोजेक्ट का नाम (फोल्डर पाथ से व्युत्पन्न)
- एक CLI बैज —
Claude Code(नारंगी),OpenAI Codex(बैंगनी),GitHub Copilot(नीला),Cursor Agent(पन्ना),OpenCode(एम्बर),Pi(गुलाबी), और/याGemini CLI(आसमानी) - सबसे हाल की सेशन गतिविधि की तारीख
सेशन्स
एक प्रोजेक्ट के भीतर सभी सेशन्स की सूची। प्रत्येक सेशन दिखाता है:- सेशन ID
- शुरुआत और अंत के समय
- टूल कॉल्स की संख्या
- हुक गतिविधि की गणना (नीतियां जो सक्रिय हुईं)
सेशन दर्शक
सेशन दर्शक स्वायत्त एजेंट्स के लिए मुख्य प्रश्न का उत्तर देता है: एजेंट ने क्या किया, और क्या यह ट्रैक पर रहा? हेडर के पास एक CLI बैज इंगित करता है कि सेशन एक Claude Code, OpenAI Codex, GitHub Copilot CLI, Cursor Agent, OpenCode, Pi, या Gemini CLI ट्रांसक्रिप्ट है। यह एक सेशन में हुई हर चीज की एक समय सारणी दिखाता है:- संदेश - Claude के पाठ प्रतिक्रियाएं और उपयोगकर्ता प्रॉम्प्ट्स
- टूल कॉल्स - हर टूल जो Claude ने इनवोक किया, इसके इनपुट और आउटपुट के साथ
- नीति गतिविधि - प्रत्येक टूल कॉल के लिए, कौन सी नीतियां सक्रिय हुईं और उन्होंने क्या निर्णय लौटाया
session / messages / parts टेबल्स को प्रतिबिंबित करता है।
ऑडिट
आपके एजेंट के वास्तविक व्यवहार के बारे में पिछले सेशन्स में एक व्यक्तित्व-संचालित रिपोर्ट।failproofai audit CLI के समान स्कैन चलाता है लेकिन इसे एक छह-अनुभाग डैशबोर्ड के रूप में प्रस्तुत करता है:
- पहचान — आपके एजेंट को 8 आर्किटाइप्स में से एक में वर्गीकृत करता है (
the optimist,the cowboy,the explorer,the goldfish,the paranoid architect,the precision builder,the hammer,the ghost) इस आधार पर कि कौन सी डिटेक्टर्स + नीतियां सक्रिय हुईं और कितनी भारी। एक 8×8 पिक्सल सिजिल, आर्किटाइप टैगलाइन, “common in” / “primary risk” फ्रेमिंग, और समापन एक-लाइनर प्रदान करता है। - अपने एजेंट को दिखाएं — पहचान कार्ड को एक 1200×630 PNG के रूप में कैप्चर करता है जो X / LinkedIn पर पोस्ट करने के लिए उपयुक्त है (
make posterपर क्लिक करें)। - शक्तियां — हरी-जांच की गई व्यवहार जो आपका एजेंट पहले से ही सही तरीके से करता है, लाइव ऑडिट डेटा से व्युत्पन्न (स्वच्छ टूल-कॉल दर, औसत सेशन लंबाई, शून्य क्रेडेंशियल लीक, शून्य रिट्राई स्टॉर्म्स, आदि)।
- स्कोर + लीडरबोर्ड — 0–100 स्कोर लेटर ग्रेड (S/A/B/C/D/F) के साथ, एक वितरण हिस्टोग्राम जो दिखाता है कि आप cohort में कहां हैं, गद्य (“a B starts at 71. you’re 13 points away.”), और एक लीडरबोर्ड तालिका आपकी पंक्ति हाइलाइट के साथ।
- निष्कर्ष — प्रभाव के आधार पर रैंक किए गए प्रति-निष्कर्ष कार्ड्स। प्रत्येक कार्ड क्या हुआ यह सामने लाता है, इसकी लागत क्या है, वास्तविक कैप्चर किए गए कमांड्स के साथ एक साक्ष्य नमूना, और failproofai नीति जो एक ही पैटर्न को पकड़ेगी (
$ failproofai policy add <slug>, क्लिक-टू-कॉपी)। - निर्धारित नीतियां + रिटर्न लूप — हर अक्षम builtin नीति का एक ग्रिड जो एक अंतर को बंद करेगा, एक प्रक्षेपित-स्कोर कॉलआउट के साथ, साथ ही एक “re-audit in 7 days” CTA।
failproofai audit रनटाइम द्वारा संचालित — अंतर्निहित स्कैन इंजन, समर्थित फ्लैग्स, और प्रति-ट्रांसक्रिप्ट कैश इनवेरिएंट्स के लिए Audit CLI देखें। डैशबोर्ड सबसे हाल के परिणाम को ~/.failproofai/audit-dashboard.json पर कैश करता है (मोड 0600, एकल स्लॉट, नए रन ओवरराइट करते हैं) ताकि पुनः विजिट तत्काल हों; प्रति-ट्रांसक्रिप्ट और संपूर्ण-परिणाम दोनों कैश्स को पढ़ने पर अस्वीकार किया जाता है एक बार जब वे 7 दिन से पुराने हो जाते हैं इसलिए डैशबोर्ड कभी भी एक सप्ताह पुराना परिणाम चुप चाप serve नहीं करता है — TTL से परे /audit अपनी खाली स्थिति में गिरता है और एक नताज़ा चलाने के लिए प्रेरित करता है। रिपोर्ट के नीचे के पास [ re-audit now ] पर क्लिक करना /api/audit/run को noCache: true के साथ POST करता है — re-audit प्रति-ट्रांसक्रिप्ट कैश को बाईपास करता है और कैश्ड परिणाम को चुप चाप लौटाने के बजाय हर ट्रांसक्रिप्ट को scratch से फिर से स्कैन करता है — और डैशबोर्ड चलाने के समाप्त होने तक 1Hz पर /api/audit/status को poll करता है; चलाने के दौरान viewport के शीर्ष पर एक sticky pink progress स्ट्रिप pins होती है एक elapsed timer के साथ, और fresh परिणाम success पर जगह में स्वैप करता है (कोई पूर्ण-पृष्ठ reload नहीं; एक failed re-audit पूर्व रिपोर्ट को बरकरार रखता है)। असफलता पर स्ट्रिप लाल हो जाती है RerunError.kind (timeout / network / post_failed) को मुंडन के साथ। खाली स्थिति (कोई कैश या expired) और शून्य-सेशन स्थिति (कैश exists लेकिन स्कैन को कोई ट्रांसक्रिप्ट्स नहीं मिले) को अलग से surface किया जाता है।
नीतियां
नीतियों का प्रबंधन करने और गतिविधि की समीक्षा करने के लिए एक दो-टैब पृष्ठ।- नीतियां टैब
- गतिविधि टैब
- एकल पैनल से बहु-चयन करें कि failproofai कौन सी एजेंट CLIs को सुरक्षित रखता है — Claude Code, OpenAI Codex, GitHub Copilot, Cursor Agent, OpenCode, Pi, और Gemini CLI सभी के पास स्थापना स्थिति (
Active/Detected/Inactive) के साथ एक पंक्ति है, उपयोगकर्ता-scope सेटिंग्स पाथ, और एक brand-colored accent। वे CLIs जांचें या अनचेक करें जिन्हें आप चाहते हैं और एक ही चरण में diff को install/uninstall करने के लिएApply changesपर क्लिक करें। CLIs जिनका binary PATH पर पाया जाता है, वे पूर्व-जांचे जाते हैं। - एक एकल क्लिक के साथ व्यक्तिगत नीतियों को on या off करें (
~/.failproofai/policies-config.jsonमें लिखता है — हर installed CLI में साझा किया गया) - एक नीति को विस्तारित करें इसके मापदंडों को कॉन्फ़िगर करने के लिए (नीतियों के लिए जो
policyParamsसमर्थन करते हैं) - एक कस्टम नीतियां फ़ाइल पाथ सेट करें
स्वचालित-ताज़ा
डैशबोर्ड के शीर्ष navigation में एक auto-refresh toggle है। जब enabled हो, तो वर्तमान पृष्ठ periodically ताज़ा होता है नए सेशन्स और नीति गतिविधि दिखाने के लिए जैसे वे दिखाई देते हैं। लंबे समय तक चलने वाले autonomous agent सेशन्स की निगरानी के लिए आवश्यक।पृष्ठों को अक्षम करना
यदि आपको डैशबोर्ड के केवल कुछ हिस्से की आवश्यकता है, तोFAILPROOFAI_DISABLE_PAGES को page names की comma-separated सूची पर सेट करें:
policies, projects, audit।
प्रोजेक्ट्स पाथ कॉन्फ़िगर करना
डिफ़ॉल्ट रूप से, डैशबोर्ड standard Claude Code प्रोजेक्ट्स निर्देशिका से पढ़ता है। कस्टम सेटअप्स के लिए इसे override करें:एक non-localhost होस्ट से एक्सेस करना
जब dev mode (npm run dev) में डैशबोर्ड चल रहा हो और इसे localhost के अलावा अन्य hostname से एक्सेस किया जा रहा हो - उदाहरण के लिए, एक कस्टम डोमेन, एक remote IP, या एक tunneled URL - आप एक चेतावनी जैसी दिख सकती है:
--allowed-origins flag का उपयोग करें:
FAILPROOFAI_ALLOWED_DEV_ORIGINS environment variable को भी सेट कर सकते हैं:
यह केवल dev mode में लागू होता है। जब
failproofai (production mode) चल रहा हो, तो कोई HMR websocket नहीं है और कोई cross-origin dev resource समस्या नहीं है।
