Not in the top 1,000 by GitHub stars
agent-easy-use/mobile-easy-use
Runtime access for AI coding agents to observe and control Android and iOS apps.
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
skills/android-observable-code/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 79d8da76964b
No earlier version was observed for comparison.
skills/ios-observable-code/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 79d8da76964b
No earlier version was observed for comparison.
skills/to-android-integrate/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 79d8da76964b
No earlier version was observed for comparison.
skills/to-android-presets/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → 79d8da76964b
No earlier version was observed for comparison.
skills/to-android-probe/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 79d8da76964b
No earlier version was observed for comparison.
skills/to-android-probe-script/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 79d8da76964b
No earlier version was observed for comparison.
skills/to-android-run/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 79d8da76964b
No earlier version was observed for comparison.
skills/to-android-test/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 79d8da76964b
No earlier version was observed for comparison.
skills/to-android-test-script/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 79d8da76964b
No earlier version was observed for comparison.
skills/to-ios-integrate/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 79d8da76964b
No earlier version was observed for comparison.
skills/to-ios-presets/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → 79d8da76964b
No earlier version was observed for comparison.
skills/to-ios-probe/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 79d8da76964b
No earlier version was observed for comparison.
skills/to-ios-probe-script/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 79d8da76964b
No earlier version was observed for comparison.
skills/to-ios-run/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 79d8da76964b
No earlier version was observed for comparison.
skills/to-ios-test/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 79d8da76964b
No earlier version was observed for comparison.
skills/to-ios-test-script/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 79d8da76964b
No earlier version was observed for comparison.
Verified commit 79d8da76964b67c5857cd700ea30bf12538b52d0
git clone --filter=blob:none --no-checkout https://github.com/agent-easy-use/mobile-easy-use.git .hotskills/agent-easy-use-mobile-easy-use && git -C .hotskills/agent-easy-use-mobile-easy-use checkout --detach 79d8da76964b67c5857cd700ea30bf12538b52d0
# Copy each selected skill directory from .hotskills/agent-easy-use-mobile-easy-use into .agents/skills/<skill-name>/Heat
0.4- Star growth, last 7 daysNot available
- Star growth, last 24 hoursNot available
- Rank movement, last 7 daysNot available
- Commits, last 30 daysNot available
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekNot available
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
30-day change not yet available: not enough history.
Individual skills in this repository
- android-observable-code
skills/android-observable-code - ios-observable-code
skills/ios-observable-code - to-android-integrate
skills/to-android-integrate - to-android-presets
skills/to-android-presets - to-android-probe
skills/to-android-probe - to-android-probe-script
skills/to-android-probe-script - to-android-run
skills/to-android-run - to-android-test
skills/to-android-test - to-android-test-script
skills/to-android-test-script - to-ios-integrate
skills/to-ios-integrate - to-ios-presets
skills/to-ios-presets - to-ios-probe
skills/to-ios-probe - to-ios-probe-script
skills/to-ios-probe-script - to-ios-run
skills/to-ios-run - to-ios-test
skills/to-ios-test - to-ios-test-script
skills/to-ios-test-script
How it works
android-observable-code
When your agent uses it
When writing or modifying Android code, improve observability with minimal code changes. Reuse or add key-flow logs and stable UI identifiers so Mobile Easy Use can inspect runtime behavior, diagnose issues, and verify changes.
What it loads into context
Frontmatter
51 tokensAlways available to the agent
SKILL.md
302 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Key-flow logs
- UI identifiers
Files
SKILL.mdcore1,561 bytesagents/openai.yamlasset305 bytes
Read SKILL.md
# Android Observable Code
Keep observability changes small and local to the requested work. Reuse existing logs and identifiers; preserve behavior and avoid adding dependencies or observability layers.
## Key-flow logs
- Add logs only at useful flow boundaries: entry, important branches, completion, and failure. For asynchronous work, log the actual outcome, not just task submission.
- Use a stable, exact TAG; put event names and relevant outcome values in the message. `Log.d(TAG, "...")` is a simple option. Existing logging wrappers are suitable when their output reaches Android `liblog` with that TAG, which Mobile Easy Use captures.
- Keep logs sparse and free of sensitive data. Ensure they remain enabled in the build used for inspection.
## UI identifiers
- Give relevant native Views stable resource IDs, such as `R.id.form_submit`. Reuse existing IDs; distinguish repeated elements within their parent scope.
- Mobile Easy Use also supports string View tags through `tag::` paths. Reuse suitable existing tags without overwriting tags used by application logic.View the complete source on GitHubios-observable-code
When your agent uses it
When writing or modifying iOS code, add minimal logs, stable UI identifiers, and runtime visibility for inspection with Mobile Easy Use.
What it loads into context
Frontmatter
35 tokensAlways available to the agent
SKILL.md
401 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Key-flow logs
- UI identifiers
- Swift runtime visibility
Files
SKILL.mdcore1,914 bytesagents/openai.yamlasset319 bytes
Read SKILL.md
# iOS Observable Code
Keep changes local and preserve behavior. Reuse existing logs, identifiers, and runtime entry points; avoid new dependencies or observability layers.
## Key-flow logs
- Log key flow boundaries and outcomes, including asynchronous completion. Keep logs sparse, free of sensitive data, and enabled in the inspected build.
- Use `NSLog` with a stable literal `[TAG] ` prefix, event, and relevant values:
```swift
NSLog("[Form] completed count=%ld", results.count)
```
```objcView the complete source on GitHubto-android-integrate
When your agent uses it
Integrate MobileEasyUse into one existing Android App debug variant with automatic startup.
What it loads into context
Frontmatter
26 tokensAlways available to the agent
SKILL.md
839 tokensWhen the skill is activated
Reference documents
787 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Acquire the artifact
- Workflow
- Manual startup
Scripts executed separately
scripts/ensure-artifacts.mjs
Files
SKILL.mdcore4,056 bytesagents/openai.yamlasset259 bytesreferences/gradle.mddoc2,520 bytesreferences/validation.mddoc1,071 bytesscripts/ensure-artifacts.mjsruns11,038 bytes
Read SKILL.md
# Integrate MobileEasyUse into Android
Complete the integration, report the changes, and ask whether to verify. Verification covers building, installation, launch, connection, and probing.
## Acquire the artifact
Before editing the target project, run `node scripts/ensure-artifacts.mjs`, resolving the script path relative to this `SKILL.md`. The script requires Node.js 20 or newer and works on Windows, macOS, and Linux. It:
- fetches the live compatibility catalog for the current run;
- reuses a complete matching artifact in `~/.meu`;
- otherwise downloads the Android Maven archive, verifies it against `SHA256SUMS`, and extracts it;
- prints one JSON object containing the selected Release, paths, compatible MCP range, and exact version-pinned MCP command.
If the JSON result contains `actionRequired: "confirm-update"`, report the cached and latest Release versions and ask whether to update. Run again with `--update` when accepted or `--use-cached` when declined. Preserve a Release already pinned in the project unless the user accepts an upgrade; select it with `--version <version>`.View the complete source on GitHubto-android-presets
When your agent uses it
Generate reusable Android App actions, state access, and scoped overrides for Test and Probe in the configured presets directory, build the bundle, and verify on-device when a device is available.
What it loads into context
Frontmatter
46 tokensAlways available to the agent
SKILL.md
923 tokensWhen the skill is activated
Reference documents
2,104 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Generation rules
- Directory
- Source contract
- Workflow
Scripts executed separately
scripts/build-presets.mjs
Files
SKILL.mdcore4,383 bytesSKILL.mdcore4,383 bytesSKILL.mdcore4,383 bytesSKILL.mdcore4,383 bytesSKILL.mdcore4,383 bytesSKILL.mdcore4,383 bytesagents/openai.yamlasset341 bytesscripts/build-presets.mjsruns4,703 bytes../to-android-probe-script/references/direct-frida-generation.mddoc1,248 bytes../to-android-probe-script/references/driver-generation.mddoc2,402 bytes../to-android-probe-script/references/override-generation.mddoc2,814 bytes../to-android-run/SKILL.mddoc3,487 bytes
Read SKILL.md
# To Android Presets
Build reusable App capabilities for Test and Probe. Presets provide actions, state access,
and scoped condition setup; callers own evidence collection, test registration, and assertions.
## Generation rules
Call `get_sdk_declarations({"platform":"android"})` and read the required SDK, bridge, and Gum
contracts. Reuse only the relevant rules from the probe-script references:
- [Driver](../to-android-probe-script/references/driver-generation.md): navigation, UI interactions, and business flows.
- [Override](../to-android-probe-script/references/override-generation.md): return definitions for callers to scope, or accept an action and return/await `Override.run`. Restore changes when the action settles.
- [Direct Frida](../to-android-probe-script/references/direct-frida-generation.md): native state reads, internal calls, and condition setup.
View the complete source on GitHubto-android-probe
When your agent uses it
Investigate an Android App through mobile-easy-use from a natural-language request by composing probe generation and execution. Use when the user wants to navigate to a page, observe a critical runtime chain, inspect state, verify UI changes, or answer another scoped Android runtime question without managing script or execution details.
What it loads into context
Frontmatter
70 tokensAlways available to the agent
SKILL.md
767 tokensWhen the skill is activated
Reference documents
3,751 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Workflow
- Result
Files
../to-android-probe-script/SKILL.mddoc9,734 bytesSKILL.mdcore3,947 bytesSKILL.mdcore3,947 bytesSKILL.mdcore3,947 bytesSKILL.mdcore3,947 bytesagents/openai.yamlasset291 bytesreferences/chain-evidence.mddoc2,185 bytesreferences/state-evidence.mddoc891 bytesreferences/ui-evidence.mddoc1,349 bytes../to-android-run/SKILL.mddoc3,487 bytes
Read SKILL.md
# To Android Probe
Turn one natural-language Android runtime question into a generated probe, one controlled execution, and an evidence-backed answer. Keep code generation and execution details hidden unless the user asks for them.
## Workflow
1. Read the complete sibling `../to-android-probe-script/SKILL.md` and follow its generation contract.
2. Read the complete sibling `../to-android-run/SKILL.md` and follow its connection and execution contract.
3. Resolve the requested target, starting scene, allowed interactions, and required chain, state, or UI evidence. Inspect the target App source and existing presets when symbols or navigation steps are unknown; never guess them. Ask only when missing information makes execution unsafe or materially ambiguous.
4. Use `to-android-probe-script` to generate the smallest probe that answers the original question. Use a task-specific directory under the workspace `artifacts/` for Module output unless the user supplies another directory.
5. Use `to-android-run` to execute exactly one generated Inline operation or one Module export. Preserve its single-operation and no-unsafe-retry rules.
6. After execution returns, inspect its result and only the evidence files it returned. Read only the references matching the returned evidence types: [chain](references/chain-evidence.md), [state](references/state-evidence.md), or [UI](references/ui-evidence.md).
7. Relate observed runtime events to original App source, distinguish observed facts from source-based inference, and decide whether the question is answered.
8. If it is not answered, revise and execute another probe only when doing so is safe. Do not automatically retry a failed or timed-out operation that may have mutated App state; first restore or confirm a known starting scene.View the complete source on GitHubto-android-probe-script
When your agent uses it
Generate Android mobile-easy-use probe code as either a temporary inline async IIFE or a reusable ES module with matching TypeScript declarations. Use for runtime discovery, inspection, instrumentation, App driving, temporary Java method or field overrides, scoped evidence, or other bounded Frida work; prefer Inline for small one-off exploration and Module for larger or relatively stable work.
What it loads into context
Frontmatter
83 tokensAlways available to the agent
SKILL.md
1,939 tokensWhen the skill is activated
Reference documents
2,781 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Before generating code
- Output mode
- Execution thread
- 1. Driver
- 2. Override
- 3. Evidence
- 4. Direct Frida
- Composition example
- Code generation constraints
Files
SKILL.mdcore9,734 bytesSKILL.mdcore9,734 bytesSKILL.mdcore9,734 bytesSKILL.mdcore9,734 bytesSKILL.mdcore9,734 bytesagents/openai.yamlasset284 bytesreferences/critical-chain-evidence.mddoc2,910 bytesreferences/critical-state-evidence.mddoc2,575 bytesreferences/critical-ui-evidence.mddoc1,411 bytesreferences/direct-frida-generation.mddoc1,248 bytesreferences/driver-generation.mddoc2,402 bytesreferences/override-generation.mddoc2,814 bytes
Read SKILL.md
# To Android Probe Script
Generate the smallest Android runtime code that answers the requested runtime question. Prefer Driver for requested user-visible actions, use Override only when normal App configuration or Driver actions cannot establish a required condition, add Evidence only when needed to answer the question, and use Direct Frida only when the encapsulated capabilities are insufficient. Driver, Override, Evidence, and Direct Frida can compose within their API boundaries; use only what the question requires and avoid unnecessary probing. Generate code only; do not connect to a device or execute it.
## Before generating code
Call `get_sdk_declarations({"platform":"android"})` to obtain declaration paths in `files[].path`. It returns `sdk` (platform SDK), `bridge` (Frida Java bridge), and `gum` (native Frida APIs) declarations. The capability sections below specify which declarations to read.
Resolve `presets.directory` from `<project-root>/.meu/config.json`
relative to the project root, defaulting to `.meu/presets`. If `<base-directory>/android/`
contains `presets.dist.js`, read `presets.entry.js` to identify public exports and the
corresponding feature `index.d.ts` files for their contracts. Prefer reusing capabilities that
satisfy the request; import only names exported by the entry, including any aliases.
View the complete source on GitHubto-android-run
When your agent uses it
Resolve one online USB Android device or running emulator, connect its App runtime, cold-start the App once only when the initial connection fails and it is not running, and execute exactly one supplied operation.
What it loads into context
Frontmatter
48 tokensAlways available to the agent
SKILL.md
785 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Target
- Connect
- Execute
Files
SKILL.mdcore3,487 bytesSKILL.mdcore3,487 bytesSKILL.mdcore3,487 bytesagents/openai.yamlasset265 bytes
Read SKILL.md
# To Android Run
Run exactly one supplied Android operation. Require `appId`; accept optional canonical ADB `deviceId` and device-side `runtimePort`, defaulting to 8484. Accept exactly one execution form:
1. `source`: one complete `(async () => { ... })()` expression.
2. `scriptPath + functionName`: one named Module export.
3. `scriptPath + naturalDescription`: read the matching `probe.d.ts` completely and select exactly one export. Stop on no match, ambiguity, or missing required arguments.
Optional positional `args` apply only to Module. Do not convert between Inline and Module. If code is missing, first use `to-android-probe-script`.
## Target
Run `adb devices -l`. Eligible targets are entries in state `device` that are either running emulators or physical devices with a USB transport. Exclude wireless, offline, and unauthorized entries.
View the complete source on GitHubto-android-test
When your agent uses it
Run existing Android mobile-easy-use tests from a natural-language request, recursively finding files in the requested directory and summarizing results.
What it loads into context
Frontmatter
35 tokensAlways available to the agent
SKILL.md
515 tokensWhen the skill is activated
Reference documents
785 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Workflow
- Result
Files
../to-android-run/SKILL.mddoc3,487 bytesSKILL.mdcore2,421 bytesagents/openai.yamlasset264 bytes
Read SKILL.md
# To Android Test
Accept a natural-language request such as “run the click tests under this directory.” Resolve the scope, recursively find test files, and execute them one by one through [to-android-run](../to-android-run/SKILL.md).
## Workflow
1. Resolve the App, directory, and requested behavior from the request and session. Default to the App's `tests/`; clarify only material ambiguity.
2. Recursively discover files with `rg --files`. Read test modules to identify relevant tests and starting/cleanup conditions. Exclude helpers, deduplicate paths, and sort by path. State the selected files, then proceed; report no matches without claiming success.
3. Read and follow `to-android-run`, using its `scriptPath + functionName` form: pass each module's absolute `scriptPath`, `functionName: "run"`, and `args: []`. Reuse the same target and MCP session; invoke each file once and await completion before the next file. No `.d.ts` is needed.
4. Continue after assertion failures when cleanup succeeded and the next starting conditions are established. Stop on cleanup failure, disconnect, operation timeout, or uncertain App state; mark remaining files unrun. Do not automatically retry or modify tests.
## Result
Show results in the reply first: list the first 10 cases in execution order (all cases if fewer), using ✅ for passed, ❌ for failed, and ⏭ for not run. Include the file and case name; briefly explain failures. Keep execution errors distinct from assertion failures.View the complete source on GitHubto-android-test-script
When your agent uses it
Generate Android mobile-easy-use test modules for explicit expectations or confirmed probe findings. Writes files without executing them.
What it loads into context
Frontmatter
32 tokensAlways available to the agent
SKILL.md
951 tokensWhen the skill is activated
Reference documents
1,319 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Before generating code
- 1. Driver
- 2. Override
- 3. Expect
- 4. Direct Frida
- Test structure and output
- Code generation constraints
Files
../to-android-probe-script/references/direct-frida-generation.mddoc1,248 bytes../to-android-probe-script/references/driver-generation.mddoc2,402 bytes../to-android-probe-script/references/override-generation.mddoc2,814 bytesSKILL.mdcore4,581 bytesSKILL.mdcore4,581 bytesagents/openai.yamlasset215 bytes
Read SKILL.md
# To Android Test Script
Compose Driver, Override, Expect, and Direct Frida into repeatable tests. Reuse `to-android-probe-script` generation rules for actions and observations; compare observations with expectations through the collection's `expect`. Generate files only; do not connect or execute.
## Before generating code
- Call `get_sdk_declarations({"platform":"android"})`. Read `Test` and the required SDK APIs; read returned `bridge` declarations for Java work and `gum` for native Frida work.
- Resolve scenes, targets, and observations from App source. Derive expectations from requirements or confirmed behavior; clarify missing expectations that determine pass or fail.
- Reuse presets: resolve `presets.directory` in `.meu/config.json` (default `.meu/presets`), read the Android entry and relevant feature `index.d.ts` declarations, and import declared exports from `/meu/presets.js`.
## 1. Driver
Drive the App into the target scene and perform the tested interactions, following [Driver generation](../to-android-probe-script/references/driver-generation.md). Default to starting from home; put shared navigation in `beforeEach` and case-specific actions in `test`.
View the complete source on GitHubto-ios-integrate
When your agent uses it
Integrate MobileEasyUse into an iOS App debug configuration, or prepare and repair physical-device Runner signing.
What it loads into context
Frontmatter
31 tokensAlways available to the agent
SKILL.md
1,520 tokensWhen the skill is activated
Reference documents
954 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Acquire the artifacts
- Workflow
- Xcode
- CocoaPods
- Runner signing
- Finish
Scripts executed separately
scripts/build-runner.shscripts/ensure-artifacts.mjsscripts/prepare-signing.mjsscripts/signing.mjs
Files
SKILL.mdcore6,721 bytesSKILL.mdcore6,721 bytesSKILL.mdcore6,721 bytesagents/openai.yamlasset243 bytesreferences/signing.mddoc2,876 bytesreferences/validation.mddoc1,506 bytesscripts/build-runner.shruns6,273 bytesscripts/ensure-artifacts.mjsruns12,038 bytesscripts/prepare-signing.mjsruns4,097 bytesscripts/signing.mjsruns11,012 bytes
Read SKILL.md
# Integrate MobileEasyUse into iOS
## Acquire the artifacts
Before editing the target project, run `node scripts/ensure-artifacts.mjs`, resolving the script path relative to this `SKILL.md`. The script requires Node.js 20 or newer and downloads on Windows, macOS, and Linux. It fetches the live compatibility catalog, verifies `SHA256SUMS`, and installs both archives under `~/.meu/ios/<version>`:
- `integration` contains the App integration binaries and scripts;
- `runner` contains the XCTest runner and runtime used by MobileEasyUse.
If the JSON result contains `actionRequired: "confirm-update"`, report the cached and latest Release versions and ask whether to update. Run the script again with `--update` when accepted or `--use-cached` when declined. Preserve a Release already pinned by the project unless the user accepts an upgrade; select it with `--version <version>`. A normal result contains `releaseVersion`, `integrationPath`, `runnerPath`, `minimumMcpVersion`, `maximumMcpVersion`, and an exact `mcpCommand`.
Use `MEU_HOME` to override `~/.meu`. Artifacts and checksums are downloaded directly from the public GitHub Release; no GitHub token or login is required. The selected Release's catalog range defines MCP compatibility. Stop and report acquisition, catalog, or checksum errors.
Artifact acquisition is cross-platform. Xcode project changes, building, signing, and runtime verification require macOS; on Windows or Linux, finish the download, report both cache paths, and explain that the integration phase must continue on macOS.View the complete source on GitHubto-ios-presets
When your agent uses it
Generate reusable iOS App actions, state access, and scoped overrides for Test and Probe in the configured presets directory, build the bundle, and verify on-device when a device is available.
What it loads into context
Frontmatter
46 tokensAlways available to the agent
SKILL.md
919 tokensWhen the skill is activated
Reference documents
2,525 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Generation rules
- Directory
- Source contract
- Workflow
Scripts executed separately
scripts/build-presets.mjs
Files
SKILL.mdcore4,338 bytesSKILL.mdcore4,338 bytesSKILL.mdcore4,338 bytesSKILL.mdcore4,338 bytesSKILL.mdcore4,338 bytesSKILL.mdcore4,338 bytesagents/openai.yamlasset325 bytesscripts/build-presets.mjsruns4,699 bytes../to-ios-probe-script/references/direct-frida-generation.mddoc2,232 bytes../to-ios-probe-script/references/driver-generation.mddoc3,272 bytes../to-ios-probe-script/references/override-generation.mddoc2,917 bytes../to-ios-run/SKILL.mddoc3,628 bytes
Read SKILL.md
# To iOS Presets
Build reusable App capabilities for Test and Probe. Presets provide actions, state access,
and scoped condition setup; callers own evidence collection, test registration, and assertions.
## Generation rules
Call `get_sdk_declarations({"platform":"ios"})` and read the required SDK, bridge, and Gum
contracts. Reuse only the relevant rules from the probe-script references:
- [Driver](../to-ios-probe-script/references/driver-generation.md): navigation, UI interactions, and business flows.
- [Override](../to-ios-probe-script/references/override-generation.md): return definitions for callers to scope, or accept an action and return/await `Override.run`. Restore changes when the action settles.
- [Direct Frida](../to-ios-probe-script/references/direct-frida-generation.md): native state reads, internal calls, and condition setup.
View the complete source on GitHubto-ios-probe
When your agent uses it
Investigate an iOS App through mobile-easy-use from a natural-language request by composing probe generation and execution. Use when the user wants to navigate to a page, observe an Objective-C runtime chain or TAG-prefixed NSLog logs, inspect state, verify UIKit changes, or answer another scoped iOS runtime question without managing script or execution details.
What it loads into context
Frontmatter
78 tokensAlways available to the agent
SKILL.md
821 tokensWhen the skill is activated
Reference documents
3,824 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Workflow
- Result
Files
../to-ios-probe-script/SKILL.mddoc9,926 bytesSKILL.mdcore4,192 bytesSKILL.mdcore4,192 bytesSKILL.mdcore4,192 bytesSKILL.mdcore4,192 bytesagents/openai.yamlasset278 bytesreferences/chain-evidence.mddoc2,059 bytesreferences/state-evidence.mddoc887 bytesreferences/ui-evidence.mddoc1,454 bytes../to-ios-run/SKILL.mddoc3,628 bytes
Read SKILL.md
# To iOS Probe
Turn one natural-language iOS runtime question into a generated probe, one controlled execution, and an evidence-backed answer. Keep code generation and execution details hidden unless the user asks for them.
## Workflow
1. Read the complete sibling `../to-ios-probe-script/SKILL.md` and follow its generation contract.
2. Read the complete sibling `../to-ios-run/SKILL.md` and follow its connection and execution contract.
3. Resolve the target device or simulator, bundle identifier, target scene, starting scene, allowed interactions, and required Objective-C chain, TAG-prefixed NSLog, state, or UIKit UI evidence. Inspect the target App source when selectors, accessibility identifiers, labels, classes, or business symbols are unknown; never guess them. Ask only when missing information makes execution unsafe or materially ambiguous.
4. Use `to-ios-probe-script` to generate the smallest probe that answers the original question. Use a task-specific directory under the workspace `artifacts/` for Module output unless the user supplies another directory.
5. Use `to-ios-run` to resolve or launch the App, idempotently load MobileEasyUse, and execute exactly one generated Inline operation or one Module export. Preserve its single-operation and no-unsafe-retry rules.
6. After execution returns, inspect its result and only the evidence files it returned. Read only the references matching the returned evidence types: [chain](references/chain-evidence.md), [state](references/state-evidence.md), or [UI](references/ui-evidence.md).
7. Relate observed Objective-C events and UIKit state to original App source, distinguish observed facts from source-based inference, and decide whether the question is answered.
8. If it is not answered, revise and execute another probe only when doing so is safe. Do not automatically retry a failed or timed-out operation that may have mutated App state; first restore or confirm a known starting scene.View the complete source on GitHubto-ios-probe-script
When your agent uses it
Generate iOS mobile-easy-use probe code as either a temporary inline async IIFE or a reusable ES module with matching TypeScript declarations. Use for runtime discovery, UIKit inspection, instrumentation, App driving, temporary Objective-C method or field overrides, scoped evidence, or other bounded Frida work; prefer Inline for small one-off exploration and Module for larger or relatively stable work.
What it loads into context
Frontmatter
85 tokensAlways available to the agent
SKILL.md
1,990 tokensWhen the skill is activated
Reference documents
3,125 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Before generating code
- Output mode
- Execution thread
- 1. Driver
- 2. Override
- 3. Evidence
- 4. Direct Frida
- Composition example
- Code generation constraints
Files
SKILL.mdcore9,926 bytesSKILL.mdcore9,926 bytesSKILL.mdcore9,926 bytesSKILL.mdcore9,926 bytesSKILL.mdcore9,926 bytesagents/openai.yamlasset268 bytesreferences/critical-chain-evidence.mddoc3,220 bytesreferences/critical-state-evidence.mddoc2,059 bytesreferences/critical-ui-evidence.mddoc1,545 bytesreferences/direct-frida-generation.mddoc2,232 bytesreferences/driver-generation.mddoc3,272 bytesreferences/override-generation.mddoc2,917 bytes
Read SKILL.md
# To iOS Probe Script
Generate the smallest iOS runtime code that answers the requested runtime question. Prefer Driver for requested user-visible actions, use Override only when normal App configuration or Driver actions cannot establish a required condition, add Evidence only when needed to answer the question, and use Direct Frida only when the encapsulated capabilities are insufficient. Driver, Override, Evidence, and Direct Frida can compose within their API boundaries; use only what the question requires and avoid unnecessary probing. Generate code only; do not connect to a device or execute it.
## Before generating code
Call `get_sdk_declarations({"platform":"ios"})` to obtain declaration paths in `files[].path`. It returns `sdk` (platform SDK), `bridge` (Frida Objective-C bridge), and `gum` (native Frida APIs) declarations. The capability sections below specify which declarations to read.
Resolve `presets.directory` from `<project-root>/.meu/config.json`
relative to the project root, defaulting to `.meu/presets`. If `<base-directory>/ios/`
contains `presets.dist.js`, read `presets.entry.js` to identify public exports and the
corresponding feature `index.d.ts` files for their contracts. Prefer reusing capabilities that
satisfy the request; import only names exported by the entry, including any aliases.
View the complete source on GitHubto-ios-run
When your agent uses it
Resolve one USB iOS device or running simulator, connect its App runtime with MCP-managed idempotent loading, and execute exactly one supplied operation.
What it loads into context
Frontmatter
37 tokensAlways available to the agent
SKILL.md
818 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Target
- Connect
- Execute
Files
SKILL.mdcore3,628 bytesSKILL.mdcore3,628 bytesSKILL.mdcore3,628 bytesagents/openai.yamlasset311 bytes
Read SKILL.md
# To iOS Run
Run exactly one supplied iOS operation. Require `appId`; accept optional canonical `deviceId` and device-side `runtimePort`, defaulting to 8484. Accept exactly one execution form:
1. `source`: one complete `(async () => { ... })()` expression.
2. `scriptPath + functionName`: one named Module export.
3. `scriptPath + naturalDescription`: read the matching `probe.d.ts` completely and select exactly one export. Stop on no match, ambiguity, or missing required arguments.
Optional positional `args` apply only to Module. Do not convert between Inline and Module. If code is missing, first use `to-ios-probe-script`.
## Target
Discover currently booted CoreSimulator devices and currently available USB CoreDevice devices. Exclude shutdown simulators and network-only, unavailable, unpaired, or unusable physical devices.
View the complete source on GitHubto-ios-test
When your agent uses it
Run existing iOS mobile-easy-use tests from a natural-language request, recursively finding files in the requested directory and summarizing results.
What it loads into context
Frontmatter
35 tokensAlways available to the agent
SKILL.md
512 tokensWhen the skill is activated
Reference documents
818 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Workflow
- Result
Files
../to-ios-run/SKILL.mddoc3,628 bytesSKILL.mdcore2,393 bytesagents/openai.yamlasset252 bytes
Read SKILL.md
# To iOS Test
Accept a natural-language request such as “run the click tests under this directory.” Resolve the scope, recursively find test files, and execute them one by one through [to-ios-run](../to-ios-run/SKILL.md).
## Workflow
1. Resolve the App, directory, and requested behavior from the request and session. Default to the App's `tests/`; clarify only material ambiguity.
2. Recursively discover files with `rg --files`. Read test modules to identify relevant tests and starting/cleanup conditions. Exclude helpers, deduplicate paths, and sort by path. State the selected files, then proceed; report no matches without claiming success.
3. Read and follow `to-ios-run`, using its `scriptPath + functionName` form: pass each module's absolute `scriptPath`, `functionName: "run"`, and `args: []`. Reuse the same target and MCP session; invoke each file once and await completion before the next file. No `.d.ts` is needed.
4. Continue after assertion failures when cleanup succeeded and the next starting conditions are established. Stop on cleanup failure, disconnect, operation timeout, or uncertain App state; mark remaining files unrun. Do not automatically retry or modify tests.
## Result
Show results in the reply first: list the first 10 cases in execution order (all cases if fewer), using ✅ for passed, ❌ for failed, and ⏭ for not run. Include the file and case name; briefly explain failures. Keep execution errors distinct from assertion failures.View the complete source on GitHubto-ios-test-script
When your agent uses it
Generate iOS mobile-easy-use test modules for explicit expectations or confirmed probe findings. Writes files without executing them.
What it loads into context
Frontmatter
32 tokensAlways available to the agent
SKILL.md
1,029 tokensWhen the skill is activated
Reference documents
1,707 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Before generating code
- 1. Driver
- 2. Override
- 3. Expect
- 4. Direct Frida
- Test structure and output
- Code generation constraints
Files
../to-ios-probe-script/references/direct-frida-generation.mddoc2,232 bytes../to-ios-probe-script/references/driver-generation.mddoc3,272 bytes../to-ios-probe-script/references/override-generation.mddoc2,917 bytesSKILL.mdcore4,969 bytesSKILL.mdcore4,969 bytesagents/openai.yamlasset199 bytes
Read SKILL.md
# To iOS Test Script
Compose Driver, Override, Expect, and Direct Frida into repeatable tests. Reuse `to-ios-probe-script` generation rules for actions and observations; compare observations with expectations through the collection's `expect`. Generate files only; do not connect or execute.
## Before generating code
- Call `get_sdk_declarations({"platform":"ios"})`. Read `Test` and the required SDK APIs; read returned `bridge` declarations for Objective-C work and `gum` for native Frida work. SDK declarations govern API details.
- Resolve scenes, targets, and observations from App source. Derive expectations from requirements or confirmed behavior; clarify missing expectations that determine pass or fail.
- Reuse presets: resolve `presets.directory` in `.meu/config.json` (default `.meu/presets`), read the iOS entry and relevant feature `index.d.ts` declarations, and import declared exports from `/meu/presets.js`.
## 1. Driver
Drive the App into the target scene and perform the tested interactions, following [Driver generation](../to-ios-probe-script/references/driver-generation.md). Default to starting from home; put shared navigation in `beforeEach` and case-specific actions in `test`.
View the complete source on GitHubSkills included
- android-observable-code
- ios-observable-code
- to-android-integrate
- to-android-presets
- to-android-probe
- to-android-probe-script
- to-android-run
- to-android-test
- to-android-test-script
- to-ios-integrate
- to-ios-presets
- to-ios-probe
- to-ios-probe-script
- to-ios-run
- to-ios-test
- to-ios-test-script
Repository facts
- License
- MIT
- Created
- Sep 6, 2026
- Last pushed
- Sep 17, 2026
- Forks
- 1
- Open issues
- 0
- Project activity
- Active
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 5, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 32 notes
skills/to-android-presets/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/to-android-presets/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/to-android-presets/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/to-android-presets/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/to-android-presets/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/to-android-probe/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/to-android-probe/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/to-android-probe/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/to-android-probe-script/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/to-android-probe-script/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/to-android-probe-script/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/to-android-probe-script/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/to-android-run/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/to-android-run/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/to-android-test-script/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/to-ios-integrate/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/to-ios-integrate/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/to-ios-presets/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/to-ios-presets/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/to-ios-presets/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- 2 dangerous shell commandsin 2 files: to-android-integrate/scripts/ensure-artifacts.mjs:5 to-ios-integrate/scripts/ensure-artifacts.mjs:5
- 14 network referencesin 2 files: to-android-integrate/scripts/ensure-artifacts.mjs:14 to-ios-integrate/scripts/ensure-artifacts.mjs:14
- No hidden or obfuscated text
- No instruction overrides
- 7 executable scriptsin 7 files: to-android-integrate/scripts/ensure-artifacts.mjs:1 to-android-presets/scripts/build-presets.mjs:1 to-ios-integrate/scripts/build-runner.sh:1 and 4 more
- 23 references to secretsin 3 files: to-ios-integrate/scripts/build-runner.sh:84 to-ios-integrate/scripts/signing.mjs:32 to-ios-integrate/references/signing.md:16
- No requests to vote in Hot
Show all 46 signals by file
skills/to-android-integrate/scripts/ensure-artifacts.mjs
- Executable scriptline 1
#!/usr/bin/env node - Dangerous shell operationline 5
import { access, cp, mkdir, readdir, rename, rm } from "node:fs/promises"; - Network accessline 14
const repository = "agent-easy-use/mobile-easy-use"; const meuHome = resolve(process.env.MEU_HOME || join(homedir(), ".meu")); const catalogUrl = `https://raw.githubusercontent.com/${repository}/master/distribution/compatibility.json`; - Network accessline 15
const meuHome = resolve(process.env.MEU_HOME || join(homedir(), ".meu")); const catalogUrl = `https://raw.githubusercontent.com/${repository}/master/distribution/compatibility.json`; const versionPattern = /^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+) - Network accessline 16
const catalogUrl = `https://raw.githubusercontent.com/${repository}/master/distribution/compatibility.json`; - Network accessline 22
async function fetchChecked(url, timeoutMs = requestTimeoutMs) { const response = await fetch(url, { - Network accessline 23
const response = await fetch(url, { - Network accessline 231
const tag = `v${version}`; const releaseUrl = `https://github.com/${repository}/releases/download/${encodeURIComponent(tag)}`; - Network accessline 232
const releaseUrl = `https://github.com/${repository}/releases/download/${encodeURIComponent(tag)}`;
skills/to-android-presets/scripts/build-presets.mjs
- Executable scriptline 1
Executable file
skills/to-ios-integrate/references/signing.md
skills/to-ios-integrate/scripts/build-runner.sh
- Executable scriptline 1
#!/usr/bin/env bash - Access to secretsline 84
[Credential-related source omitted] - Access to secretsline 87
[Credential-related source omitted] - Access to secretsline 108
[Credential-related source omitted] - Access to secretsline 110
[Credential-related source omitted] - Access to secretsline 112
[Credential-related source omitted] - Access to secretsline 114
[Credential-related source omitted] - Access to secretsline 119
[Credential-related source omitted] - Access to secretsline 120
[Credential-related source omitted] - Access to secretsline 121
[Credential-related source omitted] - Access to secretsline 124
[Credential-related source omitted] - Access to secretsline 126
[Credential-related source omitted] - Access to secretsline 129
[Credential-related source omitted] - Access to secretsline 130
[Credential-related source omitted] - Access to secretsline 132
[Credential-related source omitted] - Access to secretsline 146
[Credential-related source omitted] - Access to secretsline 155
[Credential-related source omitted] - Access to secretsline 165
[Credential-related source omitted] - Access to secretsline 171
[Credential-related source omitted]
skills/to-ios-integrate/scripts/ensure-artifacts.mjs
- Executable scriptline 1
#!/usr/bin/env node - Dangerous shell operationline 5
import { access, cp, mkdir, readdir, rename, rm } from "node:fs/promises"; - Network accessline 14
const repository = "agent-easy-use/mobile-easy-use"; const meuHome = resolve(process.env.MEU_HOME || join(homedir(), ".meu")); const catalogUrl = `https://raw.githubusercontent.com/${repository}/master/distribution/compatibility.json`; - Network accessline 15
const meuHome = resolve(process.env.MEU_HOME || join(homedir(), ".meu")); const catalogUrl = `https://raw.githubusercontent.com/${repository}/master/distribution/compatibility.json`; const versionPattern = /^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+) - Network accessline 16
const catalogUrl = `https://raw.githubusercontent.com/${repository}/master/distribution/compatibility.json`; - Network accessline 39
async function fetchChecked(url, timeoutMs = requestTimeoutMs) { const response = await fetch(url, { - Network accessline 40
const response = await fetch(url, { - Network accessline 270
const tag = `v${version}`; const releaseUrl = `https://github.com/${repository}/releases/download/${encodeURIComponent(tag)}`; - Network accessline 271
const releaseUrl = `https://github.com/${repository}/releases/download/${encodeURIComponent(tag)}`;
skills/to-ios-integrate/scripts/prepare-signing.mjs
- Executable scriptline 1
#!/usr/bin/env node
skills/to-ios-integrate/scripts/signing.mjs
skills/to-ios-presets/scripts/build-presets.mjs
- Executable scriptline 1
Executable file
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Declared and executed: 4 facts
- Contacts raw.githubusercontent.com, which SKILL.md, the README and the plugin manifest do not mentionto-android-integrate/scripts/ensure-artifacts.mjs:16High confidence
- Contacts github.com, which SKILL.md, the README and the plugin manifest do not mentionto-android-integrate/scripts/ensure-artifacts.mjs:232High confidence
- Contacts raw.githubusercontent.com, which SKILL.md, the README and the plugin manifest do not mentionto-ios-integrate/scripts/ensure-artifacts.mjs:16High confidence
- Contacts github.com, which SKILL.md, the README and the plugin manifest do not mentionto-ios-integrate/scripts/ensure-artifacts.mjs:271High confidence
Signal confidence: 46 facts
- Executable script in code of a file that runsto-android-integrate/scripts/ensure-artifacts.mjs:1High confidence
- Dangerous shell operation in code of a file that runsto-android-integrate/scripts/ensure-artifacts.mjs:5High confidence
- Network access in code of a file that runsto-android-integrate/scripts/ensure-artifacts.mjs:14High confidence
- Network access in code of a file that runsto-android-integrate/scripts/ensure-artifacts.mjs:15High confidence
- Network access in code of a file that runsto-android-integrate/scripts/ensure-artifacts.mjs:16High confidence
- Network access in code of a file that runsto-android-integrate/scripts/ensure-artifacts.mjs:22High confidence
- Network access in code of a file that runsto-android-integrate/scripts/ensure-artifacts.mjs:23High confidence
- Network access in code of a file that runsto-android-integrate/scripts/ensure-artifacts.mjs:231High confidence
- Network access in code of a file that runsto-android-integrate/scripts/ensure-artifacts.mjs:232High confidence
- Executable script in code of a file that runsto-android-presets/scripts/build-presets.mjs:1High confidence
- Access to secrets in prose of documentation: a variable, placeholder or call, not a stored valueto-ios-integrate/references/signing.md:16Low confidence
- Access to secrets in prose of documentationto-ios-integrate/references/signing.md:25Low confidence
- Executable script in code of a file that runsto-ios-integrate/scripts/build-runner.sh:1High confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueto-ios-integrate/scripts/build-runner.sh:84Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueto-ios-integrate/scripts/build-runner.sh:87Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueto-ios-integrate/scripts/build-runner.sh:108Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueto-ios-integrate/scripts/build-runner.sh:110Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueto-ios-integrate/scripts/build-runner.sh:112Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueto-ios-integrate/scripts/build-runner.sh:114Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueto-ios-integrate/scripts/build-runner.sh:119Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueto-ios-integrate/scripts/build-runner.sh:120Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueto-ios-integrate/scripts/build-runner.sh:121Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueto-ios-integrate/scripts/build-runner.sh:124Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueto-ios-integrate/scripts/build-runner.sh:126Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueto-ios-integrate/scripts/build-runner.sh:129Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueto-ios-integrate/scripts/build-runner.sh:130Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueto-ios-integrate/scripts/build-runner.sh:132Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueto-ios-integrate/scripts/build-runner.sh:146Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueto-ios-integrate/scripts/build-runner.sh:155Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueto-ios-integrate/scripts/build-runner.sh:165Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueto-ios-integrate/scripts/build-runner.sh:171Low confidence
- Executable script in code of a file that runsto-ios-integrate/scripts/ensure-artifacts.mjs:1High confidence
- Dangerous shell operation in code of a file that runsto-ios-integrate/scripts/ensure-artifacts.mjs:5High confidence
- Network access in code of a file that runsto-ios-integrate/scripts/ensure-artifacts.mjs:14High confidence
- Network access in code of a file that runsto-ios-integrate/scripts/ensure-artifacts.mjs:15High confidence
- Network access in code of a file that runsto-ios-integrate/scripts/ensure-artifacts.mjs:16High confidence
- Network access in code of a file that runsto-ios-integrate/scripts/ensure-artifacts.mjs:39High confidence
- Network access in code of a file that runsto-ios-integrate/scripts/ensure-artifacts.mjs:40High confidence
- Network access in code of a file that runsto-ios-integrate/scripts/ensure-artifacts.mjs:270High confidence
- Network access in code of a file that runsto-ios-integrate/scripts/ensure-artifacts.mjs:271High confidence
- Executable script in code of a file that runsto-ios-integrate/scripts/prepare-signing.mjs:1High confidence
- Executable script in code of a file that runsto-ios-integrate/scripts/signing.mjs:1High confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueto-ios-integrate/scripts/signing.mjs:32Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueto-ios-integrate/scripts/signing.mjs:51Low confidence
- Access to secrets in code of a file that runsto-ios-integrate/scripts/signing.mjs:151High confidence
- Executable script in code of a file that runsto-ios-presets/scripts/build-presets.mjs:1High confidence
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Compatible | Standard SKILL.md skills/android-observable-code/SKILL.md | .claude/skills/<skill-name>/ |
| Codex | Native | Manifest sdk/AGENTS.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md skills/android-observable-code/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md skills/android-observable-code/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md skills/android-observable-code/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md skills/android-observable-code/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.