tddworks/baguette
tddworks/baguette has 2,279 GitHub stars and 132 forks. GitHot measured -1 stars in 24 hours and +7 in 7 days. Last checked 2026-11-10 01:29 UTC. Last push 2026-10-29.
Headless control for Apple's Simulators — 3D models, taps, swipes, multi-finger gestures, 60 fps streaming, and a multi-device farm
Measured star growth
- in 24h
- -1
- in 7 days
- +7
- in 15 days
- Update delayed
- in 1 month
- Update delayed
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
Original
Baguette
Bon appétit.
Headless iOS Simulator manager + host-side input injection for iOS 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
| Area | What you can do |
|---|---|
| Touches & gestures | Tap, swipe, pinch, pan, streamed one- and two-finger touches, home-indicator and pull-down system gestures → touches, double-tap |
| Buttons & keyboard | Home, lock, volume, action, Watch crown; keystrokes, typed text, paste and clipboard sync → buttons, keyboard, paste |
| Screen capture | Screenshots, recordings, frame streams to stdout, one output-size vocabulary, 3D device renders → screenshot, stream, recording, capture-size, 3d-rendering |
| Accessibility | The on-screen AX tree as JSON, hit-testing, a hover inspector in the browser → accessibility, ax-inspector, ax-hit-test-sweep |
| Logs | Live unified log, filtered by level, predicate or bundle id → logs |
| Web UI | Focus-mode page with bezel, a multi-device farm, a JS SDK for your own page → device-farm, chrome-bezel, baguette-sdk, serve routes |
| Device lifecycle | Boot, shut down, repair input after Xcode 27's Device Hub → boot, device-hub |
| Device settings | Orientation, appearance, contrast, text size, status bar, shake → orientation, interface, status-bar, shake |
| Simulated world | Mac webcam or a file as the camera, GPS and routes, CoreMotion, network conditioning → camera, location, motion, network |
| Apps & files | Deep links and URL schemes, drag-and-drop app install and Photos → deep-links, file-upload |
| Other screens | CarPlay and paired Watch, iPhone Duo and its hinge, a physical iPhone (preview) → companion-screens, iphone-duo, hinge, device-twin |
| Plugins | Add 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.
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
561,398 starspublic-apis/public-apis
A collective list of free APIs
497,679 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
447,495 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,261 stars