Agent skill

Connecting To Devices

by skydoves in skydoves/android-testing-skills

A skill your agent uses to attach a USB device or emulator to ADB, list transports with adb devices / adb devices -l, disambiguate among multiple devices using -s SERIAL, -d (single USB), -e (single…

Apache-2.0Auto-check: notesMobile

Install Connecting To Devices

skills CLI
$ npx skills add skydoves/android-testing-skills --skill connecting-to-devices -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install skydoves/android-testing-skills connecting-to-devices --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/skydoves/android-testing-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/adb/devices/connecting-to-devices .claude/skills/connecting-to-devices && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
connecting-to-devices
GitHub stars
334
Token cost
~3.9k tokens
SKILL.md length
1,449 words
Files
1
Skills in repo
50
Repo updated
First seen
Licence
Apache-2.0

At a glance

A skill your agent uses to attach a USB device or emulator to ADB, list transports with adb devices / adb devices -l, disambiguate among multiple devices using -s SERIAL, -d (single USB), -e (single…

  • Attach a USB device
  • SKILL.md covers When to use this skill, When NOT to use this skill, Prerequisites and Workflow, plus 4 more sections
  • Calls adb; reaches developer.android.com
  • Emulator to ADB

What it does

Connecting To Devices is an agent skill from skydoves/android-testing-skills. Use this skill to attach a USB device or emulator to ADB, list transports with adb devices / adb devices -l, disambiguate among multiple devices using -s SERIAL, -d (single USB), -e (single TCP/IP), or -t TRANSPORTID, gate scripts on a transport with the canonical adb wait-for[-TRANSPORT]-<state syntax (TRANSPORT in {usb, local, any}; state in {device, recovery, rescue, sideload, bootloader, disconnect}), interpret device states (device, offline, unauthorized, no permissions, recovery, sideload, bootloader…

Its SKILL.md is about 3.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Mobile, covering Mobile testing and debugging. It works with Linux. The repository describes itself as: ⚡️ A set of skills for Android testing: Compose UI, AndroidX Test, JVM unit tests, and ADB. The licence is Apache-2.0.

When your agent uses it

  • Attach a USB device
  • Emulator to ADB
  • List transports with adb devices / adb devices -l
  • Disambiguate among multiple devices using -s SERIAL

Example prompts

  • “wait for device to boot”
  • “/connecting-to-devices”

What it can do on your machine

Read from SKILL.md and the folder at commit 8665ed5. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • adb

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • developer.android.com

    Also links to:

    • android.googlesource.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Connecting To Devices loads about 3.9k tokens when it runs. Until then it costs about 235 tokens; SKILL.md has 1,449 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~235
When it runs · the whole SKILL.md, loaded when a task matches
~3.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteRuns commands with sudoSKILL.md:138
    sudo udevadm control --reload-rules
  • NoteRuns commands with sudoSKILL.md:139
    sudo udevadm trigger

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from skydoves/android-testing-skills at commit 8665ed5, republished under its Apache-2.0 licence (© skydoves). 1,449 words, ~3,926 tokens.

Download SKILL.mdSave it as .claude/skills/connecting-to-devices/SKILL.md (or your agent's skills folder).
name
connecting-to-devices
description
Use this skill to attach a USB device or emulator to ADB, list transports with `adb devices` / `adb devices -l`, disambiguate among multiple devices using `-s SERIAL`, `-d` (single USB), `-e` (single TCP/IP), or `-t TRANSPORT_ID`, gate scripts on a transport with the canonical `adb wait-for[-TRANSPORT]-<state>` syntax (TRANSPORT in {usb, local, any}; state in {device, recovery, rescue, sideload, bootloader, disconnect}), interpret device states (`device`, `offline`, `unauthorized`, `no permissions`, `recovery`, `sideload`, `bootloader`, `rescue`), accept the RSA fingerprint dialog on first connect, and install Linux udev rules. Use when the user mentions `error: more than one device/emulator`, `error: device not found`, `unauthorized`, `no permissions`, `daemon not running`, "wait for device to boot", `wait-for-device-online` (which is not a real subcommand), or asks how to script around emulator startup.
license
Apache-2.0. See LICENSE for complete terms.
metadata.author
Jaewoong Eum (skydoves)
metadata.keywords
adb-devices, device-selector, transport-id, wait-for-device, unauthorized, no-permissions, udev-rules, usb-debugging, rsa-fingerprint, sys.boot_completed

Connecting to Devices — Listing, Selecting, and Waiting on Transports

adb devices is the most-typed adb command. The follow-on traps are real: scripts run before the device is actually online, multi-device shells fail with more than one device/emulator, Linux misses udev rules, and tutorials reference a fictional wait-for-device-online form. This skill encodes the truth set.

When to use this skill

  • The user runs adb shell with two devices plugged in and gets error: more than one device/emulator.
  • The user reports a device showing as unauthorized, offline, or no permissions in adb devices.
  • The user wants a CI script to wait until a device finishes booting before running tests.
  • The user copy-pasted adb wait-for-device-online from a blog post and it errors with usage text.
  • The user is on Linux and a freshly plugged phone never appears in adb devices.

When NOT to use this skill

  • The user wants the high-level architecture / server lifecycle / env vars — use ../../architecture/understanding-adb-architecture/SKILL.md.
  • The user wants Wi-Fi / wireless debugging — use ../connecting-over-wifi/SKILL.md.
  • The user wants to install or clear app state on the connected device — use ../../apps/installing-and-managing-apps/SKILL.md.

Prerequisites

  • Working ADB server (see ../../architecture/understanding-adb-architecture/SKILL.md).
  • Device with USB debugging enabled in Settings → System → Developer options. On Android 4.2+ developer options is hidden until "Build number" is tapped seven times in About phone.
  • On Linux: ability to write /etc/udev/rules.d/51-android.rules with sudo.
  • On Windows: a vendor USB driver (Google USB Driver via SDK Manager for Pixel/Nexus; OEM driver for other manufacturers).

Workflow

  • 1. Run adb devices first, every time. It prints one line per attached transport in the form <serial> <state> [details...]. Add -l whenever scripting:

    bash
    adb devices -l
    # List of devices attached
    # emulator-5556  device  product:sdk_google_phone_x86_64 model:Android_SDK_built_for_x86_64 device:generic_x86_64 transport_id:1
    # 0a388e93       device  usb:1-1 product:razor model:Nexus_7 device:flo transport_id:2

    -l adds product, model, device, transport_id, and (for USB) the USB bus path.

  • 2. Pick the right selector for the situation:

    FlagMeaningFails when
    -s <serial>Explicit serial. Works for USB serials (0a388e93), emulators (emulator-5554), and TCP devices (192.168.1.42:5555). Overrides $ANDROID_SERIAL.Serial not connected.
    -dThe single USB device.Zero or more than one USB device.
    -eThe single TCP/IP device (covers emulators and adb connect-ed phones).Zero or more than one TCP device.
    -t <transport_id>Numeric transport ID from adb devices -l. Stable across re-plugs of the same port.Transport ID not present.

    Note: -t is the transport ID, not a timeout flag. Wrap with shell timeout (or gtimeout on macOS) if the goal is a per-command time limit.

  • 3. Filter to "ready" devices in scripts:

    bash
    adb devices | awk '$2=="device"{print $1}'

    Single-device shortcuts: adb get-serialno returns the serial, adb get-state returns one of offline | bootloader | device, adb get-devpath returns the USB path. For the full state set, parse adb devices directly.

  • 4. Use the canonical wait-for-* form. The variants you may have seen are wrong. From adb help (scripting section), the only valid syntax is:

    wait-for[-TRANSPORT]-STATE
        TRANSPORT ∈ { usb, local, any }            (transport defaults to any)
        STATE     ∈ { device, recovery, rescue, sideload, bootloader, disconnect }

    Common forms:

    CommandBlocks until...
    adb wait-for-deviceAny transport, state device. The default — used at the start of CI scripts.
    adb wait-for-usb-deviceA USB-attached device reaches state device.
    adb wait-for-local-deviceA TCP/IP device (emulator or wireless) reaches state device.
    adb wait-for-bootloaderDevice shows up in bootloader (fastboot) state.
    adb wait-for-recovery / wait-for-sideload / wait-for-rescueSame idea for those modes.
    adb wait-for-disconnectThe currently selected device disconnects (e.g. after adb reboot).

    The doc does NOT define a wait-for-device-online form. wait-for-* only checks the transport, not boot completion — pair it with a sys.boot_completed poll:

    bash
    adb wait-for-device
    until [[ "$(adb shell getprop sys.boot_completed | tr -d '\r')" == "1" ]]; do
      sleep 1
    done
    adb shell input keyevent 82   # unlock the AOSP slide-up screen

    Compound flow around a reboot:

    bash
    adb shell reboot
    adb wait-for-disconnect
    adb wait-for-device
  • 5. Read device states correctly. From the adb page (Query for devices) plus adb help:

    StateMeaningRecovery
    deviceOnline, adbd is responsive. Does not imply boot complete — gate on sys.boot_completed.n/a
    offlineTransport exists but adbd isn't talking. Common after suspend/resume or USB hubs.adb reconnect offline, then re-plug if needed.
    unauthorizedHost RSA key not yet accepted on-device.Unlock device, tap Allow on the on-device dialog. Try a different USB cable if no dialog appears (some "charge-only" cables block data).
    recoveryBooted into recovery. Only a small subset of adb works.n/a
    sideloadOTA sideload mode. Use adb sideload package.zip.n/a
    bootloaderAt the bootloader (fastboot). adb cannot talk; use fastboot.n/a
    rescueRescue Party mode (Android 10+).n/a
    connectingTransient TLS handshake state over wireless.wait.
    no permissions(Linux only) USB visible but blocked by missing udev rules.install rules — see step 7.
  • 6. Accept the RSA fingerprint dialog on first connect.

    "When you connect a device running Android 4.2.2 (API level 17) or higher, the system shows a dialog asking whether to accept an RSA key that allows debugging through this computer." — developer.android.com/tools/adb Sequence:

    1. adbd sees a new client offering an RSA public key.
    2. The OS pops the "Allow USB debugging?" dialog showing the workstation's key fingerprint.
    3. Until the user taps Allow, adb devices reports unauthorized.
    4. After acceptance, the public key is appended to /data/misc/adb/adb_keys on the device. Tick Always allow from this computer so future connections from the same ~/.android/adbkey skip the prompt.

    Revoke an old workstation's permission via Settings → Developer options → Revoke USB debugging authorizations.

  • 7. (Linux) install udev rules so a freshly plugged phone is not stuck at no permissions. Canonical file: /etc/udev/rules.d/51-android.rules. Minimal example (one line per OEM):

    # Google
    SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0660", GROUP="plugdev", TAG+="uaccess"
    # Samsung
    SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", MODE="0660", GROUP="plugdev", TAG+="uaccess"

    Apply without reboot:

    bash
    sudo udevadm control --reload-rules
    sudo udevadm trigger
    # unplug and re-plug the device

    Most distros also ship a comprehensive android-udev / android-sdk-platform-tools-common package that drops the same file in /lib/udev/rules.d/.

  • 8. (Windows) install the vendor USB driver. Pixel / Nexus / generic AOSP devices use the Google USB Driver from SDK Manager → SDK Tools → Google USB Driver (files at android_sdk\extras\google\usb_driver\). Other OEMs require manufacturer drivers from https://developer.android.com/tools/extras/oem-usb. macOS and Linux do not need vendor drivers.

  • 9. Multi-device fan-out. ADB has no built-in --all flag. Two patterns:

    bash
    # Sequential
    for s in $(adb devices | awk '$2=="device"{print $1}'); do
      adb -s "$s" install -r app.apk
    done
    
    # Parallel (4 jobs at a time)
    adb devices | awk '$2=="device"{print $1}' \
      | xargs -I{} -P 4 adb -s {} install -r app.apk

    For sharded CI runners that each own one phone, lock the server to a single device:

    bash
    adb --one-device 0a388e93 start-server
Show full SKILL.md (385 more words)Show less

Patterns

Pattern: WRONG vs RIGHT — more than one device/emulator
bash
# WRONG
adb shell getprop ro.product.model
# adb: more than one device/emulator
# WRONG because: with two transports attached (e.g. an emulator + a USB phone),
# every non-server adb command needs an explicit selector. The command did not
# fail; it never even ran.
bash
# RIGHT
adb -s emulator-5554 shell getprop ro.product.model
# Or, if there is exactly one USB phone:
adb -d shell getprop ro.product.model
# Or set $ANDROID_SERIAL once and stop typing -s:
export ANDROID_SERIAL=emulator-5554
adb shell getprop ro.product.model
Pattern: WRONG vs RIGHT — fictional wait-for-device-online
bash
# WRONG
adb wait-for-device-online
# error: usage: ...
# WRONG because: this command does not exist. The canonical syntax is
# wait-for[-TRANSPORT]-<state> with state in {device, recovery, rescue,
# sideload, bootloader, disconnect}. There is no -online state.
bash
# RIGHT
adb wait-for-device                  # any transport, state=device
# Then poll boot complete (transport up != system booted):
until [[ "$(adb shell getprop sys.boot_completed | tr -d '\r')" == "1" ]]; do
  sleep 1
done
Pattern: WRONG vs RIGHT — racing emulator startup
bash
# WRONG
emulator -avd Pixel_API_34 &
adb install -r app.apk            # races: emulator may not be online yet
# Often: error: device 'emulator-5554' not found
bash
# RIGHT
adb start-server                  # important: see corner case below
emulator -avd Pixel_API_34 &
adb -s emulator-5554 wait-for-device
until [[ "$(adb -s emulator-5554 shell getprop sys.boot_completed | tr -d '\r')" == "1" ]]; do
  sleep 1
done
adb -s emulator-5554 install -r app.apk

Corner case (verbatim from the adb page): "running emulators [may] not show up in adb devices ... when all of the following are true: the adb server is not running; you use the emulator command with the -port or -ports option with an odd-numbered port between 5554 and 5584; ... You start the adb server after you start the emulator." Workaround: adb start-server BEFORE emulator.

Pattern: WRONG vs RIGHT — transport_id vs -t confusion
bash
# WRONG
adb -t 60 shell getprop ro.product.model
# WRONG because: -t is transport_id, not a 60-second timeout. Either there is
# no transport with id=60 (error: device not found) or the command runs against
# the wrong device.
bash
# RIGHT
# Real timeout via the shell tool:
timeout 60 adb -s emulator-5554 shell getprop ro.product.model     # GNU timeout
gtimeout 60 adb -s emulator-5554 shell getprop ro.product.model    # macOS (coreutils via brew)
# Use -t only with a transport_id from adb devices -l:
adb -t 2 shell getprop ro.product.model

Mandatory rules

  • MUST add a selector (-s/-d/-e/-t) on every adb command when more than one transport is attached, OR set $ANDROID_SERIAL.
  • MUST use the documented wait-for[-TRANSPORT]-<state> syntax. There is no wait-for-device-online.
  • MUST poll getprop sys.boot_completed after wait-for-device when the script needs the OS fully booted (e.g. before installing an APK or invoking am instrument).
  • MUST NOT confuse -t TRANSPORT_ID with a timeout flag. Wrap with timeout / gtimeout for actual timeouts.
  • MUST NOT delete ~/.android/adbkey* to "fix" unauthorized — see ../../architecture/understanding-adb-architecture/SKILL.md for the correct recovery.
  • PREFERRED: use adb devices -l and transport_id for scripts that may see two devices with the same serial (rare hardware bug or duplicate AVDs).
  • PREFERRED: install the distro's android-udev package on Linux instead of hand-maintaining 51-android.rules.

Verification

  • adb devices -l lists every connected transport with state device (no offline, unauthorized, or no permissions).
  • adb devices | awk '$2=="device"{print $1}' returns one line per ready device.
  • adb -s <serial> get-state prints device.
  • adb wait-for-device returns immediately when at least one transport is in state device.
  • adb shell getprop sys.boot_completed prints 1 after a fresh boot.
  • adb -d shell echo ok (or -e, or -s) succeeds without more than one device/emulator.
  • On Linux, lsusb shows the device and adb devices reports device (not no permissions) after udev rules apply.

References

  • ADB user guide (adb devices, wait-for-*, RSA dialog): https://developer.android.com/tools/adb
  • Run-on-device setup (Linux udev rules and Windows drivers): https://developer.android.com/studio/run/device
  • OEM USB drivers (Windows): https://developer.android.com/tools/extras/oem-usb
  • AOSP adb man page: https://android.googlesource.com/platform/packages/modules/adb/+/refs/heads/main/docs/user/adb.1.md
  • tasks/research/A1-adb-architecture-devices.md — verbatim wait-for-* table, the wait-for-device-online correction, full state set, udev rule recipe.
  • docs/CORPUS.md §I.3 (state truth set) and §I.10 (research findings).
  • Sibling skills:
    • High-level architecture: ../../architecture/understanding-adb-architecture/SKILL.md
    • Wireless ADB: ../connecting-over-wifi/SKILL.md
    • Install / clear apps: ../../apps/installing-and-managing-apps/SKILL.md
    • Run instrumented tests: ../../tests/running-instrumented-tests-via-adb/SKILL.md
  • Cross-set neighbours:
    • Run instrumented tests with AndroidJUnit4: ../../../instrumentation/runner/running-instrumented-tests-with-androidjunit4/SKILL.md
    • Configure JUnit4 on Android: ../../../jvm-tests/runner/configuring-junit4-on-android/SKILL.md
    • Source-set strategy: ../../../fundamentals/strategies/organizing-test-source-sets/SKILL.md

© skydoves, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in adb/devices/connecting-to-devices of skydoves/android-testing-skills.

Open the folder on GitHubat commit 8665ed5

Compare with similar skills

Connecting To Devices next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Connecting To Devices compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Connecting To Devices this skillskydoves/android-testing-skills334—~3.9kAutomated safety check: NotesApache-2.0
Maui AI DebuggingRedth/Maui.Gtk101—~4.1kAutomated safety check: PassMIT
Android Screenshotsboardsesh/boardsesh164—~1.1kAutomated safety check: PassApache-2.0
Diagnose Crashiamlukethedev/Herald-OS365—~964Automated safety check: PassMIT
Phone HarnessShawnPana/phone-harness3.2k—~4.3kAutomated safety check: PassMIT
Maa Issue Log AnalysisMaaAssistantArknights/MaaAssistantArknights24k—~4kAutomated safety check: PassAGPL-3.0

Similar skills

  • Maui AI Debugging

    Redth/Maui.Gtk

    End-to-end workflow for building, deploying, inspecting, and debugging .NET MAUI and MAUI Blazor Hybrid apps as an AI agent.

    101 GitHub stars~4.1k tokensUpdated 5 mo ago
    MobileAuto-check passed
  • Android Screenshots

    boardsesh/boardsesh

    Capture screenshots of the Boardsesh React Native app (packages/mobile/) running on an Android emulator, driven against Metro with a cached dev-client APK.

    164 GitHub stars~1.1k tokensUpdated today
    MobileAuto-check passed
  • Diagnose Crash

    iamlukethedev/Herald-OS

    Explain why a program crashed from its crash report or core dump, and whether it is worth reporting

    365 GitHub stars~964 tokensUpdated today
    MobileAuto-check passed
  • Phone Harness

    ShawnPana/phone-harness

    Control the user's phone — an iPhone through the Mac's iPhone Mirroring window, an Android over adb, or a rented cloud Android: open apps, tap, type, swipe, read the screen.

    3.2k GitHub stars~4.3k tokensUpdated today
    MobileAuto-check passed
  • Maa Issue Log Analysis

    MaaAssistantArknights/MaaAssistantArknights

    分析 MaaAssistantArknights 上游仓库公开 Issue(https://github.com/MaaAssistantArknights/MaaAssistantArknights/issues/...

    24k GitHub stars~4k tokensUpdated today
    MobileAuto-check passed
  • Mobile QA

    tloncorp/tlon-apps

    Run a mobile QA checklist on a physical Android device over adb for tlon-apps, then triage what fails into fixes.

    107 GitHub stars~2.4k tokensUpdated today
    MobileAuto-check passed

More from skydoves/android-testing-skills

All 50 skills in this repo
  • Asserting Bounds And Dimensions

    skydoves/android-testing-skills

    A skill your agent uses to verify Compose layout measurements from a UI test using assertWidthIsEqualTo, assertHeightIsEqualTo, assertWidthIsAtLeast, assertHeightIsAtLeast…

    334 GitHub stars~3.3k tokensUpdated 4 mo ago
    Auto-check passed
  • Asserting Node State And Text

    skydoves/android-testing-skills

    A skill your agent uses to verify a Compose semantics node's properties from a UI test using assertExists, assertDoesNotExist, assertIsDisplayed, assertIsNotDisplayed, assertIsDeactivated…

    334 GitHub stars~3.6k tokensUpdated 4 mo ago
    Auto-check passed
  • Capturing Preview Screenshots In CI

    skydoves/android-testing-skills

    A skill your agent uses to render every Jetpack Compose @Preview as a screenshot on a real Android device or emulator and publish a browsable HTML catalog from CI.

    334 GitHub stars~4.5k tokensUpdated 4 mo ago
    Auto-check: notes
  • Capturing Screenshots And Screenrecord

    skydoves/android-testing-skills

    A skill your agent uses to capture visual artefacts from a device for test failures, golden image generation, QA repro, and demo videos.

    334 GitHub stars~3.7k tokensUpdated 4 mo ago
    Auto-check passed
  • Choosing Test Rule Vs Runtest

    skydoves/android-testing-skills

    A skill your agent uses to pick the correct Compose UI test entry point.

    334 GitHub stars~4.5k tokensUpdated 4 mo ago
    Auto-check passed
  • Choosing What To Test

    skydoves/android-testing-skills

    A skill your agent uses to pick which behaviors to cover in an Android test suite using Google's five-category state vocabulary plus the explicit "what NOT to test" list from…

    334 GitHub stars~4.6k tokensUpdated 4 mo ago
    Auto-check passed

Works with

Categories

Questions about Connecting To Devices

What does Connecting To Devices do?

A skill your agent uses to attach a USB device or emulator to ADB, list transports with adb devices / adb devices -l, disambiguate among multiple devices using -s SERIAL, -d (single USB), -e (single…. Connecting To Devices is an agent skill from skydoves/android-testing-skills.

When should I use Connecting To Devices?

Connecting To Devices fits situations like: attach a USB device; emulator to ADB; list transports with adb devices / adb devices -l; disambiguate among multiple devices using -s SERIAL.

How do I install Connecting To Devices in Claude Code?

Run `npx skills add skydoves/android-testing-skills --skill connecting-to-devices -a claude-code`. Or copy the skill folder (adb/devices/connecting-to-devices in skydoves/android-testing-skills) into .claude/skills/connecting-to-devices in your project. Claude Code loads it when a task matches its description.

How do I install Connecting To Devices in Codex?

Run `npx skills add skydoves/android-testing-skills --skill connecting-to-devices -a codex`. Or copy the skill folder (adb/devices/connecting-to-devices in skydoves/android-testing-skills) into .agents/skills/connecting-to-devices in your project. Codex loads it when a task matches its description.

Can I use Connecting To Devices in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add skydoves/android-testing-skills --skill connecting-to-devices -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/connecting-to-devices, .gemini/skills/connecting-to-devices, .github/skills/connecting-to-devices and .opencode/skills/connecting-to-devices in your project.

What does Connecting To Devices need to run?

Going by SKILL.md and its folder, Connecting To Devices needs the command-line tools its instructions call (adb).

Does Connecting To Devices access the network?

SKILL.md names 2 domains. In commands or code: developer.android.com; the agent is likely to contact it when it follows the instructions. As links in the text: android.googlesource.com. This is read from the text; nothing was executed.

Is Connecting To Devices safe to install?

Our automated static check of SKILL.md found notes only (runs commands with sudo), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Connecting To Devices use?

Connecting To Devices is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Connecting To Devices use?

About 3.9k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Connecting To Devices?

Skills that share tags, products or a category with Connecting To Devices: Maui AI Debugging (Redth/Maui.Gtk, 101 stars), Android Screenshots (boardsesh/boardsesh, 164 stars), Diagnose Crash (iamlukethedev/Herald-OS, 365 stars) and Phone Harness (ShawnPana/phone-harness, 3.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Connecting To Devices?

skydoves (a GitHub user) maintains it in skydoves/android-testing-skills, which has 334 GitHub stars. The repository holds 50 skills in this directory. The repository was last updated on May 25, 2026.

Source: skydoves/android-testing-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.