KasyKasy

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

With the Kasy MCP on in Cursor/Claude, ask:

Prepare my machine for Kasy

The 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 doctor

It checks Flutter, Node, and backend CLIs (firebase, flutterfire, supabase, gcloud) and installs what's missing for Flutter and Node (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.

3. Simulator / emulator (both paths)

ToolHow to checkWho installs it
Xcode (iOS simulator, Mac only)flutter doctorYou, from the Mac App Store
Android Studio (Android emulator)flutter doctorYou, 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 -help

If it is missing, install JDK 17 or newer:

SystemHow to install
macOSbrew install openjdk@17
Windowswinget install Microsoft.OpenJDK.17
Linuxsudo 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 systemWhat to enableWhere
iOS 16+Developer ModeSettings → Privacy & Security → Developer Mode
AndroidUSB debuggingSettings → 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 prepare

It asks for the backend (or "Everything"), installs missing CLIs, and opens logins. 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):

BackendAccount you need
FirebaseGoogle account with active GCP billing (Blaze plan, required by Cloud Functions)
SupabaseGoogle account without billing (companion Firebase only for FCM push and Remote Config, free) + free account at supabase.com
REST APIGoogle account without billing (same as Supabase: companion Firebase for push/Remote Config)

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.

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/02/2026