Built for iOS 26 · Apple Silicon

Simulator infrastructure, without the overhead.

Stream, inspect, and control iOS simulators from one lightweight command-line server. Built for local automation and device farms.

localhost:8080/farm
connected

iPhone 17 Pro

8E3B0C42 · booted

Latency12 ms
Stream60 fps
09:41
Tuesday, July 21
Automation readyWebSocket session active
Event stream Live
09:41:02 session.open
09:41:03 stream.h264 60fps
09:41:05 gesture.tap 214,482
09:41:06 ax.snapshot ready
09:41:08 device.status booted
09:41:10 frame.idr emitted
09:41:12 input.swipe complete
60 fpsLow-latency video
1 socketControl + stream
0 depsIn the web client
iOS 26Native HID path
01 / Capabilities

One surface for the full simulator loop.

Baguette turns private simulator APIs into a focused, scriptable interface—from first boot to the last frame.

01

Stream in real time

Low-latency H.264 and JPEG streams with live bitrate, frame-rate, scale, snapshot, and IDR controls.

02

Drive every gesture

Dispatch taps, swipes, pinches, rotations, buttons, and keyboard input through one consistent wire protocol.

03

Inspect what is running

Explore accessibility trees, watch system logs, control location, and capture evidence without leaving the browser.

02 / Architecture

Simple at every boundary.

A Swift CLI and WebSocket server connect your tools to the same input and streaming pipeline.

01

Launch once

Start Baguette as a long-running local process or HTTP server.

02

Connect anything

Use stdin JSON, a browser, WebSocket clients, or your existing automation stack.

03

Control consistently

Every client reaches the same gesture dispatcher and native simulator surface.

04

Scale outward

Move from one simulator to a focused multi-device farm without changing the protocol.

03 / Get started

From install to first stream in minutes.

Install Baguette with Homebrew and launch the server. Requires Xcode 26 on Apple Silicon.

$ brew install baguette