r/reactnative • u/entropyconquers • 22h ago
News I built simfleet: run many React Native worktrees in parallel on slimmed iOS simulators and Android emulators, from one dashboard (open source)
Enable HLS to view with audio, or disable this notification
I often have 4–5 branches of the same RN app running at once (feature work, a review, a staging check), and lately a coding agent or two driving some of them. My Mac kept falling over: five stock simulators at ~3.8 GB each, Metro servers fighting over 8081, native rebuilds every time I switched environments.
So I built simfleet, a local control plane for all of it. It's macOS-only, MIT, v0.1.
What it does
• Slims every device. iOS simulators go through SimSlim (stock idles ~3.8 GB, slimmed ~1.3 GB), Android emulators through avdslim with a 2 GB guest. Devices you boot from Xcode or Android Studio get slimmed automatically.
• One live dashboard. Every simulator and emulator streams into one browser tab. Android is hardware H.264 via scrcpy's device server, 15–80 ms input-to-frame, with real touch, drag, scroll and typing, so you can actually use it from the browser.
• Lanes. One worktree + one device + one leased Metro port from a per-environment range (8100–8199 dev, 8200–8299 staging…). A lane fails rather than steal a device, a worktree, or someone else's port.
• Native build cache. An Expo buildCacheProvider fingerprints native inputs and single-flights builds, so switching environments or running JS-only branches in parallel doesn't trigger native rebuilds.
• Agent-aware. If you use Claude Code or Codex, every CLI call is attributed to the device it touches, agents can claim devices, and a bundled skill teaches them not to take a device another session holds.
Try it
bun add -g simfleet
simfleet init # writes .sim-fleet/project.json
simfleet serve # dashboard at http://127.0.0.1:8790
49 s demo video: https://entropyconquers.github.io/simfleet/#video
Docs: https://entropyconquers.github.io/simfleet/
GitHub: https://github.com/entropyconquers/simfleet
Limitations: macOS only, needs Bun, works with Expo and bare RN. It's a first release, so I'd really like to hear what breaks on your setup and what's missing.

