Перейти к основному содержанию
Панель управления failproofai — это локальное веб-приложение для мониторинга сеансов ваших AI-агентов и управления политиками. Узнайте, что делали ваши агенты, пока вас не было.

Запуск панели управления

failproofai
Открывается по адресу http://localhost:8020. Панель управления читает данные прямо из файловой системы — из папок вашего проекта Claude Code и файлов конфигурации failproofai. Ничего не записывается в удалённый сервис.

Страницы

Проекты

Показывает все проекты Claude Code, OpenAI Codex, GitHub Copilot CLI (beta), Cursor Agent (beta), OpenCode (beta), Pi (beta) и Gemini CLI (beta), найденные на вашем компьютере. Проекты 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/ как резервные варианты) для поиска скаляра cwd в meta.json / session.json / workspace.yaml; проекты OpenCode обнаруживаются путём запроса его БД SQLite в ~/.local/share/opencode/opencode.db через opencode db --format json (мы читаем таблицы session и project и группируем по project_id); проекты Pi обнаруживаются путём сканирования JSONL-транскриптов для каждого сеанса в ~/.pi/agent/sessions/<encoded-cwd>/<timestamp>_<uuid>.jsonl (настраивается через PI_SESSIONS_DIR) и извлечения cwd из первой записи каждого сеанса; проекты Gemini CLI обнаруживаются путём сканирования ~/.gemini/tmp/<basename>/chats/session-<timestamp>-<uuid-prefix>.jsonl (настраивается через GEMINI_SESSIONS_DIR) и восстановления канонического пути cwd из соседнего текстового маркера .project_root. Проект, используемый несколькими CLI, отображается как одна строка со всеми соответствующими значками. Используйте выпадающий список 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 сеанса
  • Временные метки начала и конца
  • Количество вызовов инструментов
  • Счётчик активности хуков (количество срабатываний политик)
Используйте фильтр по диапазону дат и поиск по ID сеанса для сужения списка. Сеансы разделены на страницы. Нажмите на сеанс, чтобы открыть средство просмотра сеанса.

Средство просмотра сеанса

Средство просмотра сеанса отвечает на ключевой вопрос для автономных агентов: что сделал агент и остался ли он сосредоточен на задаче? Значок CLI рядом с заголовком указывает, является ли сеанс транскриптом Claude Code, OpenAI Codex, GitHub Copilot CLI, Cursor Agent, OpenCode, Pi или Gemini CLI. Он показывает временную шкалу всего, что произошло в сеансе:
  • Сообщения — текстовые ответы Claude и подсказки пользователя
  • Вызовы инструментов — каждый инструмент, вызванный Claude, с его входными и выходными данными
  • Активность политик — для каждого вызова инструмента показывает, какие политики сработали и какое решение они вернули
Строка статистики в верхней части показывает длительность сеанса, общее количество вызовов инструментов и сводку решений хука (количество allow / deny / instruct). Нажмите кнопку Download Logs для экспорта сеанса. Для сеансов Claude Code, Codex, Copilot, Cursor, Pi и Gemini вы получите оригинальный JSONL-транскрипт, хранящийся на диске, в точности как он есть; для OpenCode (чьи сеансы находятся в SQLite, а не на диске) вы получите JSON-документ, зеркалирующий лежащие в основе таблицы session / messages / parts.

Аудит

Характерный отчёт о том, как ваш агент на самом деле вёл себя в прошлых сеансах. Запускает то же сканирование, что и CLI failproofai audit, но отображает его как панель управления с шестью разделами:
  1. Identity — классифицирует вашего агента в один из 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» и завершающую однострочку.
  2. Show off your agent — захватывает карточку идентификации как 1200×630 PNG, подходящую для публикации в X / LinkedIn (нажмите make poster).
  3. Strengths — зелёные галочки на правильно работающих поведениях вашего агента, полученные из данных живого аудита (чистая частота вызовов инструментов, средняя длина сеанса, ноль утечек учётных данных, ноль бурь повторов и т. д.).
  4. Score + leaderboard — оценка 0–100 с буквенной отметкой (S/A/B/C/D/F), гистограмма распределения, показывающая ваше положение в когорте, описание («a B starts at 71. you’re 13 points away.») и таблица лидеров с выделенной вашей строкой.
  5. Findings — карточки по каждому выводу, ранжированные по влиянию. Каждая карточка показывает, что произошло, какова стоимость, образец свидетельств с реально захваченными командами и политику failproofai, которая бы поймала тот же паттерн ($ failproofai policy add <slug>, копировать одним кликом).
  6. Prescribed policies + return loop — сетка каждой невключённой встроенной политики, которая закроет пробел, с выноской прогнозируемой оценки, плюс CTA «re-audit in 7 days».
Работает на основе времени выполнения failproofai audit — см. Audit CLI для основного движка сканирования, поддерживаемых флагов и инвариантов кэша для каждого транскрипта. Панель управления кэширует последний результат в ~/.failproofai/audit-dashboard.json (режим 0600, одно место, новые запуски перезаписывают) так что повторные посещения происходят мгновенно; оба кэша — для каждого транскрипта и общий результат — отклоняются при чтении, как только им исполнится 7 дней, поэтому панель управления никогда не молча отдаёт результат, полученный неделю назад — после истечения TTL /audit переходит в пустое состояние и предлагает свежий запуск. Нажатие [ re-audit now ] внизу отчёта отправляет POST на /api/audit/run с noCache: true — повторный аудит обходит кэш для каждого транскрипта и пересканирует каждый транскрипт с нуля вместо молчаливого возврата кэшированного результата — и панель управления опрашивает /api/audit/status на 1 Гц до завершения запуска; липкая розовая полоса прогресса прикрепляется к верхней части области просмотра во время запуска с прошедшим таймером, и свежий результат заменяет на месте при успехе (полная перезагрузка страницы не требуется; неудачный повторный аудит оставляет предыдущий отчёт нетронутым). При ошибке полоса становится красной с текстом, основанным на RerunError.kind (timeout / network / post_failed). Пустое состояние (нет кэша или истёкший) и состояние нулевых сеансов (кэш существует, но сканирование не нашло транскриптов) отображаются отдельно.

Политики

Двухвкладочная страница для управления политиками и просмотра активности.
  • Выберите несколько агентов CLI, которых failproofai защищает, из одной панели — Claude Code, OpenAI Codex, GitHub Copilot, Cursor Agent, OpenCode, Pi и Gemini CLI все имеют строку со статусом установки (Active / Detected / Inactive), путём к пользовательским параметрам и фирменным цветным акцентом. Установите или снимите флажки для CLI, которые вы хотите, и нажмите Apply changes для установки/удаления изменений в один шаг. CLI, чьё двоичное исполняемое выбрано в PATH, предварительно отмечены.
  • Включайте или выключайте отдельные политики одним щелчком (пишет в ~/.failproofai/policies-config.json — общий для каждого установленного CLI)
  • Разверните политику для настройки её параметров (для политик, поддерживающих policyParams)
  • Установите пользовательский путь к файлу политик

Автоматическое обновление

Панель управления имеет переключатель автоматического обновления в верхней навигации. При включении текущая страница периодически обновляется для отображения новых сеансов и активности политик по мере их появления. Необходимо для мониторинга долгих сеансов автономных агентов.

Отключение страниц

Если вам нужны только некоторые части панели управления, установите FAILPROOFAI_DISABLE_PAGES на список названий страниц, разделённый запятыми:
FAILPROOFAI_DISABLE_PAGES=policies failproofai
Допустимые значения: policies, projects, audit.

Настройка пути к проектам

По умолчанию панель управления читает из стандартного каталога проектов Claude Code. Переопределите его для пользовательских конфигураций:
CLAUDE_PROJECTS_PATH=/custom/path/to/projects failproofai

Доступ с нелокального хоста

При запуске панели управления в режиме разработки (npm run dev) и доступе к ней с имени хоста, отличного от localhost — например, с пользовательского домена, удалённого IP или туннелированного URL — вы можете увидеть предупреждение:
⚠ Blocked cross-origin request to Next.js dev resource /_next/webpack-hmr from "dashboard.example.com".
Это Next.js блокирует кросс-источниковый доступ к своему HMR (hot module reload) вебсокету, который является функцией только разработки. Чтобы разрешить ваш хост, используйте флаг --allowed-origins:
npm run dev -- --allowed-origins dashboard.example.com
Для нескольких хостов или IP передайте список, разделённый запятыми:
npm run dev -- --allowed-origins dashboard.example.com,192.168.1.5
Вы также можете вместо этого установить переменную окружения FAILPROOFAI_ALLOWED_DEV_ORIGINS:
FAILPROOFAI_ALLOWED_DEV_ORIGINS=dashboard.example.com npm run dev
Это применяется только к режиму разработки. При запуске failproofai (режим производства) нет вебсокета HMR и нет проблемы кросс-источникового доступа к ресурсам разработки.