Запуск панели управления
http://localhost:8020.
Панель управления считывает данные локального проекта, сеанса и конфигурации failproofai непосредственно из файловой системы. Дополнительные функции с аутентификацией, такие как напоминания об аудите и приглашения, отправляют информацию, необходимую для этих запросов (включая адреса электронной почты), на удалённые API.
Страницы
Проекты
Отображает все проекты Claude Code, OpenAI Codex, GitHub Copilot CLI (beta), Cursor Agent (beta), OpenCode (beta), Pi (beta), Hermes, OpenClaw, Factory Droid, Devin, Antigravity и Goose, найденные на вашем компьютере. Проекты 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 из первой записи каждого сеанса; сеансы шлюза Hermes считываются непосредственно из его SQLite хранилища в ~/.hermes/state.db (настраивается через HERMES_DB_PATH) и группируются в проекты hermes-<source> по source (Slack/Telegram/cli/cron — сеансы шлюза не имеют cwd); сеансы шлюза OpenClaw считываются из ~/.openclaw/agents/<agentId>/sessions/*.jsonl и группируются в проекты openclaw-<agentId> (также без cwd); проекты Factory Droid обнаруживаются из транскриптов JSONL в ~/.factory/sessions/<encoded-cwd>/*.jsonl и группируются по cwd; проекты Devin из её SQLite БД в ~/.local/share/devin/cli/sessions.db (группируются по working_directory каждого сеанса); проекты Antigravity из транскриптов JSONL в ~/.gemini/antigravity-cli/brain/<conversationId>/…/transcript_full.jsonl и группируются по cwd; и проекты Goose из её SQLite БД в ~/.local/share/goose/sessions/sessions.db (группируются по working_dir каждого сеанса). Проект, используемый несколькими CLI, отображается в виде одной строки со всеми соответствующими бейджами. Используйте выпадающее меню CLI над таблицей для фильтрации по конкретному агенту CLI; URL сохраняет ваш выбор как ?cli=claude|codex|copilot|cursor|opencode|pi|hermes|openclaw|factory|devin|antigravity|goose.
Каждый проект показывает:
- Имя проекта (производное от пути к папке)
- Бейдж CLI —
Claude Code(оранжевый),OpenAI Codex(фиолетовый),GitHub Copilot(синий),Cursor Agent(изумрудный),OpenCode(янтарный),Pi(розовый) и/илиHermes(индиго) - Дата самой свежей активности сеанса
Сеансы
Отображает все сеансы в проекте. Каждый сеанс показывает:- ID сеанса
- Временные метки начала и окончания
- Количество вызовов инструментов
- Счётчик активности хука (политики, которые сработали)
Просмотр сеанса
Просмотр сеанса ответит на ключевой вопрос для автономных агентов: что сделал агент и остался ли он в курсе? Бейдж CLI рядом с заголовком указывает, является ли сеанс транскриптом Claude Code, OpenAI Codex, GitHub Copilot CLI, Cursor Agent, OpenCode, Pi, Hermes, OpenClaw, Factory Droid, Devin, Antigravity или Goose. Он показывает временную шкалу всего, что произошло в сеансе:- Сообщения - текстовые ответы Claude и подсказки пользователя
- Вызовы инструментов - каждый инструмент, который вызвал Claude, с его вводом и выводом
- Активность политики - для каждого вызова инструмента, какие политики сработали и какое решение они вернули
session / messages / parts.
Аудит
Доклад, ориентированный на личность, о том, как ваш агент на самом деле вёл себя в прошлых сеансах. Запускает одно и то же сканирование, что и CLIfailproofai audit, но отображает его как однооэкранный акционный плакат + четыре раздела ниже сгиба:
- Плакат — заполняет первый просмотр. Независимый регион PNG-захвата с логотипом failproof_ai + метка аудита · индекс архетипа (
№ NN из 08) + дата аудита · числовой балл (0–100) + таблетка процентиля (top 15%) · имя архетипа (один изthe optimist,the cowboy,the explorer,the goldfish,the paranoid architect,the precision builder,the hammer,the ghost) + полоса с 3 ключевыми словами · строка редкости// only N% of agents are this archetype· сигил-плитка 8×8 пиксель · подвалaudit yours → failproof.ai. Три кнопки обмена находятся сразу за пределами поля захвата:post your archetype(намерение X),share on linkedin,download poster. Захват выполняется черезhtml-to-image, поэтому PNG соответствует экранному рендеру пиксель-в-пиксель (пунктирные границы, маска логотипа SVG, градиенты, метрики шрифта — всё сохраняется). - Сильные стороны — спокойный ✓ список строк поведения, которое ваш агент уже делает правильно, полученный из данных живого аудита (чистый коэффициент вызовов инструментов, без прямых толчков в main, нулевые утечки учётных данных, нулевые штормы повторных попыток) — каждая отображается только когда соответствующая политика имеет чистую историю в окне аудита.
- Особенности — таблица того, что прошло сквозь пальцы, ранжированная по степени важности:
when · what slipped + the policy that would've caught it · severity pill · seen, где повторяемость читается какnew(один раз),N× seen(2–9 раз) илиrecurring(10+). - Как улучшить — спокойный список строк, по одному на рекомендуемую политику: имя политики белым, однострочное описание, команда установки + кнопка копирования с правой стороны. Заголовок раздела читается как
enable all N → projected <score> · <tier>(балл, который вы достигли бы при применении каждого исправления), и его кнопка[install all]копирует объединённую командуfailproofai policy add a b c …для каждой рекомендуемой политики. - Come back better — две карточки рядом. Слева: установить напоминание (выбор интервала
3d/7d/14d/30d; сохраняется через/api/auth/reminderпосле аутентификации). Справа: разблокировать привилегии failproof —invite a friendоткрывает модальное окно, которое принимает список адресов электронной почты друзей, разделённые запятыми/пробелами/новыми строками (максимум 10 за отправку), отправляет их на/api/audit/invite, которая перенаправляет наPOST /v0/inviteapi-сервера. Api-сервер отправляет одно письмо на получателя с адресаinvite@failproof.aiс копией отправителю и установленнымReply-To, поэтому получатель видит, кто его пригласил, а отправитель получает копию в своем почтовом ящике. Анонимные пользователи маршрутизируются сначала черезAuthDialog, чтобы электронная почта отправителя была известна до отправки приглашений. Выполнение прав и привилегий — это последующее действие.
failproofai audit — см. Audit CLI для механизма базового сканирования, поддерживаемых флагов и инвариантов кэша для каждого транскрипта. Панель управления кэширует последний результат в ~/.failproofai/audit-dashboard.json (режим 0600, один слот, новые прогоны перезаписывают) так что повторные посещения происходят мгновенно; оба кэши (для каждого транскрипта и общий результат) отклоняются при чтении, когда они старше 7 дней, так что панель управления никогда не молча не служит недельный результат — после TTL /audit падает в его пустое состояние и предлагает свежий прогон. Нажимая [ re-audit now ] рядом с концом доклада, отправляет POST на /api/audit/run с noCache: true — повторный аудит обходит кэш для каждого транскрипта и повторно сканирует каждый транскрипт с нуля, а не молча возвращает кэшированный результат — и панель управления опрашивает /api/audit/status при 1Hz до завершения прогона; клейкая розовая полоса прогресса прикрепляется к верхней части области просмотра во время прогона с истёкшим таймером, и свежий результат встаёт на место при успехе (без полной перезагрузки страницы; неудачный повторный аудит оставляет предыдущий отчёт в целости). При отказе полоса становится красной с копией, обусловленной RerunError.kind (timeout / network / post_failed). Пустое состояние (нет кэша или истёк) и нулевое состояние сеансов (кэш существует, но сканирование не нашло транскриптов) отображаются отдельно.
Политики
Двухвкладочная страница для управления политиками и проверки активности.- Вкладка Policies
- Вкладка Activity
- Мульти-выбор того, какие агенты CLI защищает failproofai с одной панели — Claude Code, OpenAI Codex, GitHub Copilot, Cursor Agent, OpenCode, Pi и Hermes все имеют строку со статусом установки (
Active/Detected/Inactive), путём настроек пользовательской области и акцентом с цветом бренда. Установите или снимите флажки для CLI, которые вы хотите, и нажмитеApply changes, чтобы установить/удалить различие за один раз. CLI, чей бинарный файл обнаружен в PATH, предварительно проверяются. - Переключайте отдельные политики с помощью одного щелчка (записывает в
~/.failproofai/policies-config.json— общие для каждого установленного CLI) - Разверните политику, чтобы настроить её параметры (для политик, которые поддерживают
policyParams) - Установите пользовательский путь файла политик
Авто-обновление
Панель управления имеет переключатель авто-обновления в верхней навигации. Если это включено, текущая страница обновляется периодически, чтобы показывать новые сеансы и активность политик при их появлении. Эссенциально для мониторинга долгих сеансов автономного агента.Отключение страниц
Если вам нужны только некоторые части панели управления, установитеFAILPROOFAI_DISABLE_PAGES в разделённый запятыми список имён страниц:
policies, projects, audit.
Настройка пути к проектам
По умолчанию панель управления читает из стандартного каталога проектов Claude Code. Переопределите его для пользовательских настроек:Доступ с хоста, отличного от localhost
При запуске панели управления в режиме разработки (npm run dev) и доступе к ней с имени хоста, отличного от localhost - например, пользовательского домена, удалённого IP или туннелированного URL - вы можете увидеть предупреждение типа:
--allowed-origins:
FAILPROOFAI_ALLOWED_DEV_ORIGINS вместо этого:
Это применяется только к режиму разработки. При запуске
failproofai (режим производства) нет вебсокета HMR и нет проблемы кросс-источник ресурса разработки.
