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