Skip to content
cccskills
FreePublished on GitHubEnglish overview

mobile-eas-dev

Run a mobile app from a cloud workspace in an EAS-hosted iOS simulator, then inspect screens and check changes. The skill uses the workspace’s Metro and API services and can reload the app or start a fresh simulator session.

OriginalShow the original description

Launch and iterate on apps/mobile from a cloud sandbox (no local Xcode or simulator) on an EAS cloud iOS simulator. Use when asked to run, start, open, or show the mobile app from a cloud workspace, or to verify a mobile change there. On a machine with real Xcode, use mobile-sim-verification instead.

ParadevAI/Paradev15,724 stars(GitHub 15,724 + cccskills 0)

Run score Not tested

See how to install

Good for

  • Previewing a mobile app from a cloud workspace
  • Checking a UI change in the running app
  • Reloading the app after code edits
  • Trying the app with a development account

Overview

What it does

From a cloud workspace, this skill uses apps/mobile/scripts/eas-dev.sh to launch a mobile app in an EAS iOS simulator. It reuses an existing connected session when available; otherwise, it starts a session with a simulator build that matches the checkout. If the required build is missing, it creates one. The --reload option reloads the app from Metro, while --new switches to a fresh session. With agent-device, it can inspect the screen, tap, enter text, and take screenshots to check whether code changes appear in the app. Add --user to sign in with a development account.

When it helps

Use it to open and inspect the app or check a screen change in an environment without local Xcode or an iOS simulator.

Example requests

  • “Launch the mobile app in the cloud workspace and show me the screen.”
  • “Check this UI change in the EAS simulator.”
  • “Show me the app signed in with a development account.”

Notes

The workspace needs EXPO_TOKEN and the repository’s .env. If the installed bun version differs from .bun-version, the build lookup cannot run. For a machine with a real Xcode environment, use the separate mobile-sim-verification skill.

This overview was written by AI (OpenAI Codex) from the public SKILL.md. Check the original below for the exact behavior.

Document check

AI checked the SKILL.md for operations that need care and for setup requirements. The score comes only from actually running the skill (hands-on test).

SafetyAre sending data, deleting files, and running commands disclosed?
BPartly lackingIt creates builds and seeds a development account, with limited scope and confirmation details.
Easy setupDoes it need few tools or API keys, and are they documented?
BPartly lackingIt requires EXPO_TOKEN, .env, and a pinned bun version, without setup instructions.

Not counted in the score. Rated by AI (OpenAI Codex) as of Oct 29, 2026. Treat it as a guide and read the original before installing.

Disagree? Request a re-evaluation

Tell us which point is wrong and why. No login needed. We will check it against the SKILL.md, redo the evaluation, and show the result here.

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

Files included (1)

  • SKILL.md5.1 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Mobile on a cloud sandbox (EAS Simulator)

A cloud sandbox is Linux: no xcrun, no simctl. apps/mobile/scripts/eas-dev.sh is the one command that gets the real dev-client app running on an EAS cloud iOS simulator, connected to this sandbox's own Metro and API. Run it:

apps/mobile/scripts/eas-dev.sh

It reuses this checkout's running session when there is one. Otherwise it installs the finished simulator build whose native fingerprint matches this checkout and starts a session, about two minutes. It builds only when no such build exists (the first time, or after a native change), about fifteen minutes. apps/mobile/AGENTS.md's "Verifying in the real app" section records why the script does each step.

apps/mobile/scripts/eas-dev.sh --reload   # load the app from Metro again; starts nothing
apps/mobile/scripts/eas-dev.sh --new      # stop the running session and start a fresh one
apps/mobile/scripts/eas-dev.sh --user maya@local.test   # sign the app in as this dev account
  • Switch accounts with --user name@local.test. It runs db:seed-dev for the account, which creates it with the shared dev password and makes it an onboarded member of admin@local.test's Pro organization. Then it signs out in Settings and signs in through "Sign in with email (dev)". It needs no app code and takes about 20 s. It works alone on a running session or with --new and --reload. Only @local.test accounts: to test as your real account, use the token that setup bakes in for the first launch.

  • Reload with --reload. It opens the dev-client URL and waits for a new iOS Bundled line in the Metro log, three tries. Never agent-device open Superset: that relaunches the app without the Metro URL and it fails with "Could not connect to the server".

  • Switch sessions with --new, never eas simulator by hand. The egress client is bound to the session it started with, so the script stops the old client and starts one for the new session. With no flag it keeps a connected client and restarts one that died.

  • When the script started Metro, each run that (re)starts the tunnel ends only when Metro has served the app a bundle; otherwise it exits non-zero and names the Metro and egress logs. With a Metro started some other way it opens the app but cannot confirm the load.

  • The dev-client URL carries disableAutoLaunch=1&disableFab=1, so no dev menu opens at launch and no gear button covers the toolbar. Each session is a fresh install, so every load passes them.

  • Logs and PID files are in .tmp/eas-dev/ of the checkout, so two checkouts do not stop each other's tunnel.

  • The fingerprint lookup refuses to run when bun --version differs from .bun-version. The dependencies that bun installs give a fingerprint no build has, and EAS would start a 15-minute build that also fails. A cloud workspace made before the pin changed has the old bun: make a new one.

The session is tagged with the workspace id. The desktop Mobile pane lists the workspace's tagged sessions, so the person can watch the simulator there without a link. The script also prints an expo.dev/simulator-preview/... URL for a browser.

Driving the simulator

Load the session and call agent-device directly:

cd apps/mobile && set -a && . ./.env.eas-simulator && set +a
agent-device snapshot -i                        # what is on screen, with @refs
agent-device press 'label="Continue"' --settle  # acts, waits, prints what changed
agent-device fill @e16 "hello" --settle
agent-device screenshot /tmp/screen.png
agent-device help                               # the rest
  • agent-device keeps one session per working directory. Run it from apps/mobile every time.
  • Through eas simulator:exec npx agent-device each command takes about 25 s. Install it globally (npm install -g agent-device) when it is missing.
  • The dev-menu sheet covers the first screen on a fresh install: press Continue, then Close.
  • iOS's "slide to type" keyboard intro is already dismissed on a session the script started.
  • SwiftUI menu items (@expo/ui Menu) are not in agent-device snapshot. Open the menu, take a screenshot, and tap the item by coordinate: agent-device press <x> <y>. This is a limit of the tool, not of the app.
  • Source edits reach the app through fast refresh in about two seconds.

Limits

  • The script forwards the relay and realtime ports but starts neither service, so host and workspace presence show as unreachable. That is fine for auth and UI checks.
  • The session stops by itself after 15 idle minutes (MOBILE_EAS_IDLE_MINUTES). Stop it sooner with eas simulator:stop from apps/mobile.
  • The Expo account runs two builds at a time; a build can wait in the queue behind the team's.

Needs EXPO_TOKEN and this repo's .env (.superset/setup.sh or .superset/setup.cloud.sh).

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

10x

FreeSummary

Review how you use Superset and identify unused features that fit your workflow. Get a short list of suggestions, learn about each option, and set up selected features such as scheduled agents, parallel workspaces, or shared tasks.

  • Find unused Superset features worth exploring
  • Set up scheduled agent tasks
  • Start parallel work in separate workspaces
ParadevAI/Paradev15.7KUpdated Oct 29, 2026

automate

FreeSummary

Set up recurring tasks in Superset with an agent prompt, a schedule or event trigger, and a chosen execution workspace. After explicit confirmation, create the automation, check its saved settings, and review a real first run.

  • Scheduling a daily or weekly agent task
  • Starting agent work when a GitHub pull request opens
  • Triggering tasks from selected Slack reactions
ParadevAI/Paradev15.7KUpdated Oct 29, 2026

browser

FreeSummary

Browse pages, click controls, fill fields, and inspect screenshots or console messages through Superset's browser pane. Use it to preview a running web app, check interface behavior, and work through browser tasks in a visible session.

  • Preview a locally running web app
  • Capture screenshots of a page
  • Inspect console errors
ParadevAI/Paradev15.7KUpdated Oct 29, 2026

Build Stripe payments, subscriptions, and invoicing using verified documentation and API parameter definitions. The skill guides product selection, sandbox testing, and webhook handling, where server notifications determine payment and subscription state.

  • Choose Stripe products for payments or recurring billing
  • Implement Checkout or invoice flows
  • Investigate Stripe code that compiles but behaves incorrectly
ParadevAI/Paradev15.7KUpdated Oct 29, 2026

cdp-verification

FreeSummary

Verify a UI change or reproduce a bug in the running desktop app using the Chrome DevTools Protocol (CDP), a browser debugging interface. Follow the real user journey and compare screenshots with measurements such as route, scroll position, and persisted state.

  • Reproducing a UI bug in the running app
  • Verifying a UI change end to end
  • Checking behavior after a route or workspace switch
ParadevAI/Paradev15.7KUpdated Oct 29, 2026

ci-triage

FreeSummary

Diagnose failed GitHub Actions runs by finding the first meaningful error, separating code problems from infrastructure issues and intermittent failures, and comparing the base branch. Get a focused report explaining the PR’s involvement and recommended next steps.

  • Investigating failed PR checks
  • Separating intermittent test failures from code defects
  • Checking whether the base branch already fails
ParadevAI/Paradev15.7KUpdated Oct 29, 2026

See all skills by ParadevAI

Report a problem with this skill