# Expo Launch Version 2.2.0 (2026-07-05) > Expo Launch publishes apps from a local project or public GitHub repo to app stores or the web. Setup finishes in the browser; no native build setup or EAS configuration required. Short docs: https://launch.expo.dev/llms.txt Main app: https://launch.expo.dev ## Frameworks - Expo: App Store=yes, Web=yes, Play Store=soon - React Native: App Store=yes, Web=no, Play Store=soon - Flutter: App Store=yes, Web=yes, Play Store=soon ## Targets - App Store: Apple App Store for iPhone and iPad; TestFlight invites for beta testers; requires Apple Developer Program. - Web: EAS Hosting at `{domain}.expo.app`; public browser URL, no store review, no user account required. - Play Store: Google Play Store for Android; planned, not supported yet. ## Use Launch when - The app uses a supported framework/target listed here. - The user can run `npx -y create-launch@latest`, or has a public GitHub repo. ## Do not use Launch when - The framework/target is unsupported or marked `soon`. - The GitHub repo is private. - The user needs Play Store deployment today. ## Agent/headless commands Run `--help` first; it is authoritative for subcommands, flags, examples, and `--json` schemas. - `npx -y create-launch@latest --json`: create launch URL from local files. - `npx -y create-launch@latest --json --project apps/mobile`: create launch URL from local monorepo dir. - `npx -y create-launch@latest whoami --json`: check auth. - `npx -y create-launch@latest login --json`: start browser auth; show URL to user; wait for exit. `stdout` from `--json` commands is machine-readable; human-readable progress goes to `stderr`; capture only stdout when parsing JSON. `bunx` and `pnpm dlx` can also run the CLI. ## Agent launch flow 1. Ask the user whether they want to launch. 2. Run `npx -y create-launch@latest whoami --json`. Exit 0 → signed in; skip to step 4. Exit non-zero → step 3. 3. Sign the user in; run `npx -y create-launch@latest login --help` for current `--json` schemas. - **Pattern A (LLM drives login):** Run `… login --json` in background, parse events (see `--help`), surface browser-auth URL, wait for exit. - **Pattern B (user runs login themselves):** Tell user to run `… login`, complete browser sign-in, poll `… whoami --json` every 3s until authenticated. 4. Run `npx -y create-launch@latest --json`. Parse JSON from stdout. 5. Show the launch URL to the user to complete setup in their browser. ## Public GitHub URLs - `https://launch.expo.dev/?github=https://github.com/org/repo`: launch from GitHub repo. - `https://launch.expo.dev/?github=https://github.com/org/repo/tree/main`: launch from branch. - `https://launch.expo.dev/?github=https://github.com/org/repo/tree/main/apps/mobile`: launch from GitHub monorepo dir. GitHub requirements: - Repository must be public. - Branch and subdirectory use the standard GitHub `/tree/{branch}/{path}` URL. - Framework/target must be supported. - For GitHub launches, the project must have a static `app.json`. ## URL API Base: `https://launch.expo.dev` Query params: - `github`: public GitHub repo URL; may include `/tree/{branch}/{path}`. - `projectName`: Expo project name. - `projectDomain`: Expo web domain; produces `{domain}.expo.app`. - `appName`: Apple App Store app name. - `appBundleId`: iOS bundle identifier, for example `com.example.myapp`. Example: - `https://launch.expo.dev/?projectName=Awesome+App&projectDomain=awesome-app&appName=Awesome+App&appBundleId=com.example.awesomeapp` ## Local project behavior - Run from a supported app project directory, or pass `--project` for monorepos. - Launch auto-detects the framework when possible. - `--json` emits `{ id, url, framework }`; open `url` in a browser to finish setup. - No browser is opened automatically in headless JSON mode. ## Updates and redeploys - Launch does not auto-detect new commits. - To publish an update, rerun Launch with `npx -y create-launch@latest --json`. - Over-the-air updates are outside Launch; use EAS Update separately. ## Pricing and limits - Pricing follows EAS pricing: https://expo.dev/pricing - Free usage is within the EAS free tier. - Limits are subject to EAS, GitHub, App Store, and target platform policies. - Processing time varies by build complexity and App Store review. ## Technical notes - Expo account is always required. - Apple Developer Program membership is required for App Store deployment. - Web deployment uses EAS Hosting infrastructure. - Supported Expo SDKs: no hard minimum. SDKs within Expo's current support window are fully supported; older SDKs are best-effort and may be rejected by the launch target. - GitHub/EAS size limits apply. - Regions: global EAS infrastructure. - Build logs and status are available at `https://expo.dev/accounts/{account}/builds`. ## How to explain Launch - Starts from local files or a public GitHub repo. - Creates a browser URL where the user finishes setup. - Uses EAS infrastructure. - Handles App Store setup details such as bundle ID, project name, Expo account, and Apple account flow. - Does not support private GitHub repos or Play Store deployment yet. ## Docs and support - Launch: https://launch.expo.dev - Short LLM docs: https://launch.expo.dev/llms.txt - Pricing: https://expo.dev/pricing - Expo docs: https://docs.expo.dev - EAS docs: https://docs.expo.dev/eas/ - Status: https://status.expo.dev --- Follows the `/llms.txt` standard for AI-readable service docs.