Local mobile runs need macOS on Apple Silicon (arm64). Intel Macs, Linux, and Windows cannot boot the simulator or emulator locally. On those hosts, run mobile suites on the cloud grid with
--remote. The setup sections below are for the local path.What Mobile Means Here
Native app testing. A mobile test drives an installed app. Pass a build, or the app id of an earlier upload, with--app. Kane CLI installs the app on the device and runs your objective against it. WebViews inside the app are supported.
Two targets. emulator is a virtual Android device and simulator is a virtual iOS device. The default target is desktop, the browser, so your existing web runs are unaffected.
Why a Single Architecture for Local Runs
Apple Silicon runs both mobile stacks natively. The iOS Simulator is a first-class Apple target, and Android shipsarm64-v8a emulator images that run on the Mac’s built-in hypervisor with hardware acceleration.
Using one host architecture keeps local setup predictable and runs fast, because nothing has to be translated between CPU architectures. Other hosts reach the same devices through the cloud grid, where the grid’s macOS runners boot them.
How Setup Works
Setup has two parts. You handle the first, and Kane CLI handles the second. 1. You provide the virtual device. Install Xcode (Apple) or Android Studio (Google). For Android, also create one virtual device. These are the standard tools Apple and Google ship for simulators and emulators. 2. Kane CLI installs its own test tooling and drives the device. Sign in and run one command:kane-cli doctor --target emulator|simulator at any time to check what is ready and what is missing. It prints one line per required check, each with a fix. kane-cli devices list --target emulator|simulator lists the devices Kane CLI can run against.
Prerequisites
An uploaded app id is
APP followed by six or more digits.
Both targets require macOS on Apple Silicon and a one-time kane-cli doctor --target emulator|simulator --install. Set up only the platforms you plan to test. --remote runs need none of this.
Setup
Follow the tab for each platform you plan to test.- iOS Simulator
- Android Emulator
The iOS runtime versions and simulator models on this page are working examples, not the full list of supported versions. Confirm that a specific version is officially supported before you depend on it.
Step 1: Install Xcode 16 or Newer
Install the full Xcode app from the Mac App Store. The standalone Command Line Tools are not enough. Kane CLI requires Xcode 16 or newer, which bundles the iOS Simulator, thesimctl tool, and at least one iOS runtime. The download is large, several GB, so allow time on the first install.Launch Xcode once after installing so it can finish installing its additional components.Step 2: Point the Command Line Tools at Xcode
Kane CLI talks to the simulator through Apple’ssimctl, which ships inside Xcode. Make sure the developer directory resolves to the full Xcode install, not the standalone Command Line Tools:simctl are reachable:Step 3: Install the Kane CLI Test Tooling
Sign in and let Kane CLI install the tooling it manages for the simulator:Ready Check
Confirm Kane CLI sees a ready iOS toolchain and, optionally, the simulators on your machine:--device-name "<name>" --os-version <v> with the values exactly as the list prints them.Running a Mobile Test Locally
Once a target is set up, point a run at it:--device-name and --os-version, using the values exactly as kane-cli devices list --target emulator|simulator prints them. To save defaults, use kane-cli config set-device-name and kane-cli config set-os-version. A device name must be paired with an OS version. An OS version on its own matches any device running that version.
In the TUI or an interactive terminal, if you leave out the device flags, Kane CLI opens a one-time picker and saves your choice. A non-interactive run, such as one in CI, needs the device set in advance with the flags or the two config commands above. Otherwise the run exits and prints the fix.
Every mobile run requires --app:
- The simulator target accepts a
.zipbuild. - The emulator target accepts an
.apkbuild. - Both accept an uploaded app id:
APPfollowed by six or more digits.kane-cli apps list --target emulator|simulatorlists the uploaded builds your account can use.
desktop target, Kane CLI ignores the device flags and --app.
In the interactive TUI, the first run offers a choice of Desktop, Emulator, or Simulator. You can switch targets with /mobile and /desktop until you send the first objective. After that, run /new before you switch. Run /doctor to check your mobile tooling and devices.
For the full flag list, see the CLI Reference and Mobile Runs. To save a default target, device, and app instead of passing flags every time, see Configuration. To set the target, app, and device inside a test file, see Test.md. To run a folder of mobile tests, see Batch Runs.
Running a Mobile Suite on the Cloud Grid
You can skip the local setup entirely.kane-cli testrun run --remote sends your mobile _test.md files to HyperExecute. HyperExecute boots a virtual device on a macOS host, installs the app, runs the suite, and returns the recordings and evidence pack to your project. Anyone on the team can write and run mobile tests this way, from any operating system.
- The device comes from the grid catalog, not from the AVDs or simulators on your machine. List the catalog with
kane-cli devices list --target emulator|simulator --remote. - One job runs one platform. Emulator members run on one Android version, and simulator members run on one HyperExecute pool.
- A local build is uploaded from your machine before the job is sent, and the grid receives it as an
APP…id.
Evidence for a Mobile Run
The result summary records the device in the run environment, such as the device model and OS version. The per-step logs include device logs from the emulator or simulator, next to the usual browser logs.Common Failures
Next Steps
- Remote Runs on the Cloud Grid to run mobile suites from any machine
- CLI Reference for the full flag and command list
- Configuration to save a default target, device, and app
- Batch Runs to run a suite of mobile tests
- Troubleshooting for wider setup and run problems