Управляйте фермой телефонов
Установите настоящие Android-телефоны и iPhone в стойку на одном Mac, один раз сопрягите хост и управляйте всем парком через промпт на обычном языке к BusyBro или MCP-клиенту — скриншоты, нажатия, входы, автоматизации — с подтверждением на каждом действии, которое что-то меняет.
Раньше ферма телефонов означала комнату с устройствами и человека, который ходит между ними. Ферма Busymate — это хост-демон на Mac с USB-хабом с питанием: он обнаруживает каждый подключённый телефон, зеркалит каждый экран в ваш браузер, открывает каждое действие как инструмент и сам сопрягается как устройство в вашем дашборде, так что парк появляется рядом с вашим собственным телефоном с живым состоянием. Поскольку каждое действие — инструмент, ИИ-ассистент может управлять одним телефоном или всей стойкой одним предложением.
Это руководство ведёт от пустого хаба до этого предложения. Оно честно о границах: сырые силовые действия — shell, произвольный ввод, установка приложений не из магазина, переключение сети, перезагрузки — только для администраторов, всегда просят подтверждения и полностью недоступны ассистенту со свободным текстом. Промпт управляет безопасной, курируемой поверхностью, а это большая часть того, что нужно тестовому прогону.
Что вам
Оборудование, которое можно подключить, один Mac для хостинга и аккаунт Busymate, который будет им владеть.
Mac в роли хоста, плюс USB-хаб с питанием и кабели для передачи данных — не кабели только для зарядки.
Android-телефоны с включённой отладкой по USB и iPhone с включённым режимом разработчика — единственные нажатия на устройстве, которых требуют платформы.
Аккаунт Busymate с доступом на редактирование устройств; хост и каждый телефон, который он подготавливает, принадлежат этому владельцу.
BusyBro в дашборде или Claude Code, подключённый по MCP — предыдущее руководство, — как место, куда вы вводите промпт.
Делайте
Установить в стойку, поставить демон, увидеть появление парка, провести онбординг, затем передать агенту.
- 01
Установите телефоны в стойку
Подключите телефоны к Mac через хаб с питанием. На каждом Android включите отладку по USB и нажмите «Разрешить отладку по USB», когда хост попросит; это вся настройка, которая нужна Android. На каждом iPhone включите режим разработчика и доверьте хосту при запросе — два разовых нажатия, которых требует Apple. Всё остальное на стороне iOS подготавливает демон.
- 02
Установите демон, войдите, запустите
Одна строка устанавливает хост фермы. Войдите один раз в браузере, чтобы хост мог сопрячься — демон отказывается запускаться без входа, так что ферма никогда не работает без владельца случайно, — затем запустите его с автозапуском, чтобы он перезапускался при входе в систему и после перезагрузки. Команда статуса показывает запущенную сборку, сколько телефонов в сети и сопряжён ли хост.
Хост сопрягается как устройство Busymate с долгоживущими учётными данными, хранящимися на диске, так что ваша сессия ему больше не нужна. Каждый телефон становится дочерним устройством под ним со стабильной идентичностью, которая переживает переподключение по USB и наследует ваше владение.
Установить, сопрячь, запустить, проверить bashcurl -fsSL https://farm.busymate.net/install.sh | bash # macOS / Linux bmfarm login # sign in once in the browser so the host can pair bmfarm start --autostart # start the background daemon; relaunches at login bmfarm status # running build, phones online / total, pairing state - 03
Смотрите, как парк появляется в дашборде
Откройте представление Phone Farm в дашборде. В его боковой панели есть пункт Daemon — панель уровня фермы с панелью управления для каждой машины и живым хвостом логов, стримящимся с хоста, — и по пункту на каждую машину фермы, открывающему Android- и iOS-телефоны этого Mac. Каждый телефон показывает модель, версию ОС, батарею и состояние, а также живое зеркало: экран стримится как видео и аппаратно декодируется в вашем браузере, а ваши нажатия, свайпы и клавиши доходят до физического устройства. Восстановление после перезапуска демона управляется heartbeat, так что обновлять ничего не нужно.
- 04
Проведите онбординг каждого телефона одним действием
Каждому телефону нужно держать актуальными несколько компонентов — управляющий раннер на устройстве, доверие к сертификату, приложение Busymate DevTools для захвата и так далее. Вместо обхода стойки действие Onboard all phones на карточке хоста выполняет обход парка за вас, с изоляцией по телефонам, чтобы одна неудачная установка никогда не прерывала проход. Дашборд отображает живую сетку телефонов по компонентам; ячейка становится зелёной только когда демон подтверждает установленную версию, уже актуальный компонент — приглушённый пропуск, а всё, что требует человека — запрос Apple ID, платное приложение, — помечается, а не имитируется.
- 05
Подключите агента
Две двери ведут к одним и тем же инструментам. BusyBro встроен в дашборд и в отдельное приложение BusyBro, уже вошедшее под вашим именем. Claude Code — или любой MCP-клиент — подключается к тому же серверу одной командой и входом через браузер, как описано в предыдущем руководстве. В любом случае ассистент действует от вашего имени: каждый инструмент фермы ограничен вашими собственными устройствами фермы, зависит от включённого на хосте удалённого управления и проверяется по возможностям вашей роли.
- 06
Напишите один промпт
Скажите, что нужно сделать по всему парку, обычным языком. Ассистент перечисляет телефоны в сети, делает скриншот каждого, открывает приложение, находит и нажимает нужные элементы, читая иерархию интерфейса экрана, вводит данные для входа и отчитывается по каждому телефону. Переменные, которые вы задаёте в консоли фермы — тестовый аккаунт, промокод, — доступны автоматизациям по имени, так что промпту никогда не нужно содержать пароль.
Всё, что меняет телефон, сначала показывает карточку подтверждения — с полной нагрузкой того, что вот-вот выполнится, — и ждёт. Скриншот или дамп интерфейса подтверждения не требует; нажатие, установка из публичного магазина или запуск автоматизации — требует. Сырой shell, сырой ADB, произвольный ввод, переключение прокси и авиарежима, перезагрузки — силовые действия только для администраторов, до которых ассистент со свободным текстом вообще не дотягивается; они остаются в дашборде и MCP-инструментах за явным подтверждением.
Один промпт — вся стойка textOn every online farm phone: take a screenshot, open the checkout app, sign in with the test-account variables, and tell me which phones show the new "Pay in 3" button. Flag any phone whose screen is black. - 07
Сделайте это повторяемым и захватывайте, что отправляют телефоны
Автоматизации — это обычные JavaScript-файлы на хосте с API устройства — установить, запустить, найти и нажать, ввести, скриншот — и планировщик, запускающий их по интервалу. Попросите ассистента запланировать одну, и она станет ночной задачей с результатами по каждому устройству. Трафик телефонов фермы идёт через общий прокси в ту же ленту, что и ваш собственный телефон, так что сетевую активность прогона можно инспектировать, мокать и экспортировать как любой другой захват; Android-телефоны фермы работают на рутованном уровне, где сертификат лежит в системном хранилище, что расшифровывает всё, кроме приложений с пиннингом.
Здоровье парка — тоже инструмент: спросите, какие телефоны требуют внимания, и ассистент прочитает тот же heartbeat, который показывает дашборд, и сможет запустить проход самовосстановления — снова за подтверждением.
Превратите прогон в ночную задачу textRun the login-smoke automation on all Android farm phones every night at 02:00 and message me only if a phone fails.
Что может
Проблемы фермы — почти всегда кабель, нажатие на телефоне или защита, делающая свою работу.
Телефон так и не появляется в парке
В девяти случаях из десяти это кабель только для зарядки или неотвеченный запрос «Разрешить отладку по USB» на Android. Замените кабель, разблокируйте телефон и примите запрос. На iOS убедитесь, что режим разработчика включён и хосту доверено.
Демон отказывается запускаться
Он сразу падает, пока у хоста нет владельца. Выполните команду входа, войдите, затем запустите снова — команда статуса подтвердит сопряжение.
Плитка зеркала чёрная
Телефон заблокирован, экран выключен или управляющий раннер ещё не активирован. Разбудите телефон; если остаётся чёрным, выполните действие онбординга для этого телефона, чтобы его компоненты перепроверились по реальным данным.
Ассистент говорит, что не может выполнить shell-команду
Верно и намеренно: сырой shell, сырой ADB и другие силовые действия только для администраторов и закрыты для ассистента со свободным текстом. Используйте консоль дашборда или MCP-инструмент напрямую, где действует явное подтверждение.
Действие отклонено для телефона, который я вижу
Действия фермы ограничены вашими собственными устройствами фермы и требуют включённого на хосте удалённого управления плюс доступа на редактирование устройств в вашей роли. Проверьте включение на хосте в его настройках и возможности вашей роли.
Частые
Это облачные телефоны или эмуляторы?
Ни то, ни другое. Это физические телефоны на хабе, подключённом к машине под вашим контролем. Можно также арендовать управляемый парк вместо сборки собственного — об этом на странице цен.
Может ли ассистент действительно сломать телефон?
Разрушительная поверхность — только для администраторов, за подтверждением и недоступна из свободного промпта. То, что промпт может — скриншоты, нажатия, запуск приложений, установки из магазина, автоматизации, — всегда показывает точное действие перед выполнением.
Работает ли захват трафика на телефонах фермы?
Да. Телефоны фермы идут через общий прокси в ту же ленту дашборда, что и любое другое устройство, а рутованные Android-телефоны фермы расшифровывают всё в системе, кроме пиннинга сертификатов.
Стойка настоящих телефонов,
Подключите их, сопрягите хост и позвольте ассистенту управлять парком — а вы подтверждаете каждое изменение.