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 skills add thewolffish/wolffish-app --skill mobile-simulatorsgit clone --depth 1 https://github.com/thewolffish/wolffish-appWrote 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/thewolffish/wolffish-app/mobile-simulators)<a href="https://agentmods.dev/skills/thewolffish/wolffish-app/mobile-simulators"><img src="https://agentmods.dev/badge/skills/thewolffish/wolffish-app/mobile-simulators/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/thewolffish/wolffish-app/mobile-simulators"><img src="https://agentmods.dev/badge/skills/thewolffish/wolffish-app/mobile-simulators.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.00066 | $0.06515 |
| Opus 5.5 | $0.00026 | $0.02606 |
| Sonnet 5.5 | $0.00013 | $0.01303 |
| Haiku 4.5 | $0.00007 | $0.00651 |
Grade C, and why
mobile-simulators scanned grade C 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 1mo 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.
Recursive force deletehighDestructive command
rm -rf with a variable or a broad path is one typo away from removing the wrong tree.
- pattern: 'mobile_type.*(sudo|rm -rf|password|passcode)' How it starts
The opening of the file, as written. The whole thing — 635 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Mobile simulators
One driver for iOS simulators and Android emulators or devices. The tool
descriptions above carry the contract; mobile_playbook returns the full
procedure on demand. Nothing in this body is injected into the prompt.
The loop
mobile_devices→mobile_bootormobile_use— pick the device once.- Get the app on:
xcode_run(iOS from source), ormobile_install+mobile_launch(a built.appor.apk). Launch captures logs from the first line;mobile_logreads them. mobile_indicator_on— the user sees a blue frame around the device window and "Wolffish is driving iPhone 16 Pro". Seeing and touching tools refuse to run until it is up.mobile_snapshot→mobile_tap ref=e7→ read the proof (changed? magnifier patch) →mobile_snapshotagain.mobile_screenshotfor pixels,mobile_zoomfor small targets,mobile_wait_forinstead of sleeps.- Screenshot the milestone and
send_fileit;mobile_recordfor a flow. mobile_indicator_offlast.
Contracts
- Frame: coordinates the model gives are always pixels of the latest image it received (screenshot, zoom, or the magnifier patch after an action). The plugin owns every translation to device points (iOS) or pixels (Android). A text-only snapshot with no prior image establishes a native frame so refs and coordinates still share one space.
- Refs:
e12handles into one snapshot; they expire after any action or 60 s. A stale ref is a typed error with the repair call, never a mis-tap. - Proof: every touch returns a change flag (greyscale diff before/after, whole screen and near the point) and a 480×300 magnifier patch at 2 px per device unit with a crosshair on the exact point; the patch becomes the frame.
- Indicator: model-owned lifecycle mirroring computer-use — on first, off last; the Agent's guard carries the tail notice, the turn-end nudge and the failsafe. A machine that cannot draw it does not lose driving.
- Errors:
NO_DEVICE,NOT_BOOTED,APP_NOT_INSTALLED,SNAPSHOT_*,REF_NOT_FOUND,FRAME_MISSING,OUT_OF_FRAME,WAIT_TIMEOUT,CHARSET_UNSUPPORTED,AXE_UNAVAILABLE,INDICATOR_REQUIRED,UNSUPPORTED— each with the call that fixes it,retryable: false.
What ships with it
14 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- package.json 295 B
- plugin/android.mjs 19 KB runs code
- plugin/axe.mjs 6.9 KB runs code
- plugin/devices.mjs 13 KB runs code
- plugin/errors.mjs 2.3 KB runs code
- plugin/exec.mjs 9.1 KB runs code
- plugin/frames.mjs 11 KB runs code
- plugin/helpers.mjs 5.8 KB runs code
- plugin/index.mjs 50 KB runs code
- plugin/indicator.mjs 16 KB runs code
- plugin/ios.mjs 22 KB runs code
- plugin/playbook.md 5.2 KB
- plugin/snapshot.mjs 12 KB runs code
- plugin/windows.mjs 11 KB runs code
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.
- 1mo ago Changed · +377 lines · +16 tokens per session scan A → C 7510dbf5ddec
- 1mo ago Changed · +2 lines 236948552d8d
- 1mo ago Changed · +3 lines 02101e102c06
- 1mo ago First seen · 253 lines · 50 tokens per session scan A 3c4e449e8725
mobile-simulators is a skill published in the GitHub repository thewolffish/wolffish-app (5 stars, last pushed 17d ago), licensed MIT. It adds 66 tokens to every session and 6,515 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it C with 1 finding (recursive force delete). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-12.
Other skills, from other repositories
agent-device
Automates Apple-platform apps (iOS, tvOS, macOS), Android devices, and Amazon Vega OS TV apps in Vega Virtual Devices. Use when navigating apps, taking snapshots/screenshots where supported, driving TV remotes, tapping, typing, scrolling, extracting UI info, collecting evidence, or planning agent-device CLI commands.
android-emulator
Verify and debug native, React Native, Expo, or Flutter apps on an Android Emulator with agent-device. Use when an agent needs to launch an app, inspect its live UI, tap, type, scroll, validate a code change, collect failure evidence, or reproduce a workflow on an Android virtual device.
ios-simulator
Verify and debug native, React Native, Expo, or Flutter apps on an iOS Simulator with agent-device. Use when an agent needs to launch an app, inspect its live UI, tap, type, scroll, validate a code change, collect failure evidence, or reproduce a workflow on an iPhone or iPad Simulator.
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.
verify-ui-change-in-cloud
Verifies user-facing Warp client changes by spawning a cloud agent with computer use to test Warp. Use only when the user explicitly requested computer-use verification or accepted an offer to run it, and ONLY in non-sandboxed environments and local environments. Triggers a cloud agent that runs the test-warp-ui skill.
test-warp-ui
Guides testing Warp UI features and changes using the computer use tool. Use this skill only when computer-use testing was requested (explicit request or accepted offer) and the computeruse tool is available to the agent. Covers launching Warp and verifying UI behavior.