Star 历史趋势
数据来源: GitHub API · 生成自 Stargazers.cn
README.md

Baguette

Baguette

Bon appétit.

Headless iOS Simulator manager + host-side input injection for iOS 26.

CI Coverage Latest release License Swift 6.2 macOS 15+ Xcode 26

A single Swift CLI — baguette — plus a self-contained web UI that gives you full headless control of an iOS simulator without opening Xcode or Simulator.app. Boot devices, stream their screens at 60 fps, dispatch taps, swipes, multi-finger and system gestures, keyboard and hardware buttons, read the accessibility tree, tail the unified log, take screenshots and recordings, and feed the simulator a camera, a location, motion and a slower network — on iOS 26 and later, where the 5-argument HID call idb and AXe rely on stopped working.

Demo

https://github.com/user-attachments/assets/e904413f-16bb-4b3d-86d5-162333403cee

https://github.com/user-attachments/assets/c49c9f4b-0e4b-47ea-9272-3223b1ac7739

https://github.com/user-attachments/assets/65dc62ee-f0c7-48fb-9c57-5bd267c8c02f

The raw clip lives at assets/demo.mp4 — drag it into a GitHub web edit of this README to upload as a CDN-hosted video and replace the line above with the auto-generated URL.

Install

brew install baguette

Apple Silicon with Xcode 26 — baguette links the private SimulatorKit / CoreSimulator frameworks that ship with Xcode. If Homebrew complains about Rosetta, see Troubleshooting.

Quick start

baguette serve                          # web UI at http://127.0.0.1:8421/simulators
open http://localhost:8421/farm         # every booted simulator side by side

baguette list
baguette boot --udid <UDID>
baguette tap  --udid <UDID> --x 219 --y 478 --width 438 --height 954
baguette describe-ui --udid <UDID>      # what's on screen, frames in device points

# an App Store-sized screenshot, and a 10-second clip at the same size
baguette screenshot --udid <UDID> --size appstore-6.9 --output hero.png
baguette record     --udid <UDID> --size appstore-6.9 --duration 10 --output demo.mp4

Coordinates are device points, and --width / --height are the screen size in points (baguette chrome layout --udid <UDID> tells you). For a long-lived session, pipe JSON gestures into baguette input — see the wire protocol.

What it covers

AreaWhat you can do
Touches & gesturesTap, swipe, pinch, pan, streamed one- and two-finger touches, home-indicator and pull-down system gestures → touches, double-tap
Buttons & keyboardHome, lock, volume, action, Watch crown; keystrokes, typed text, paste and clipboard sync → buttons, keyboard, paste
Screen captureScreenshots, recordings, frame streams to stdout, one output-size vocabulary, 3D device renders → screenshot, stream, recording, capture-size, 3d-rendering
AccessibilityThe on-screen AX tree as JSON, hit-testing, a hover inspector in the browser → accessibility, ax-inspector, ax-hit-test-sweep
LogsLive unified log, filtered by level, predicate or bundle id → logs
Web UIFocus-mode page with bezel, a multi-device farm, a JS SDK for your own page → device-farm, chrome-bezel, baguette-sdk, serve routes
Device lifecycleBoot, shut down, repair input after Xcode 27's Device Hub → boot, device-hub
Device settingsOrientation, appearance, contrast, text size, status bar, shake → orientation, interface, status-bar, shake
Simulated worldMac webcam or a file as the camera, GPS and routes, CoreMotion, network conditioning → camera, location, motion, network
Apps & filesDeep links and URL schemes, drag-and-drop app install and Photos → deep-links, file-upload
Other screensCarPlay and paired Watch, iPhone Duo and its hinge, a physical iPhone (preview) → companion-screens, iphone-duo, hinge, device-twin
PluginsAdd panels and commands from a trusted bakery; they run as subprocesses → plugins

More

Docs index · Commands · Wire protocol · Serve routes · Architecture · Contributing · Changelog

License

Apache License 2.0 — see LICENSE.

关于 About

Headless control for Apple's Simulators — 3D models, taps, swipes, multi-finger gestures, 60 fps streaming, and a multi-device farm
agentclidevicefarmiossimulatorsimulatorkitstreaming

语言 Languages

Swift68.6%
JavaScript21.1%
HTML4.2%
Objective-C4.0%
Python0.8%
CSS0.7%
Shell0.6%
Makefile0.0%
C0.0%

提交活跃度 Commit Activity

代码提交热力图
过去 52 周的开发活跃度
764
Total Commits
峰值: 128次/周
Less
More

核心贡献者 Contributors