FrameMate — неофициальное приложение-компаньон для Steam Frame. Первая версия проекта вышла 3 октября в 09:33 UTC и позволяет видеть на Android-смартфоне фактическое изображение с гарнитуры, включая изображение окружающего пространства с камер гарнитуры (passthrough). На главном экране отображаются заряд гарнитуры и контроллеров, запущенная игра и активная загрузка.

Какие данные показывает FrameMate

Проект состоит из Flatpak-агента для Steam Frame и APK-клиента для телефона. Агент представляет собой статический бинарный файл размером около 5 МБ, использующий несколько мегабайт оперативной памяти и почти не нагружающий процессор в режиме ожидания. Для сопряжения нужно вручную ввести в приложение выведенный программой токен доступа.

  • заряд гарнитуры, состояние зарядки, оставшееся время и текущую мощность;
  • уровень заряда обоих контроллеров, в том числе во время сна;
  • название запущенной игры и её оформление Steam;
  • очередь загрузок Steam Frame с прогрессом и скоростью;
  • профиль производительности, сетевой трафик, версии SteamOS и клиента Steam;
  • температуру и состояние батареи ёмкостью 20,9 Вт·ч.

Загрузки, выполняемые на других компьютерах, в интерфейсе не отображаются. Показания батареи соответствуют данным Steam, а не необработанным значениям датчика, которые README проекта называет более низкими.

Зеркалирование и API

Агент также запускает на самой гарнитуре текстовую страницу состояния, доступную из браузера в той же сети. Небольшой API возвращает полное состояние в JSON, передаёт его через WebSocket и отдаёт изображение гарнитуры в виде потока fMP4. Передаваемое изображение кодируется аппаратными средствами Steam Frame, что, по описанию проекта, снижает нагрузку на устройство.

Главный риск — отсутствие шифрования

Агент слушает порт 7380 и обменивается данными по обычным HTTP и WebSocket, используя токен для защиты доступа. Сам проект предупреждает, что соединение не шифруется: другие пользователи той же сети потенциально могут перехватить токен и передаваемые данные, включая зеркалируемое изображение. Поэтому FrameMate рекомендуют использовать в домашней или другой доверенной Wi-Fi-сети, а не в публичных и общих сетях.

Приложение не требует Developer Mode на Steam Frame. Разработчики отдельно отмечают, что включённый режим активирует службу devkit SteamOS, открывающую отладочный интерфейс для всей сети через порт 8081, тогда как FrameMate этот порт не использует.

Релизы, совместимость и планы

3 октября вышли три версии: v0.1.0 в 09:33 UTC, v0.1.1 в 11:13 и v0.1.2 в 20:56. Последнее обновление добавило проверку обновлений в приложении, поддержку IPv6 в агенте, руководство по устранению неполадок и сменило лицензию на GPL-3.0-or-later.

Проект рассчитан только на Android. Версии для iPhone нет: разработчик объясняет это отсутствием устройств и инфраструктуры для сборки и тестирования iOS-приложения. FrameMate использует недокументированные внутренние механизмы Steam, поэтому обновление Steam или SteamOS может временно сломать отдельные функции.

На момент проверки репозитория у него было 72 звезды и 4 форка — примерно через 12 часов после первой публикации. Этот показатель отражает внимание к проекту, но не подтверждает качество его работы. FrameMate тестировался на SteamOS 0.4.3 в beta-ветке; Valve связывает эту версию с приростом автономности Steam Frame до 12%.

Среди шести ещё не реализованных пунктов указаны TLS с pinning, сопряжение по QR-коду, прогрессивное веб-приложение для телефона, а также управление паузой и порядком загрузок. Проект также подчёркивает, что не связан с Valve и не получил её одобрения.