sim-use CLI
CLI показывает агенту экран iOS-симулятора или Android-эмулятора компактным списком элементов и нажимает их по короткому алиасу.
- 1 541 ★ репозитория
- Последний коммит
- Apache-2.0
Расширенный доступ
Почему такой уровень
- Агент получает управление экраном симулятора и устройства: нажатия, ввод текста, снимки экрана и видео.
- Подключенные к Mac физические iPhone и iPad управляются в экспериментальном режиме, держите на них тестовые данные.
Установка
- Работает в
Ручная установка
brew install lycorp-jp/tap/sim-useПредварительно выполните `brew tap lycorp-jp/tap`. Затем `sim-use init --client claude` ставит встроенный скилл. Нужен macOS 14 или новее.
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Агент получает управление экраном симулятора и устройства: нажатия, ввод текста, снимки экрана и видео.
- Подключенные к Mac физические iPhone и iPad управляются в экспериментальном режиме, держите на них тестовые данные.
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
sim-use — командная строка для управления мобильным приложением из цикла агента: посмотреть экран, нажать, проверить результат. Команда `sim-use ui` печатает экран как компактное дерево элементов с номерами вроде `@9`, а `sim-use tap @9` нажимает нужный элемент без координат. По словам авторов, такое описание примерно в 16 раз короче сырого JSON дерева доступности, и модели хватает пары сотен токенов на целый экран. Инструмент использует API доступности Apple, конвейер ввода iOS Simulator и AccessibilityService на Android. Один набор команд работает с iOS-симуляторами, Android-эмуляторами и устройствами, а USB-подключенные iPhone и iPad поддерживаются экспериментально с урезанным набором команд. Кроме `ui` и `tap`, есть `swipe`, `long-press`, `type`, `paste`, `gesture`, `screenshot`, `record-video`, выбор элемента по `#id` или `--label`. Для каждого устройства работает фоновый демон, поэтому круг «посмотреть и нажать» занимает около 300 мс. Команда `sim-use init --client claude` кладет в каталог скиллов клиента встроенный скилл со всем набором команд. Ответы можно получать в формате `--json` с подсказками при ошибках.
Для кого. Мобильным разработчикам, которые хотят, чтобы агент сам запускал приложение в симуляторе и проверял, что экран выглядит и работает как задумано.
Подходит, если
- Агент дописал экран настроек, и нужно, чтобы он сам открыл его в симуляторе и нажал все пункты.
- Сценарий проверки на iOS и Android должен идти одним набором команд.
- Нужно записать видео прохождения сценария или снять скриншоты после каждого шага.
- Поле ввода принимает кириллицу или эмодзи, и обычный ввод ломается. Для этого есть `paste`.
- Хочется сократить токены на описании экрана в длинном цикле проверки.
Не подходит, если
- Нужны автотесты для CI на постоянной основе: для этого лучше подойдут XCUITest или Maestro со стабильными сценариями.
- Приложение работает только на реальном устройстве с полным набором команд: для физических iPhone доступна лишь часть возможностей.
- У вас нет macOS: часть команд, видео и `init` работают только на ней.
Пример запроса к агенту
Запусти приложение в симуляторе iPhone, открой экран настроек через sim-use, нажми пункт «Основные» и сделай скриншот.Ограничения
Сборка из исходников требует macOS 14 и новее и свежего Xcode, готовая версия ставится через Homebrew. Поддержка физических iPhone и iPad экспериментальная. Для Android один раз выполняется `sim-use android init --device <серийный номер>`, он ставит служебный APK на устройство. Если одноэкранное дерево пустое, потому что экраном владеет другой процесс, `ui` пробует обнаружение между процессами и помечает результат как плоский. Лицензия Apache-2.0.
Как отключить. Удалите скилл командой `sim-use init --uninstall --client claude`, затем выполните `brew uninstall sim-use`. Фоновые демоны завершаются вместе с сеансом, служебный APK на Android удалите вручную.
Частые вопросы
Как агент выбирает элемент для нажатия?
По алиасу `@N` из последнего `ui`, по `#id`, по метке через `--label` или по координатам. Алиас быстрее всего, id устойчивее при смене верстки.
Работает ли он с Android?
Да. Один раз ставится служебный APK командой `sim-use android init`, после чего те же команды работают на эмуляторе и устройстве.
Что дает ключ `--json`?
Структурированный ответ с полем `hint` при ошибках, который удобно разбирать в цикле агента.
Нужно ли запускать симулятор вручную?
Достаточно, чтобы симулятор был загружен. Если загружен один, флаг `--device` указывать не нужно.
Как подключить скилл к Claude Code?
Выполните `sim-use init --client claude`. Без аргументов команда сама находит установленные клиенты.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
CLI-инструментыКоманда npx serve-sim выводит симулятор iOS в браузер и позволяет агенту нажимать, свайпать, вводить текст и подменять камеру
Baguette CLI сохраняет снимки и видео iOS Simulator для ревью, пока агент выполняет тест без открытого окна Simulator.app.
CLI проверяет экраны SwiftUI и гоняет тесты iOS без Симулятора: агент читает дерево доступности и правит вьюхи за 2 секунды.
Агент в IDE или CLI запускает iOS-симуляторы и Android-эмуляторы, читает экран, профилирует и гоняет тесты.
Плагин DeepSeek Harness: iOS Simulator и iPhone по USB прямо в диалоге, 22 инструмента управления
Десктопное приложение и CLI для Android-эмуляторов, iOS-симуляторов и телефонов с MCP-сервером для агента
Коротко о README
Авторы позиционируют sim-use как недостающее звено в цикле «спланировать, написать, проверить, выпустить» для мобильной разработки с агентами. Код на Swift, лицензия Apache-2.0, автор компания LY Corporation.