Skip to Content
Tripod Devices

iOS + Android Lean pair

Start an iPhone simulator and an Android emulator together in Lean, see both screens, debug either, and stop with everything put back.

The pair runs one iPhone simulator and one Android emulator at the same time, in Lean, the profile that costs the least memory. It exists for teams that ship one app on both platforms and want both screens up while they debug.

Start a pair

Choose Start iOS + Android

Use Device > Start iOS + Android, the button on the welcome card, or the New Device menu in the device list. From a shell, run tripod-devices pair-start.

Wait for both boots

The app picks the saved pair, else a device that is already running, else a stopped one. It creates Tripod_Pair_iPhone or Tripod_Pair_Android only when a platform has nothing usable. Both boots run in parallel.

Work on both

The simulator takes the stage. The emulator opens in a window beside it. Both are live and both take input.

Stop

Stop shuts both down and restores what Lean changed. If a restore is still owed after a relaunch, Stop stays enabled.

What Lean changes

PlatformWhat Lean doesWhat it never touches
iOS SimulatorOn a shut-down iOS 27.2 simulator, turns off optional background services (push, search and Siri among them) through the same preview, apply and receipt as the Tune tab.A simulator that already has a receipt is left as its owner tuned it.
Android EmulatorBoots a stopped emulator as its managed Lean copy, with its own trimmed settings.Your source AVD is never written, so it needs no restore.

A device that is already running joins the pair as it is. It is labelled stock, with the reason. The pair does not retune a running device. To get Lean on one, shut it down and start the pair again.

Services Lean turns off

The pair applies Lean without the per-feature review that the Tune tab shows. If your app needs push, search, Siri or another service, use Tune's per-capability selection on the simulator instead of the pair.

Memory

The pair adds both boot estimates to your memory reserve before either boot starts. If the sum does not fit, the app refuses and names the gigabytes needed and available. Close something, or stop another virtual device.

The line under the pair and the Performance > Live tab show the measured memory footprint and CPU of each device's host processes, and their sum. A missing half is never counted as zero. The line updates while the main window is visible, so a device window alone on screen shows the last reading.

What we measured

These numbers come from our performance notes. Each is one workload on one Mac, from a named earlier build, so read them as observations and not as a promise.

WorkloadResultCaveat
iOS Settings, stock against a 175-label Lean selectionHighest Lean median at least 7.337 GiB (74.4%) below stockFour boots in shared slots, on an M4 Mac mini.
API 36 Android emulator, stock against LeanHighest Lean median at least 2.810 GiB (52.54%) below stockStock and Lean had different RAM and core counts, and a cache cap changed after capture, so it measures the whole profile. Lean also read higher QEMU CPU in single post-capture readings.

Debug either half

Inspector, Logs, Network and every other tool read the device on the stage. To follow the other half, press Control-Command-P, or use the two device glyphs in the Debug and Network card headers. It swaps which device is up front without reconnecting either.

Agents and the pair

Three tools drive the pair, and none takes a device id.

ToolCLIDoes
device_pair_starttripod-devices pair-startPicks or creates both devices, boots them in Lean, shows them and opens both for this connection.
device_pair_calltripod-devices pair-callRuns one tool on both at once and answers once. ios and android objects override shared params.
device_pair_stoptripod-devices pair-stopCloses this connection's hold on both, shuts both down and restores the simulator's services.
tripod-devices pair-start
tripod-devices pair-call --method device_tap --params.selector.text "Sign in"
tripod-devices pair-call --method device_launch --ios.app com.example.app --android.app com.example.app.debug
tripod-devices pair-stop

One half failing does not hide the other half's answer. The tripod-lean-pair skill teaches an agent this loop. See Agents.

Limits in the alpha

  • The pair is one simulator and one emulator. Real phones open on their own.
  • The simulator's Lean selection targets iOS 27.2 simulators.
  • The pair is covered by device-free tests. Checks on a real simulator and emulator are still open in this alpha, so expect rough edges.

On this page