Skills

Mobile Demo Record

Run apps/mobile on the iOS simulator against the local stack, drive it with Maestro...

Install

npx skills add ParadevAI/Paradev --skill mobile-demo-record -g -a claude-code -y
Repository
ParadevAI/Paradev15.8k
Category
Mobile
Updated
3d ago
License
See repository
Context cost
Mediumabout 2,162 tokens
Runs scripts
No, instructions only

What it does

Run apps/mobile on the iOS simulator against the local stack, drive it with Maestro, and capture clean screen recordings. Use when asked to record, film, screenshot, or demo the mobile app, or to verify a mobile change in the real app.

Recording the mobile app

There is no CDP for mobile. The equivalent is the iOS simulator, booted headless, driven by Maestro, recorded with simctl. Nothing here opens a window on the user's display.

Rules

  1. Real app state only. Record real sessions, real pull requests, real pages. No mockups, no DOM-style fakery. Seed the data the story needs, then delete it.
  2. No real data in frame. Use the dev account (admin@local.test) and a demo org with demo projects. Read every frame of the contact sheet for names, emails, repo names, and tokens before sharing anything.
  3. One take per story. A host that has connected once is no longer "never connected", a read page is no longer unread. Reset or reseed state before each take.
  4. Report what you recorded against: worktree, API port, simulator UDID, app build date.

Stack

Start each in its own Paradev terminal (superset terminals create --local --workspace $SUPERSET_WORKSPACE_ID --command "..."; without --local the call silently returns nothing). Ports come from .superset/ports.json and the root .env.

ServiceCommandTrap
APIcd apps/api && bun run devA 500 "password authentication failed" means the worktree's Neon branch was cleaned up. Recreate it and rewrite the "# Workspace Database" lines in .env.
Relaycd apps/relay && while true; do CI=1 WRANGLER_SEND_METRICS=false node_modules/.bin/wrangler dev --port $RELAY_PORT --var NEXT_PUBLIC_API_URL:http://localhost:$API_PORT --local; donewrangler dev dies with an empty error whenever a client aborts mid-request, which every app relaunch does. Hence the loop.
Metrocd apps/mobile && CI=1 bunx expo start --dev-client --port 8081CI=1 disables file watching: restart Metro after code edits. Pre-warm the first bundle by curling the launchAsset.url from curl -H 'expo-platform: ios' localhost:8081, or the dev client times out.
Read the whole SKILL.md on GitHub

More in Mobile