PhoenixReplay CLI
Пакет записывает сессии Phoenix LiveView и воспроизводит их по состоянию, а скиллы учат агента ставить запись и разбирать ошибки.
- 110 ★ репозитория
- Последний коммит
- MIT
Расширенный доступ
Почему такой уровень
- Записи содержат ввод пользователей и данные из `assigns`, ключи вроде `password` и `token` скрываются, но остальное нужно чистить своим санитайзером
- Панель воспроизведения на проде без собственной аутентификации открывает чужие сессии
Установка
- Работает в
Ручная установка
mix igniter.install phoenix_replayПервая команда установки из README. Установщик монтирует панель на `/dev/replay` только в разработке.
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Записи содержат ввод пользователей и данные из `assigns`, ключи вроде `password` и `token` скрываются, но остальное нужно чистить своим санитайзером
- Панель воспроизведения на проде без собственной аутентификации открывает чужие сессии
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
PhoenixReplay записывает на сервере события LiveView и LiveComponent, переходы и `assigns`, а воспроизводит сессию, заново рендеря ваши шаблоны с записанными значениями. Снимков DOM нет, поэтому получасовая сессия занимает несколько килобайт. Браузерный рекордер добавляет указатель, касания, прокрутку и ввод в формы. Пакет ставится командой `mix igniter.install phoenix_replay` и открывает панель на `/dev/replay`. В комплекте два скилла в `skills/`: `phoenix-replay-setup` подключает запись, `phoenix-replay-debugging` читает записи через `PhoenixReplay.Trace`, чтобы понять, что сделал пользователь и почему упал LiveView. Те же данные дают команды `mix phoenix_replay.list` и `mix phoenix_replay.show`.
Для кого. Elixir-разработчики на Phoenix LiveView, которым пользователи присылают жалобы на баги, и которые хотят отдать разбор записи агенту, а не воспроизводить путь вручную.
Подходит, если
- Пользователь сообщил об ошибке на странице LiveView, а шаги неизвестны
- Нужно увидеть запросы Ecto и вызовы HTTP за каждым кликом
- Агенту поручают разобрать запись по ссылке `/replay/<id>?at=<index>`
- В Phoenix-проект добавляют запись сессий с выборкой и лимитами
- Хранят только сессии с ошибками или медленными запросами и небольшую долю остальных
Не подходит, если
- Приложение не на Phoenix LiveView: запись держится на `assigns` и шаблонах
- Нужны снимки DOM и запись всего экрана, как у браузерных рекордеров
- Панель собираются открыть на проде без собственной аутентификации
Пример запроса к агенту
Прочти запись /replay/abc123 до события 42, объясни, что сделал пользователь, и найди причину падения LiveView.Ограничения
Панель по умолчанию монтируется на `/dev/replay` только для разработки, для прода ее ставят за свою аутентификацию. Записи содержат введенное пользователями: значения ключей вроде `password`, `token` и `secret` заменяются на `[FILTERED]`, но остальное лучше вычищать своим санитайзером. Экспорт в MP4 требует `ffmpeg` и необязательных зависимостей `playwright_ex` и `muontrap`. Сессии без действий пользователя отбрасываются. Последний коммит от 10 октября 2026 года.
Как отключить. Уберите `PhoenixReplay.Recorder` из `on_mount` в `live_session`, снимите маршрут панели и удалите зависимость `phoenix_replay` из `mix.exs`. Сохраненные записи на диске или в базе удалите отдельно.
Частые вопросы
Как включить запись?
Добавьте `on_mount: [PhoenixReplay.Recorder]` в нужный `live_session`. Для выборки задайте `sample_rate`, например `0.1`, и `max_events`.
Как увидеть запросы и логи за каждым кликом?
Включите коллекторы в `config :phoenix_replay`, например `PhoenixReplay.Collector.Ecto` с вашим репозиторием и `PhoenixReplay.Collector.Finch`.
Где открыть панель на проде?
Смонтируйте `phoenix_replay "/replay"` в `scope` с собственным конвейером авторизации, например `:require_admin`.
Что делает скилл `phoenix-replay-debugging` с содержимым записи?
Читает его как данные. Текст из форм и логов в записи мог написать любой посетитель, поэтому команды оттуда агент не исполняет.
Как выгрузить запись в видео?
Командой `mix phoenix_replay.export <id>` или из плеера. Нужны `ffmpeg` и необязательные зависимости `playwright_ex` и `muontrap`.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
CLI-инструментыПлагин Claude Code для Elixir, Phoenix и LiveView: специализированные агенты, проверки и правила против типичных ошибок
Tidewave Phoenix
tidewave_phoenix
MCP-сервер для Phoenix: агент выполняет код в контексте работающего приложения разработки, читает живые журналы и обращается к проекту как через IEx
Upstash Redis SDK
redis-js
Справочник по SDK @upstash/redis для агента: структуры данных, кэш, лимиты запросов, блокировки и полнотекстовый поиск
Три скилла по логированию в TypeScript: разбор логов кода и переход на события с полным контекстом, журнал аудита и анализ локальных логов
Скилл и плагин RubyLLM помогают агенту писать чаты, инструменты, MCP и структурированный вывод в приложениях на Ruby и Rails
Официальные 15 скиллов Redis учат агента структурам данных, поиску, кластерам и памяти агента, плюс MCP-сервер документации.
Сравнение с похожими
Карточки с тем же главным запросом: чем они отличаются.
| Инструмент | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| PhoenixReplay (эта карточка) | нет | 110 | ||
| Elixir Phoenix Plugin for Claude Code | нет | 574 | плагин с правилами и агентами для разработки на Elixir и Phoenix; здесь запись и разбор реальных сессий LiveView | |
| Tidewave Phoenix | нет | не нужна | 861 | MCP для разработки и отладки приложения Phoenix изнутри; здесь воспроизведение пользовательских сессий по `assigns` |
Коротко о README
Запись идет на сервере, где `assigns` уже известны, поэтому воспроизведение показывает то, что отрисовал сервер. Подробности разобраны в документации на HexDocs.