Install
openclaw skills install mobile-app-builder-aiBuild full-stack web and mobile apps from a text description. Creates projects, plans features, and starts Quick Start builds for background execution.
openclaw skills install mobile-app-builder-aiBuild production-ready web apps and Expo mobile apps from a text description. LaunchPulse plans features, starts Quick Start in the background, and returns project/session context immediately.
What it does:
If feature planning is temporarily unavailable, the skill falls back to a single MVP feature so Quick Start never stalls.
The first time you run the skill, it automatically starts a device-login flow:
Token storage path: ${OPENCLAW_STATE_DIR:-~/.openclaw}/launchpulse/auth.json
Advanced alternatives:
LAUNCHPULSE_PAT / --pat <token>: provide a PAT directlyLAUNCHPULSE_API_KEY / --api-key <token>: alias for PAT-style API key authLAUNCHPULSE_ACCESS_TOKEN / --access-token <jwt>: provide a Supabase JWT (advanced)LaunchPulse uses a token-based billing system. Every AI operation (feature planning, building, iterating) consumes tokens.
Plans:
| Plan | Price | Tokens/month | Best for |
|---|---|---|---|
| Free | $0 | 10,000 (~2-5 features) | Trying it out |
| Starter | $19/mo | 200,000 (~50-100 features) | Individual builders |
| Builder | $49/mo | 500,000 (~125-250 features) | Serious app builders |
Token addon packs (one-time, never expire):
What happens when you run out:
/launchpulse status to check your balance anytime/launchpulse upgrade to purchase more tokens or upgrade your planLogin (optional, happens automatically on first use):
/launchpulse loginLogout (clears stored token):
/launchpulse logoutCheck balance:
/launchpulse statusUpgrade plan or buy tokens:
/launchpulse upgrade (shows all options)/launchpulse upgrade --tier STARTER (subscribe to Starter)/launchpulse upgrade --tier BUILDER --billing-period annual (annual Builder)/launchpulse upgrade --tokens 0 (buy 50K token pack)Quick Start a web app:
/launchpulse web "Create a landing page for a dog walking business"Quick Start a mobile app (Expo):
/launchpulse mobile "Create an Expo app for habit tracking"Iterate on an existing project:
/launchpulse iterate <projectId> "Add a contact form to the homepage"Production operations:
/launchpulse projects/launchpulse project-status <projectId>/launchpulse deploy <projectId> --target cloud-run --wait/launchpulse deploy-status <projectId> <deploymentId>/launchpulse store-publish <projectId> --payload-file ./store-publish.json --wait/launchpulse store-status <projectId> [--publish-id <id>]/launchpulse store-2fa <projectId> <publishId> <code>/launchpulse domains search "mybrand"/launchpulse domains check mybrand.com/launchpulse domains add <projectId> mybrand.com/launchpulse domains provision <projectId> mybrand.com my-fly-app/launchpulse db info <projectId>/launchpulse db table <projectId> users/launchpulse db query <projectId> "select * from users limit 10"/launchpulse storage init/launchpulse storage upload <projectId> --payload-file ./upload.json/launchpulse env-files list <projectId>/launchpulse env-files save <projectId> --file-path vitereact/.env --vars-file ./vars.json/launchpulse payments inject-env <projectId> --project-type vitereact/launchpulse payments setup <projectId> --project-type expo --stripe-publishable-key pk_test_... --revenuecat-ios-key appl_... --revenuecat-secret-key sk_...If the user says "iterate it" without an id, use the most recent projectId from the current chat/session.
Run the script from the OpenClaw workspace root:
cd ~/.openclaw/workspacenode skills/launchpulse/scripts/launchpulse.cjs loginnode skills/launchpulse/scripts/launchpulse.cjs statusnode skills/launchpulse/scripts/launchpulse.cjs upgrade --tier STARTERnode skills/launchpulse/scripts/launchpulse.cjs web "<description>"node skills/launchpulse/scripts/launchpulse.cjs mobile "<description>"node skills/launchpulse/scripts/launchpulse.cjs iterate <projectId> "<change request>"node skills/launchpulse/scripts/launchpulse.cjs projectsnode skills/launchpulse/scripts/launchpulse.cjs project-status <projectId>node skills/launchpulse/scripts/launchpulse.cjs deploy <projectId> --target cloud-run --waitnode skills/launchpulse/scripts/launchpulse.cjs store-publish <projectId> --payload-file ./store-publish.json --waitnode skills/launchpulse/scripts/launchpulse.cjs domains search "<query>"node skills/launchpulse/scripts/launchpulse.cjs db info <projectId>node skills/launchpulse/scripts/launchpulse.cjs payments setup <projectId> --project-type vitereact --vars-file ./vars.jsonUseful options:
--api-base <url>: override API base (for local/dev backend)--name <slug>: preferred project id--pat <token> / --access-token <jwt>: advanced auth overrides--no-plan: skip AI planner and use MVP fallback feature directly--timeout-min <n>: timeout in minutes for long-running commands (iterate/deploy/store wait)--chat-id <id>: (iterate) use a specific project chat--provider <id> / --model <id>: (iterate) override AI provider/model--target <cloud-run|fly>: (deploy) deployment target--wait: poll until terminal status (deploy/store publish)--payload-file <path>: JSON payload for complex commands--project-type <vitereact|expo>: payment/env injection mode--vars-file <path> / --file-path <path>: env-files save/payment setupWhen running this skill for users in Telegram/OpenClaw, keep updates short and frequent:
status: "quick_start_started", always send an explicit completion update immediately with projectId, sessionId, and guidance to monitor via project-status.status: "token_limit_exceeded", tell the user their tokens are used up and share the upgrade URL from the output.The script prints a final JSON object to stdout including:
ok: boolean success flagstatus: operation-specific status (quick_start_started, success, failed, token_limit_exceeded, deploy/store/domain/db/payment states)projectId, mode, sessionIdpreview: URLs (frontendUrl, backendUrl, expoGoUrl)features: counts snapshot (total, selected, completed)billing: (when applicable) tier, upgradeUrl, buyTokensUrlExit codes: 0=success, 1=error, 2=paused, 3=timeout, 4=failed, 5=billing/token limit
Default API: https://api.launchpulse.ai/api
Override for local dev:
LAUNCHPULSE_API_BASE_URL=http://localhost:667/api--api-base http://localhost:667/apiweb and mobile flow to Quick Start onlyweb/mobile now return immediately with status: "quick_start_started"status command to check plan and usageupgrade command with direct Stripe checkout links