Skip to main content

Using Claude Code, Cursor, or another coding agent? Paste this into your prompt to run cross-browser and real-device tests, debug sessions, and wire up CI on the TestMu AI cloud:
Kane CLI can run tests against local mobile virtual devices: Apple’s iOS Simulator and Google’s Android Emulator. You author and run mobile tests the same way you already do for the browser. The differences are that a mobile test runs against an app you provide, and that the target device is a simulator or emulator on your machine.
This release supports macOS on Apple Silicon (arm64) only. Mobile testing is not yet available on Intel Macs, Linux, or Windows. Everything below assumes a mac-arm64 host.

What Mobile Means Here

Native app testing. A mobile test drives an installed app. You pass a build, or an app id from a previous upload, with --app. Kane CLI installs it on the device and runs your objective against it. WebViews inside the app under test are handled.
Pointing a mobile run at a website is not supported yet. Mobile runs target a native app, not a mobile web page.
Two targets. emulator is a virtual Android device and simulator is a virtual iOS device. The default target stays desktop, the browser, so nothing changes for your existing web runs.

Why a Single Architecture

Apple Silicon runs both mobile stacks natively. The iOS Simulator is a first-class Apple target, and Android ships arm64-v8a emulator images that run on the Mac’s built-in hypervisor with hardware acceleration. Standardising on one host architecture for the first release keeps setup predictable and runs fast, with no cross-architecture translation in the path. Support for other hosts will follow in a later release.

How Setup Works

There are two halves, and Kane CLI owns the second. 1. You provide the virtual device. Apple’s and Google’s own tooling, Xcode or Android Studio, supplies the simulator or emulator. These are the same tools Apple and Google already ship for building simulators and emulators. Kane CLI does not ship an iOS runtime, an Android SDK, an emulator, or a system image. 2. Kane CLI installs its own test tooling and drives the device. After a one-time kane-cli doctor --install, covered in Setup below, Kane CLI discovers the device, boots it, installs your app, and runs the test. You do not boot the simulator or emulator by hand. Run kane-cli doctor at any time to check what is ready and what is missing. It prints one line per required check, each with a fix.

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 --install.

Setup

Step 1: Prepare the Virtual Device

Follow the tab for the platform you intend to test. Set up both if you test on both.
The exact iOS runtime versions and simulator device models in the supported matrix are pinned by the product team. The versions shown below are current, working examples. Confirm the officially supported set before you rely on a specific one.

Point the Command Line Tools at Xcode

Kane CLI requires Xcode 16 or newer, which bundles the iOS Simulator, the simctl tool, and at least one iOS runtime. Kane CLI talks to the simulator through simctl, so make sure the developer directory resolves to the full Xcode install, not the standalone Command Line Tools:
Confirm Xcode and simctl are reachable:
You should see one or more iOS devices grouped under an iOS runtime. Xcode ships with default simulators. If none are listed, add one from Xcode → Settings → Platforms, or Xcode → Window → Devices and Simulators.

Step 2: Install the Kane CLI Test Tooling

Sign in and let Kane CLI install the tooling it manages. This is the same for both platforms:
You do not need to boot a simulator, boot an emulator, or run adb yourself. Kane CLI discovers the device, boots it, installs your app, and runs the test.

Step 3: Ready Check

Confirm Kane CLI sees a ready toolchain and, optionally, the devices on your machine:
When the checks for your platform pass, setup is complete. On Android, confirm your AVD is listed by --targets.

Running a Mobile Test

Once a target is set up, point a run at it:
--app is required for every mobile run. The simulator target accepts a .zip build, the emulator target accepts an .apk build, and both accept an uploaded app id, APP followed by six or more digits. You also need a device. In the interactive TUI, leaving --device off opens a one-time picker and saves your choice. A non-interactive run, such as one in CI, needs a device already set with --device or kane-cli config set-device, or the run exits and prints the fix. On the desktop target, --device and --app are ignored. In the interactive TUI, switch targets with /mobile and /desktop, and run /doctor to check mobile tooling and devices. For the full flag list and the app formats each target accepts, see the CLI Reference. To save a default target, device, and app instead of passing flags every time, see Configuration. To run a mobile test from a file, see Test.md.

Evidence for a Mobile Run

The result summary records the device in the run environment, for example the device model and OS version, and the per-step logs include device logs from the emulator or simulator alongside the usual browser logs.

Common Failures

Next Steps