Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/willbytee-sudo/android-qa-kit/android-qanpx skills add willbytee-sudo/android-qa-kit --skill android-qagit clone --depth 1 https://github.com/willbytee-sudo/android-qa-kitWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00080 | $0.00854 |
| Opus 5 | $0.00040 | $0.00427 |
| Sonnet 5 | $0.00016 | $0.00171 |
| Haiku 4.5 | $0.00008 | $0.00085 |
Grade A, and why
android-qa scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 78 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Android QA
Drive an Android device (emulator or real phone) through adb to test the user's app.
Full reference: AGENTS.md in this repository. Read it before improvising
commands — it documents six verified traps, and one of them blinds you with no error output.
1. Find out what you're working with
adb devices
If adb isn't on the PATH, look in $env:ANDROID_HOME, $env:LOCALAPPDATA\Android\Sdk and
C:\Android\Sdk before concluding it's missing. Android Studio installs it — many users
already have it.
| id looks like | mode |
|---|---|
emulator-5554 |
emulator |
ZY22JMJD5R |
real device over USB |
192.168.1.50:5555 |
real device over wireless |
| (empty) | nothing connected — see section 4 of AGENTS.md |
2. Know what your mode cannot do
Everything works in both modes except these, which are emulator-only:
- Fake GPS (
adb emu geo fix) — on a physical phone this command does not exist - Changing RAM
- Wiping to a clean state
If the user asks for one of these on a real device, say so instead of trying it.
3. The working loop
adb install -r app.apk
adb shell pm list packages | Select-String their-app # confirm the real package name
adb shell monkey -p PACKAGE -c android.intent.category.LAUNCHER 1
adb shell uiautomator dump /sdcard/ui.xml # what's on screen
adb shell input tap 540 1200
adb logcat -d *:E
From the uiautomator dump, take each node's text and bounds. The centre of bounds is
where you tap. Never eyeball pixels on a screenshot — use the dump's coordinates.
4. Two traps that will bite you
Screenshots corrupt silently in PowerShell. adb exec-out screencap -p > shot.png produces
a broken PNG and reports no error — > is text redirection and destroys the binary. Always:
adb shell screencap -p /sdcard/s.png
adb pull /sdcard/s.png shot.png
Verify the header is 89 50 4E 47. If it's EF BB BF, the file is corrupt and you are blind.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- yesterday First seen · 78 lines · 80 tokens per session scan A 0d26c32f604a
android-qa is a skill published in the GitHub repository willbytee-sudo/android-qa-kit (3 stars, last pushed 1mo ago), licensed MIT. It adds 80 tokens to every session and 854 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
release
Cut an adb-mcp release — review what's landed since the last tag, verify the new tools actually work over a real stdio session, bump the four version files that CI hard-fails on, write the CHANGELOG section that becomes the release notes, replicate the release gate locally, then tag, push, and confirm the GitHub…
rn-expo
The RN/Expo dev-build recipe for adb-mcp — adbreverse before launching (or the dev client silently runs its embedded bundle), appstate to confirm it is on Metro, on the RIGHT Metro, and not serving stale JavaScript after a git checkout, then reloadapp. Use whenever driving a React Native or Expo dev build, or when…
build-and-test
Mapping a multi-module Gradle project before guessing a task name, building a variant, running JVM vs on-device tests, and turning a JaCoCo coverage report into the specific lines that need a test. Use when building, testing, or checking coverage for an Android/Gradle project.
crash-triage
Using logcat to surface the real "Caused by:" root cause hidden behind a generic UI error, plus app lifecycle tools for reproducing failures. Use when an app crashes, shows a generic error dialog, or a task needs to find why a native call failed.
driving
The core observe→locate→act→re-observe loop for driving an Android UI with adb-mcp — true-pixel coordinates, and gotchas like overlays eating taps, keyboards covering buttons, and settle delays. Use whenever tapping, swiping, typing, or otherwise interacting with an Android screen.
getting-started
How to list AVDs, boot an emulator, target a device with the serial argument, and run a first interaction with adb-mcp. Use when starting a new Android automation task, or when no device/emulator is booted yet.