skills/expo-dev-client/SKILL.md
Build and distribute Expo development clients (custom Expo Go) locally or via TestFlight when a vibe-kit mobile project requires native modules (camera, BLE, etc.) beyond stock Expo Go. User-visible strings match the user's input language (Vietnamese by default for VN users). Trigger phrases (EN + VN): "expo dev client", "custom expo go", "tao dev client", "test native module".
npx skillsauth add Hikkywannafly/vibe-kit expo-dev-clientInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Language rule (vibe-kit override): Status / progress messages default to Vietnamese for VN-built vibe-kit projects. Code, file paths, EAS commands stay English.
Use EAS Build to create development clients for testing native code changes on physical devices. Use this for creating custom Expo Go clients for testing branches of your app.
Only create development clients when your app requires custom native code. Most apps work fine in Expo Go.
You need a dev client ONLY when using:
Try Expo Go first with npx expo start. If everything works, you don't need a dev client.
Ensure eas.json has a development profile:
{
"cli": {
"version": ">= 16.0.1",
"appVersionSource": "remote"
},
"build": {
"production": {
"autoIncrement": true
},
"development": {
"autoIncrement": true,
"developmentClient": true
}
},
"submit": {
"production": {},
"development": {}
}
}
Key settings:
developmentClient: true - Bundles expo-dev-client for development buildsautoIncrement: true - Automatically increments build numbersappVersionSource: "remote" - Uses EAS as the source of truth for version numbersBuild iOS dev client and submit to TestFlight in one command:
eas build -p ios --profile development --submit
This will:
After receiving the TestFlight email:
Build a development client on your machine:
# iOS (requires Xcode)
eas build -p ios --profile development --local
# Android
eas build -p android --profile development --local
Local builds output:
.ipa file.apk or .aab fileInstall iOS build on simulator:
# Find the .app in the .tar.gz output
tar -xzf build-*.tar.gz
xcrun simctl install booted ./path/to/App.app
Install iOS build on device (requires signing):
# Use Xcode Devices window or ideviceinstaller
ideviceinstaller -i build.ipa
Install Android build:
adb install build.apk
# iOS only
eas build -p ios --profile development
# Android only
eas build -p android --profile development
# Both platforms
eas build --profile development
# List recent builds
eas build:list
# View build details
eas build:view
Once installed, the dev client provides:
Connect to local development:
# Start Metro bundler
npx expo start --dev-client
# Scan QR code with dev client or enter URL manually
Build fails with signing errors:
eas credentials
Clear build cache:
eas build -p ios --profile development --clear-cache
Check EAS CLI version:
eas --version
eas update
data-ai
Generate Vietnamese marketing copy, UI strings, CTAs, error messages, and email templates for vibe-kit projects. Tone: friendly, conversational, Southern Vietnamese style. Activated for any user-visible text generation.
development
One-shot orchestrator. Turns the prose after /vibe into a shipped product by clarifying intent, rendering a plan, gating on approval, then spawning planner+researcher+fullstack-dev+tester+reviewer agents in sequence. User-visible strings match the user's input language (Vietnamese by default for VN users). Two modes: SAFE (default — clarify + show plan + wait for approval, max 1 round-trip) and YOLO (skip clarify+approval, run full auto with smart defaults — for demos and power users). YOLO triggers: prose contains `yolo`, `nhanh nha`, `lam luon`, `khoi hoi`, `auto`, or args start with `yolo`. Trigger phrases (EN + VN): "build me a site", "make me a landing page", "create a shop", "I need an app", "vibe lam website", "tao cho toi mot", "xay dung shop online", "lam landing page", "can mot app".
tools
On-demand security audit for vibe-kit projects. Stack-aware checks for Next.js App Router + Supabase + Polar: secrets leak, RLS gaps, service-role key in client bundle, missing webhook signature verification, unprotected API routes, weak headers, dependency vulns. Outputs a Vietnamese P0/P1/P2 report with file:line + fix hints. User-visible strings match the user's input language (Vietnamese by default for VN users). Trigger phrases (EN + VN): "check security", "audit it", "security scan", "is this safe to launch", "kiem tra bao mat", "quet bao mat", "audit du an", "co an toan khong", "scan bao mat truoc khi deploy".
tools
Wire Supabase JS client into a React Native (Expo) vibe-kit project: session persistence via AsyncStorage, magic-link OAuth callback via expo-linking deep links, Realtime subscriptions on RN, and shared TypeScript types with the Next.js webapp twin (vibe-kit's typical web<->mobile pair pattern). This is the mobile counterpart of `auth-magic-link` (web). User-visible strings match the user's input language (Vietnamese by default for VN users). Trigger phrases (EN + VN): "supabase react native", "supabase mobile", "auth mobile expo", "magic link mobile", "tich hop supabase vao app", "supabase deep link".