CLI Commands
Full reference for the kasy commands.
Creation and running
| Command | Description |
|---|---|
kasy prepare | Prepares your machine: installs and signs in only what the chosen backend needs |
kasy prepare --backend supabase | Supabase CLI + login only (no Firebase/gcloud). Use firebase, api, or all as needed |
kasy new | Creates a new app (asks for backend, features, credentials) |
kasy new --lang en | Creates the app in English (also saves CLI language) |
kasy new --backend firebase --with revenuecat,sentry | Skips prompts with flags |
kasy new --configure-later | Quick + skip connecting Firebase/Supabase now (app runs in preview mode; run kasy backend later) |
kasy backend | Connects the real Firebase/Supabase project for an app created with configure later (same setup as kasy new, without recreating the folder) |
kasy setup | Alias for kasy new |
kasy run | Runs with full credentials (recommended) |
kasy run --ios | iOS simulator |
kasy run --android | Android emulator |
kasy run --web | Web at localhost:5555 |
kasy run --web --open-browser | Opens in the default browser when Flutter is ready |
kasy run --web --open-browser --fresh | Default browser + clears dev storage (localStorage, sessionStorage, IndexedDB) |
kasy run --web --open | Web in an isolated Flutter Chrome window |
kasy clear-web | Clears localhost dev storage (web app must be running) |
kasy run --prod | Production config |
kasy run --raw | Raw output, no spinner |
kasy reset | Uninstalls and reinstalls (tests the first open) |
kasy reset --web | Clears web storage in the default browser |
kasy reset --ios / --android | Specific device |
kasy reset --no-reinstall | Only uninstalls |
Features
| Command | Description |
|---|---|
kasy add <feature> | Turns on a feature (e.g., revenuecat, ads, ai_chat) |
kasy add --list | Lists features and which ones are on |
kasy remove <feature> | Removes a feature and undoes all its changes |
kasy remove <feature> --yes | Removes it without confirming |
kasy update | Shows features with updates available |
kasy update <feature> | Updates a specific feature |
kasy update backend | Syncs missing SQL migrations/Edge Functions (Supabase) or Cloud Functions/firestore.rules (Firebase) |
kasy update web | Updates the kit scripts in web/index.html (storage clearing, pre-boot theme, iOS Safari height) without touching your title/favicon/splash |
kasy features | Lists available backends and features |
kasy kanban list | Reads the project Kanban (Firebase/Supabase); mostly used by AI through MCP |
kasy kanban create-task --title "..." --column-id <id> | Creates a board task without opening the app |
Deploy and diagnostics
| Command | Firebase | Supabase | REST API |
|---|---|---|---|
kasy deploy | Uploads Functions + Firestore rules + Storage rules | Uploads Edge Functions + migrations + secrets | Doesn't apply (you deploy your own server) |
kasy check | Validates secrets + APNs Key + IAM | Validates secrets + Edge Functions + JWT | Validates local config only |
kasy check --fix | Tries to fix automatically | Tries to fix automatically | No effect (no remote server) |
kasy doctor | Checks environment, dependencies, and project state (all backends) | ||
kasy status | Project summary: backend, active features, pending credentials | ||
kasy validate | Validates backend/feature combinations (all backends) |
Configuration and versioning
| Command | Description |
|---|---|
kasy configure | Configures the App Store ID and other project credentials |
kasy configure --status | Lists pending credentials only (no wizard) |
kasy configure --set SENTRY_DSN=https://... --set RC_TEST_KEY=test_... --yes | Fills credentials without the wizard (repeatable; MCP) |
kasy fix pub-get | Runs flutter pub get |
kasy fix pods | Runs pod install on iOS (Mac) |
kasy fix clean | Clears Flutter/Xcode cache + flutter clean |
kasy release-version | Updates app_latest_version in Firebase Remote Config |
kasy release-version -v 1.4.0 | Direct version |
kasy release-version -v 1.4.0 -f --yes | Mandatory, no confirmation (CI) |
kasy apple-web | Configures Apple login on the web (Firebase or Supabase) |
kasy facebook | Configures Facebook login (native + backend) |
kasy phone | Turns on phone (OTP) sign-in and enables the provider on Firebase/Supabase (--check shows what is missing, --off hides the button) |
kasy notifications text | Edits the project's local notification texts |
kasy docs | Shows the documentation in the terminal |
Visual customization
| Command | Description |
|---|---|
kasy icon --image <path.png> | Changes the app icon (iOS + Android) and regenerates assets |
kasy rename "New Name" | Renames the app across the project; --bundle-id auto also changes the ID (only before publishing). See App name |
kasy color | Changes brand primary color in colors.dart |
kasy splash --light <path.png> --dark <path.png> | Changes the splash logos (light + dark mode) and regenerates assets |
kasy favicon --image <path.png> | Changes the web favicon and PWA icon |
Publishing: iOS (Mac)
| Command | Description |
|---|---|
kasy ios configure | Wizard: Apple's Key ID, Issuer ID, .p8 (once) |
kasy ios configure --api-key ... --issuer-id ... --p8 <path> | Same, without the wizard (MCP) |
kasy ios release | Bumps the build + generates the IPA + sends it to App Store Connect |
kasy ios build | Only generates the IPA (doesn't send it) |
kasy ios clean | Cleans the Flutter/Xcode cache after a DerivedData error |
kasy ios release --version-name 1.0.2 | Changes the visible version and bumps the build |
kasy ios release --no-bump | Doesn't bump the build (rarely used) |
Publishing: Android
| Command | Description |
|---|---|
kasy android configure | Wizard: saves android/key.properties (keystore) |
kasy android configure --keystore <path.jks> --store-password ... | Same, without the wizard (MCP) |
kasy android release | Builds release AAB and opens Play Console |
kasy android build-aab | Builds AAB only (no console) |
kasy android build-apk-signed | Builds a signed release APK (sideloading, alternative stores) |
kasy android build-apk | Builds an unsigned debug APK (quick test) |
Web domain (Firebase Auth)
| Command | Description |
|---|---|
kasy domain list | Lists Firebase Auth authorized domains |
kasy domain add app.yourdomain.com | Authorizes a custom web domain |
kasy domain remove app.yourdomain.com | Removes a domain |
Publishing: Codemagic (no Mac)
| Command | Description |
|---|---|
kasy codemagic configure | Saves the token + App ID + branch (once) |
kasy codemagic configure --token ... --app-id ... | Same, without the wizard (MCP) |
kasy codemagic release | Triggers the iOS + Android build in the cloud |
kasy codemagic release --ios | iOS only |
kasy codemagic release --android | Android only |
kasy codemagic status <buildId> | Checks the build's status |
The CLI itself
| Command | Description |
|---|---|
kasy version / kasy --version | Installed version |
kasy language | Change CLI language (same picker as first run) |
kasy language en | Set English without opening the picker |
kasy license | View or change CLI activation key. Rules in Key and activation |
kasy license --show | Show masked key |
kasy mcp setup | Installs kasy-mcp and writes your editor's mcp.json (see MCP) |
kasy upgrade | Updates the CLI to the latest version |
kasy uninstall | Uninstalls the CLI |
kasy help / kasy --help | Help |
Installing the CLI
npm install -g kasy-cli
# or without installing:
npx kasy-cli newLicense
Free (no key): prepare, mcp, run, reset, clear-web, doctor, status, features, fix, configure, splash, icon, favicon, apple-web, facebook, release-version, kanban, version, language, license, help, uninstall
Requires a valid key: new, backend, add, remove, deploy, check, validate, docs, ios, android, codemagic, notifications, color, domain. Once you have had a valid key, these keep working on an already created project even after the plan lapses.
Requires a key and an active plan: new, update, upgrade. Creating a new project and updating depend on a current subscription; what is already built keeps running on its own (Firebase/Supabase), with no CLI involved.
Last updated on 11/03/2026

