Borrowing it
Nothing to install: this file belongs to dashpay/platform. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/dashpay/platform/v5.1-dev/.claude/skills/emulator-control/SKILL.mdgit clone --depth 1 https://github.com/dashpay/platformWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/dashpay/platform/emulator-control)<a href="https://agentmods.dev/skills/dashpay/platform/emulator-control"><img src="https://agentmods.dev/badge/skills/dashpay/platform/emulator-control/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/dashpay/platform/emulator-control"><img src="https://agentmods.dev/badge/skills/dashpay/platform/emulator-control.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 1 finding, up to medium
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- medium Tool Misuse · line 71 Tool defaults are unsafe or overly permissive (e.g. disabled TLS verification, no authentication, world-writable permissions). Unsafe defaults widen the attack surface.Fix: Override unsafe defaults with secure settings (verify=True, auth required, restrictive permissions). Review and harden all tool configurations.
What 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.1 | $0.00101 | $0.02678 |
| Opus 5.5 | $0.00040 | $0.01071 |
| Sonnet 5.5 | $0.00020 | $0.00536 |
| Haiku 4.5 | $0.00010 | $0.00268 |
Grade A, and why
emulator-control scanned grade A with 1 finding 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 2mo ago.
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.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
`curl -s https://insight.testnet.networks.dash.org/insight-api/addr/<ADDR>` How it starts
The opening of the file, as written. The whole thing — 185 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Emulator Control — drive + inspect KotlinExampleApp
The Android sibling of simulator-control. When testing KotlinExampleApp on an
Android emulator, you can do everything the user could: tap by Compose testTag,
type, swipe, screenshot, dump the view tree, unlock the device for auth-bound
signing, fund a wallet, and run identity/DPNS/DashPay flows against live
testnet. Use it alongside the human — confirm before spending funds or
broadcasting.
Setup (once per session)
export ANDROID_HOME=/opt/homebrew/share/android-commandlinetools
export PATH=$ANDROID_HOME/platform-tools:$PATH
export JAVA_HOME=/opt/homebrew/opt/openjdk@17 # for any gradle work
adb devices # find the running emulator
D=emulator-5554 # this session's serial
adb -s $D shell getprop ro.product.cpu.abi # MUST be arm64-v8a on Apple Silicon
PKG=org.dashfoundation.example # KotlinExampleApp
adb -s $D shell monkey -p $PKG -c android.intent.category.LAUNCHER 1 # launch
AVDs on this Mac: kotlin_sdk_ci (arm64-v8a — use this) and kotlin_sdk_ci_x86
(x86_64 — will NOT run the arm64-only native lib). API 35.
The killer feature: tap by Compose testTag
MainActivity sets Modifier.semantics { testTagsAsResourceId = true }, so every
Compose testTag shows up as resource-id in a uiautomator dump. That makes
the app fully scriptable by stable IDs — never hardcode pixel coords. The whole
driver is this helper (write it to the scratchpad once per session):
# ui.sh — dump the tree, find a node by resource-id (testTag) or text, tap center.
D=emulator-5554; X=/tmp/ui.xml
dump(){ adb -s $D shell uiautomator dump /sdcard/ui.xml >/dev/null 2>&1; adb -s $D pull /sdcard/ui.xml $X >/dev/null 2>&1; }
center_of(){ python3 - "$X" "$1" <<'PY'
import sys,re,xml.etree.ElementTree as ET
root=ET.parse(sys.argv[1]).getroot()
for n in root.iter('node'):
if n.get('resource-id','')==sys.argv[2]:
m=re.findall(r'\[(\d+),(\d+)\]\[(\d+),(\d+)\]',n.get('bounds',''))
if m: x1,y1,x2,y2=map(int,m[0]); print((x1+x2)//2,(y1+y2)//2); break
PY
}
tap_id(){ dump; read x y < <(center_of "$1"); [ -n "$x" ] && adb -s $D shell input tap $x $y || echo "NOT FOUND: $1"; }
shot(){ adb -s $D exec-out screencap -p > "/tmp/${1:-shot}.png"; }
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.
- 2mo ago First seen · 185 lines · 101 tokens per session scan A d38664c4bc6b
emulator-control is a skill published in the GitHub repository dashpay/platform (93 stars, last pushed today), licensed MIT. It adds 101 tokens to every session and 2,678 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
android-ui-journey-testing
XML-specified Android UI journey testing, interactive step execution, assertion verification, and JSON outcome reporting.
android_ui_verification
Automated end-to-end UI testing and verification on an Android Emulator using ADB.
solopi-ai
A command-line framework for testing Android apps and devices with SoloPi, including on-device or cloud AI decision models. It manages devices, test cases, recorded interactions, replays, performance history, and evidence.
eas-simulator
Run and control a user's app on a remote iOS/Android simulator hosted on EAS cloud. Read before running any eas simulator: commands - it has the current syntax for this experimental API. Use whenever the user needs a simulator they can't run locally - 'run my app on a cloud simulator', 'use eas simulator to…
dogfood
Systematically explore and test a mobile app on iOS/Android with agent-device to find bugs, UX issues, and other problems. Use when asked to dogfood, QA, exploratory test, find issues, bug hunt, or test this app on mobile.
test-native-extension
Validate a third-party control repo across four automated layers plus one printed manual recipe. Layer 1 asserts native-source structure (Android getName() and iOS +moduleName to manifest nativeModule; @ReactMethod / RCTEXPORTMETHOD to methods; no @ReactModule) plus load/init readiness (ReactPackage public no-arg…