Prepare your machine
Flutter, Node, and backend CLIs ready. Via MCP or terminal, before you create the app.
First time publishing an app? Terms like webhook, deploy, and sandbox are in the Glossary.
Haven't installed Kasy yet? Do that first (MCP or global CLI).
Implementation
1. Recommended path: MCP
With the Kasy MCP on in Cursor/Claude, ask:
Prepare my machine for KasyThe assistant runs prepare_machine (kasy doctor) and, if something is missing (Flutter, CocoaPods, etc.), installs it with run_setup_command. No need to type kasy in a terminal.
2. Alternative path: terminal
With the global CLI installed (kasy --version works), run:
kasy doctorIt checks Flutter, Dart, Node, FVM, and backend CLIs (firebase, flutterfire, supabase, gcloud) and installs what's missing for Flutter, Node, and FVM (macOS via Homebrew; Windows downloads the SDK). Backend CLIs are diagnosed only: kasy new installs them when you pick a backend. On Linux, it prints the exact command. FVM pins the Flutter version per project, see create your first app.
3. Simulator / emulator (both paths)
| Tool | How to check | Who installs it |
|---|---|---|
| Xcode (iOS simulator, Mac only) | flutter doctor | You, from the Mac App Store |
| Android Studio (Android emulator) | flutter doctor | You, at developer.android.com |
To start on web (kasy run --web or via MCP), Flutter and Node are enough.
A simulator/emulator is not optional if you sell subscriptions. The RevenueCat test_ key only works on an iOS simulator or an Android emulator: it does not run on web or on a physical device. Details in RevenueCat.
4. JDK (Java), for Android signing
keytool ships with the JDK and is used at two moments: the debug SHA-1 during kasy new, and creating the upload keystore in Publish Android. Check it with:
keytool -helpIf it is missing, install JDK 17 or newer:
| System | How to install |
|---|---|
| macOS | brew install openjdk@17 |
| Windows | winget install Microsoft.OpenJDK.17 |
| Linux | sudo apt install openjdk-17-jdk (or your distro's equivalent) |
If you have Android Studio, it already bundles a JDK (jbr) and the CLI looks there automatically. If you chose not to install Android Studio (using Codemagic for builds), the JDK has to come separately.
5. Physical device over cable
Web and simulators do not cover everything: notifications, widgets and ads only show up for real on a device. So your computer can see your phone:
| Device system | What to enable | Where |
|---|---|---|
| iOS 16+ | Developer Mode | Settings → Privacy & Security → Developer Mode |
| Android | USB debugging | Settings → Developer options → USB debugging |
After that, flutter devices should list the device.
An iPhone over cable requires Xcode installed. Compiling and signing for a physical iPhone uses Apple's toolchain, so without Xcode kasy run cannot install over the cable. Without Xcode, the path to the iPhone is TestFlight (build generated by Codemagic).
Developer Mode only applies to cable installs. An app that arrived via TestFlight or the App Store does not need it.
6. Backend accounts and login
In the terminal (global CLI):
kasy prepareIt asks for the backend (or "Everything"), installs only the CLIs for that target, and opens logins. kasy prepare --backend supabase does not ask for Firebase or gcloud. Safe to run again.
Via MCP: after doctor, ask something like "run kasy prepare", or set up accounts when you create the app. kasy new / create_project also walks you through login then.
Accounts you create (the command doesn't create accounts):
| Backend | Account you need |
|---|---|
| Firebase | Google account with active GCP billing (Blaze plan, required by Cloud Functions) |
| Supabase | Free account at supabase.com. Firebase/gcloud only if you enable push (free FCM companion) |
| REST API | No backend account at prepare time. Firebase/gcloud only if you enable push |
Google Cloud and Firebase must be the same Google account when a Firebase project will be created (Firebase backend, or Supabase/API with push). gcloud auth login creates the GCP project; firebase login adds Firebase to that project. Different emails usually make kasy new (and MCP create_project) fail. Check with kasy doctor, or align with firebase login --reauth using the same email as gcloud. Supabase/API without push does not need this.
Blaze is only for Firebase projects. Supabase or REST API: you don't need it. kasy new warns you if it's missing. Create billing in the Google Cloud Console.
Google Sign-In (Supabase without companion): OAuth login in Testing does not charge. However, when creating a new GCP project inside an organization, the Console may require linking billing (Google Cloud rule, not Supabase). Linking ≠ paying: with no paid APIs enabled, cost stays $0.
Blaze isn't a subscription. It's pay-as-you-go: it only charges past Firebase's free tier.
Next step: create your first app.
Information
CLI license
No license needed: kasy doctor, kasy run, kasy features, kasy version, kasy help, kasy language, kasy status, kasy fix, kasy license, kasy uninstall.
Everything else needs an active license. Full list in CLI Commands.
Last updated on 08/23/2026

