android-adb — скилл для Claude Code: что делает и как установить
Скилл учит агента управлять смартфонами и эмуляторами через команды ADB. Пригодится для тестирования приложений, снятия дампов экрана и автоматизации ввода.
npx skills add httprunner/skills --skill android-adb -a claude-codeЧто делает android-adb
Скилл даёт ассистенту готовые сценарии работы с утилитой adb. В инструкции заложены вызовы для поиска подключённых устройств, соединения по Wi-Fi через порт 5555, запуска экранов через am start или monkey, а также снятия скриншотов и выгрузки дерева интерфейса через uiautomator.
Перед кликами по координатам модель обязана запросить разрешение дисплея через команду adb shell wm size. Если к компьютеру подключено несколько устройств, скилл требует явно передавать серийный номер через флаг -s <serial>, иначе консоль вернёт ошибку неоднозначности.
Штатный ввод текста через input text поддерживает только ASCII, поэтому для спецсимволов и других алфавитов скилл переключается на широковещательные команды приложения ADB Keyboard с передачей текста в base64.
Какие задачи решает
- подключить Android-устройство по Wi-Fi без постоянного кабеля
- снять скриншот экрана или выгрузить XML-дерево интерфейса
- запустить, протестировать или принудительно остановить пакет
- воспроизвести нажатия кнопок, тапы по координатам и длинный свайп
Примеры запросов агенту
- Подключи телефон по адресу
192.168.1.50:5555и запусти приложениеcom.example.app - Сделай скриншот с устройства
emulator-5554и сохрани его в файлscreen.png - Сними дамп UI-дерева через uiautomator и найди кнопку подтверждения
Как установить android-adb
1Через Skills CLI (Vercel)
npx skills add httprunner/skills --skill android-adb -a claude-code2Вручную: положить файлы
~/.claude/skills/android-adb/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/android-adb/
1Через Skills CLI (Vercel)
npx skills add httprunner/skills --skill android-adb -a codex2Вручную: положить файлы
.agents/skills/android-adb/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add httprunner/skills --skill android-adb -a cursor2Вручную: положить файлы
.cursor/skills/android-adb/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install httprunner/skills android-adb2Вручную: положить файлы
.github/skills/android-adb/SKILL.md1Через Skills CLI (Vercel)
npx skills add httprunner/skills --skill android-adb -a gemini-cli2Командой платформы
gemini skills install https://github.com/httprunner/skills --path android-adbВручную: положить файлы
.devin/skills/android-adb/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add httprunner/skills --skill android-adb -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о android-adb
Как установить android-adb в Claude Code?
Выполните в терминале команду npx skills add httprunner/skills --skill android-adb -a claude-code. Файл навыка запишется в ~/.claude/skills/android-adb/SKILL.md.
Что делает скилл android-adb?
Он передаёт ИИ-ассистенту правила и примеры низкоуровневых команд ADB для управления Android-устройствами. Агент сможет эмулировать жесты, управлять жизненным циклом приложений и читать состояние окон.
Как скилл передаёт текст со специальными символами?
Команда input text принимает только базовые символы ASCII с заменой пробелов на %s. Для спецзнаков и нелатинского ввода скилл задействует сервис ADB Keyboard, передавая строку в кодировке base64.
Исходный текст
SKILL.md · MIT
--- name: android-adb description: Android device control via raw ADB commands. Use for device/emulator discovery, USB or Wi-Fi connection, app launch/force-stop, tap/swipe/keyevent/text input, screenshots, UI hierarchy dump, and ADB troubleshooting. --- # Android ADB Reference for controlling Android devices with raw `adb` commands. ## Execution Constraints - Use `adb -s <serial>` whenever more than one device is connected. - Confirm screen resolution before coordinate actions: `adb -s SERIAL shell wm size`. - Ask for missing required inputs before executing (serial, package/activity, coordinates, APK path). - Surface actionable stderr on failure (authorization, cable/network, tcpip state). - Prefer ADB Keyboard broadcast for CJK and special character input when ADB Keyboard is installed. ## Device And Server ```bash # Start ADB server adb start-server # Stop ADB server adb kill-server # List devices adb devices -l # Target a specific device (use when multiple devices are online) adb -s SERIAL <command> ``` ## Wi-Fi Connection ```bash # Enable tcpip (USB required first) adb -s SERIAL tcpip 5555 # Get device IP adb -s SERIAL shell ip route | grep src # or adb -s SERIAL shell ip addr show wlan0 # Connect over network adb connect <ip>:5555 # Disconnect adb disconnect <ip>:5555 ``` ## Device State ```bash # Screen size adb -s SERIAL shell wm size # Current foreground app (package/activity from mCurrentFocus) adb -s SERIAL shell dumpsys window | grep -E 'mCurrentFocus|mFocusedApp' # Get home launcher package (for back-home detection) adb -s SERIAL shell cmd package resolve-activity --brief -c android.intent.category.HOME # Raw shell command adb -s SERIAL shell <command> ``` ## App Lifecycle ```bash # Verify package installed adb -s SERIAL shell pm list packages | grep <package> # Launch by package (via monkey) adb -s SERIAL shell monkey -p <package> -c android.intent.category.LAUNCHER 1 # Launch by activity adb -s SERIAL shell am start -W -n <package>/<activity> # Launch by URI/scheme adb -s SERIAL shell am start -W -a android.intent.action.VIEW -d "<scheme://path>" # Force-stop adb -s SERIAL shell am force-stop <package> ``` ## Input Actions ```bash # Tap adb -s SERIAL shell input tap X Y # Double tap (two taps with short delay) adb -s SERIAL shell input tap X Y && sleep 0.1 && adb -s SERIAL shell input tap X Y # Long press (swipe to same point with duration) adb -s SERIAL shell input swipe X Y X Y 3000 # Swipe adb -s SERIAL shell input swipe X1 Y1 X2 Y2 [duration_ms] # Key event adb -s SERIAL shell input keyevent KEYCODE_BACK adb -s SERIAL shell input keyevent KEYCODE_HOME adb -s SERIAL shell input keyevent KEYCODE_ENTER # Return to home (press BACK repeatedly, check foreground against home launcher) for i in $(seq 1 20); do adb -s SERIAL shell input keyevent KEYCODE_BACK sleep 0.5 # Check if home reached by comparing current focus to home package CURRENT=$(adb -s SERIAL shell dumpsys window | grep mCurrentFocus) echo "Round $i: $CURRENT" done ``` ## Text Input ```bash # Plain text input (ASCII only, spaces escaped as %s) adb -s SERIAL shell input text "hello%sworld" # Input via ADB Keyboard (supports CJK and special characters) # First ensure ADB Keyboard is active: adb -s SERIAL shell ime set com.android.adbkeyboard/.AdbIME # Then send text (base64 encoded): adb -s SERIAL shell am broadcast -a ADB_INPUT_B64 --es msg "$(echo -n 'your text' | base64)" # Clear text via ADB Keyboard adb -s SERIAL shell am broadcast -a ADB_CLEAR_TEXT ``` ## Screenshot And UI Tree ```bash # Screenshot to local file adb -s SERIAL exec-out screencap -p > screenshot.png # Screenshot to device then pull adb -s SERIAL shell screencap -p /sdcard/screen.png adb -s SERIAL pull /sdcard/screen.png ./screen.png # Dump UI hierarchy XML adb -s SERIAL shell uiautomator dump /sdcard/window_dump.xml adb -s SERIAL pull /sdcard/window_dump.xml ./window_dump.xml ``` ## App Install And Uninstall ```bash # Install APK (replace existing) adb -s SERIAL install -r /path/to/app.apk # Uninstall adb -s SERIAL uninstall <package> ``` ## Common Keycodes | Keycode | Description | |---------|-------------| | `KEYCODE_BACK` | Back button | | `KEYCODE_HOME` | Home button | | `KEYCODE_ENTER` | Enter/confirm | | `KEYCODE_DEL` | Delete/backspace | | `KEYCODE_VOLUME_UP` | Volume up | | `KEYCODE_VOLUME_DOWN` | Volume down | | `KEYCODE_POWER` | Power button | | `KEYCODE_TAB` | Tab key | | `KEYCODE_ESCAPE` | Escape key |
© httprunner · MIT · httprunner/skills