PhoenixReplay CLI

Пакет записывает сессии Phoenix LiveView и воспроизводит их по состоянию, а скиллы учат агента ставить запись и разбирать ошибки.

  • 110 ★ репозитория
  • Последний коммит
  • MIT
CLI

Расширенный доступ

Почему такой уровень

  • Записи содержат ввод пользователей и данные из `assigns`, ключи вроде `password` и `token` скрываются, но остальное нужно чистить своим санитайзером
  • Панель воспроизведения на проде без собственной аутентификации открывает чужие сессии
Все причины и проверки

elixir-vibe/phoenix_replay

Установка

Работает в

Ручная установка

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`.

Обсуждение

Вопросов и отзывов пока нет.

Плагин Claude Code для Elixir, Phoenix и LiveView: специализированные агенты, проверки и правила против типичных ошибок

ПлагинРасширенный доступ574Звезды репозитория

Tidewave Phoenix

tidewave_phoenix

MCP-сервер для Phoenix: агент выполняет код в контексте работающего приложения разработки, читает живые журналы и обращается к проекту как через IEx

MCP-серверШирокий доступ861Звезды репозитория
Официальный

Справочник по SDK @upstash/redis для агента: структуры данных, кэш, лимиты запросов, блокировки и полнотекстовый поиск

СкиллМинимальный доступ985Звезды репозитория
Официальный

Три скилла по логированию в TypeScript: разбор логов кода и переход на события с полным контекстом, журнал аудита и анализ локальных логов

СкиллРасширенный доступ1,9 тыс.Звезды репозитория

Скилл и плагин RubyLLM помогают агенту писать чаты, инструменты, MCP и структурированный вывод в приложениях на Ruby и Rails

ПлагинМинимальный доступ4,5 тыс.Звезды репозитория
Официальный

Официальные 15 скиллов Redis учат агента структурам данных, поиску, кластерам и памяти агента, плюс MCP-сервер документации.

ПлагинМинимальный доступ175Звезды репозитория

Сравнение с похожими

Карточки с тем же главным запросом: чем они отличаются.

ИнструментОфициальныйАвторизацияЗвезды репозиторияГлавное отличие
PhoenixReplay (эта карточка)нет110
Elixir Phoenix Plugin for Claude Codeнет574плагин с правилами и агентами для разработки на Elixir и Phoenix; здесь запись и разбор реальных сессий LiveView
Tidewave Phoenixнетне нужна861MCP для разработки и отладки приложения Phoenix изнутри; здесь воспроизведение пользовательских сессий по `assigns`

Коротко о README

Запись идет на сервере, где `assigns` уже известны, поэтому воспроизведение показывает то, что отрисовал сервер. Подробности разобраны в документации на HexDocs.

Бейдж для README

Сообщить о проблеме