Skip to content
Report library
Purpose / Other

Momentic Mobile Test Skill Security Audit

What the author says it does (original text)

Create, run, and maintain Momentic mobile E2E tests and modules for Android and iOS. Use Momentic MCP tools for live device validation, and use direct v2 YAML edits only for high-confidence local mobile v2 changes.

Independent security check

Security risks found

Files checked
1
Risks found
4
Could it run dangerous commands?Looks for programs run straight after downloading, remote control of your computer, and hidden commands.Risks found: 1
Medium risk

The `npx` commands may download and execute an unpinned package

Source references: 2
What we found

Both setup diagnostics and YAML validation invoke `npx momentic-mobile`, without pinning a version or requiring a verified installed binary. If the package is absent locally, npx may fetch and execute registry code.

Why this matters

A substituted, compromised, or unexpectedly upgraded package would run with the user's permissions and could access project files, environment credentials, or modify the workspace.

Both citations are active workflow commands using `npx momentic-mobile` without a version constraint. When no suitable local copy exists, `npx` may retrieve and execute the package over the network. The legitimate doctor and lint purposes do not remove the code-drift or supply-chain risk of an unpinned dependency. A user can require a pinned, verified version or permit only a trusted preinstalled binary.

SKILL.md:66In the instructionsOpen original file
Run `npx momentic-mobile doctor` for initial setup and launch, driver, device,or connectivity failures. Use `--json` when collecting a support report. Seethe [doctor reference](https://momentic.ai/docs/cli-reference/momentic-mobile/commands/doctor).
Show 1 other places
SKILL.md:205In the instructionsOpen original file
Consult [File format](https://momentic.ai/docs/core-concepts/file-format) fortop-level structure and [Steps](https://momentic.ai/docs/core-concepts/steps) forstep syntax. Run `npx momentic-mobile lint` when schema or file-reference riskwarrants it.
Could it expose your files or keys?Looks for uploads of files containing passwords or keys, and keys written directly in the code.Risks found: 1
Medium risk

Test context can access environment values, OTPs, messages, databases, and UI content

Source references: 3
What we found

The Skill permits retrieval of environment variables and JavaScript access to APIs, databases, OTP/email/SMS systems. Device screenshots and serialized state may also contain account, message, or other personal data.

Why this matters

Such data may enter test variables, screenshots, traces, caches, or provider processing. With real accounts or production systems, credentials, one-time codes, customer data, or session content could be exposed.

The Skill can access environment variables and permits JavaScript for APIs, databases, OTP, email, and SMS; screenshots or serialized device state may also expose sensitive on-screen data. Access is not unconditional: environment variables should be filtered and fetched only when needed, and device state is requested only when screenshots are insufficient. Users can use dedicated test accounts and synthetic data, narrowly scope environment variables, and require redaction and retention limits for logs, screenshots, and state.

SKILL.md:186In the instructionsOpen original file
Use mobile JavaScript for test setup, data generation, APIs, databases,OTP/email/SMS, assertions, and context writes that no native step expresses.Keep one-off code short; for reusable v2 scripts, follow nearby projectconventions. See the[mobile JavaScript command](https://momentic.ai/docs/reference/mobile-commands/javascript)for current syntax.
Show 2 other places
SKILL.md:234In the instructionsOpen original file
  a different test. Prefer active session and splice responses afterward.- Use filtered `momentic_get_environment_variables` only when a step needs env  data that is not already known.- Use `momentic_module_recommend` -> `momentic_module_get` only when evaluating  reuse; recommendation invokes AI and is not required to start a session.
SKILL.md:264In the instructionsOpen original file
MCP screenshots are the default signal. Request serialized emulator state foraccessible names, native XML, webview structure, screen bounds, or offscreencontext. Read environment and installed-app artifacts only when diagnosing data,launch, or install behavior.
Could it delete files or keep running?Looks for broad file deletion, disk overwrites, and programs set to start automatically.No risks found
Could it bypass safety checks?Looks for skipped website security checks, excessive file access, or actions that skip your approval.Risks found: 1
Low risk

The install command does not pin a dependency version

Source references: 3
What we found

The installation command does not specify dependency versions. The same command may download different code later, so what you install can differ from what was checked.

Why this matters

A later install may download different code even though the command and this report have not changed.

This is an active setup/troubleshooting instruction to run `npx momentic-mobile doctor` without a version. If no suitable local copy exists, `npx` may download and execute the version available from the package registry at that time, so later runs can execute different code. A user can ask the author to pin a version and verify the package source and version before execution.

This is an active instruction to run the linter when schema or reference risk warrants it. The command does not pin the `momentic-mobile` version; if `npx` needs to obtain the package, it may download and execute the registry's current version. Linting YAML is legitimate, but supply-chain and version-drift risk remains. A user can restrict execution to an audited, pinned package version.

SKILL.md:66In the instructionsOpen original file
Run `npx momentic-mobile doctor` for initial setup and launch, driver, device,or connectivity failures. Use `--json` when collecting a support report. Seethe [doctor reference](https://momentic.ai/docs/cli-reference/momentic-mobile/commands/doctor).
Show 2 other places
SKILL.md:207In the instructionsOpen original file
top-level structure and [Steps](https://momentic.ai/docs/core-concepts/steps) forstep syntax. Run `npx momentic-mobile lint` when schema or file-reference riskwarrants it.
SKILL.md:205In the instructionsOpen original file
Consult [File format](https://momentic.ai/docs/core-concepts/file-format) fortop-level structure and [Steps](https://momentic.ai/docs/core-concepts/steps) forstep syntax. Run `npx momentic-mobile lint` when schema or file-reference riskwarrants it.
Could it mislead the AI or hide text?Checks the skill instructions for requests to ignore you, influence the report, or hide text in invisible characters.No risks found
Could it change links or payment recipients without asking?Looks for forced referral or payment changes combined with instructions to hide the change.Risks found: 1
Medium risk

An approved test step can trigger a real purchase, message, or other irreversible business action

Source references: 2
What we found

The Skill acknowledges that previewing or running steps may submit, purchase, delete, send, or create something. Although it requires approval and limits execution to once, one real execution can still charge money, contact others, or alter an account.

Why this matters

If connected to production accounts, real payment methods, or real recipients, a single run may create charges, orders, notifications, deletion, or another effect that is difficult to reverse.

The source explicitly recognizes that test steps may submit, purchase, delete, send, create, or cause other side effects. It includes meaningful safeguards: ask first, execute at most once after approval, and preview setup before running only the approved non-idempotent action. Even one approved execution can still incur a charge, contact another person, or change/delete account data. Users should explicitly constrain the test environment, account, amount, recipient, and permitted one-time action.

SKILL.md:85In the instructionsOpen original file
Confirm the goal, user-visible success criteria, platform, app source, provider,auth, and env requirements. Ask before previewing or running any step or AIaction that may submit, purchase, delete, send, create, or cause anothernon-idempotent side effect. If approved, execute it at most once. Also ask beforeusing local device overrides, editing a shared module, restarting a long flow, orrunning an expensive full test.
Show 1 other places
SKILL.md:260In the instructionsOpen original file
Batch obvious low-risk steps. Preview uncertain targets individually. For anon-idempotent action, preview setup, splice the checkpoint, then run theapproved saved action at most once.

Inside this skill

8 instruction sections

This Skill creates, edits, and runs Android/iOS end-to-end tests. It permits direct YAML edits for known v2 tests, while v1 or UI-discovery work uses an MCP session to preview, persist, and validate steps.

View source
SKILL.md:45In the instructionsOpen original file
- **Known v2 change:** inspect nearby patterns -> edit YAML -> lint when syntax  or references are uncertain -> reload or restart if validating -> run the  relevant range.- **V1, unknown UI, or interactive validation:** start MCP session -> run any  prerequisites -> preview a logical checkpoint -> splice it -> validate the  saved range -> terminate.- **New test:** create with `momentic_test_create` -> author a known v2 sequence  in one YAML edit, or use MCP step-by-step when live discovery is needed.  `momentic_session_start` only opens an existing test.

The Skill explicitly requires user approval before actions that may submit, purchase, delete, send, or create something, and limits an approved non-idempotent action to one execution. It also requires approval before changing shared modules, using local-device overrides, or running an expensive full test.

View source
SKILL.md:85In the instructionsOpen original file
Confirm the goal, user-visible success criteria, platform, app source, provider,auth, and env requirements. Ask before previewing or running any step or AIaction that may submit, purchase, delete, send, create, or cause anothernon-idempotent side effect. If approved, execute it at most once. Also ask beforeusing local device overrides, editing a shared module, restarting a long flow, orrunning an expensive full test.

Test execution processes screenshots, native hierarchies, WebView state, and cached metadata; test-scoped environment values can also persist across steps and modules.

View source
SKILL.md:8In the instructionsOpen original file
Momentic Mobile turns structured natural language into native and webviewautomation on Android emulators and iOS simulators. Interactive steps resolvetargets into device actions; assertions can inspect screenshots, nativehierarchies, and webview state.
SKILL.md:118In the instructionsOpen original file
Momentic caches native selectors, XML nodes, visible text, webview state,coordinates, and other metadata. AI checks may also reuse past-result memory.Stale cache or memory can explain a fast wrong-target action or a repeatedborderline verdict.Cache is scoped by git metadata, including branch. Protected branches read cachebut do not write it unless `--save-cache` is used or `CI` is set.
SKILL.md:170In the instructionsOpen original file
Each run has a test-scoped `env` that persists across steps and modules.- In v2, save returned values with `saveAs`; in MCP step strings, use  `--env-key`. Use `setVariable(name, value)` in JavaScript when saving several  values.- Use `env.NAME` in JavaScript and module input expressions. Use  `{{ env.NAME }}` in string fields, but not inside JavaScript source.- Module inputs are JavaScript fragments stored as strings. Quote literal
Start here · InstructionsSKILL.md
momentic-mobile-test
Lines connect the instruction file to its sections, not an observed execution order. Select a section to read the source. 2 more sections are available in the original file.
Files and check records1 files

Coverage and gaps

Content covered in each file

These are the source ranges included in this check, not a guarantee that every issue has been resolved.

  • SKILL.mdFull text included

This report is for the version above. We read the available code and instructions without running the skill or checking extra packages it installs. This is not a promise of safety: a different version or setup may behave differently.

  • SKILL.mdInstructions

Operations mentioned in code and instructions

Install extra software packages
SKILL.md:66In the instructionsOpen original file
Run `npx momentic-mobile doctor` for initial setup and launch, driver, device,or connectivity failures. Use `--json` when collecting a support report. See
SKILL.md:207In the instructionsOpen original file
top-level structure and [Steps](https://momentic.ai/docs/core-concepts/steps) forstep syntax. Run `npx momentic-mobile lint` when schema or file-reference riskwarrants it.
Connect to websites
SKILL.md:68In the instructionsOpen original file
or connectivity failures. Use `--json` when collecting a support report. Seethe [doctor reference](https://momentic.ai/docs/cli-reference/momentic-mobile/commands/doctor).
SKILL.md:73In the instructionsOpen original file
once a simulator build is available. Follow the[Android](https://momentic.ai/docs/platforms/android/app-setup) or[iOS](https://momentic.ai/docs/platforms/ios/app-setup) setup guide rather than
SKILL.md:74In the instructionsOpen original file
[Android](https://momentic.ai/docs/platforms/android/app-setup) or[iOS](https://momentic.ai/docs/platforms/ios/app-setup) setup guide rather thanguessing at missing dependencies.
Lines read
337
File checksum (to compare versions)
b6ef557d4437218004397f58f4b6a3b44b229300c76b32dbe46dc6d761c9b486