simgrid
One grid for all your simulators — run multiple Expo projects on multiple devices, in parallel, without the alt-tab dance.
Working on several Expo / React Native apps at once is painful. Launch one and it grabs whichever simulator it feels like — often the wrong one, or one already claimed by another project. You end up alt-tabbing between windows, killing and restarting Metro, resolving port conflicts by hand, and losing track of which app runs where.
simgrid solves this at the device layer. It knows which simulators and emulators exist, which already have your dev build installed, which are busy with another project, and it routes each project to the right device automatically.
simgrid targets Expo apps (managed or bare-with-Expo). It reads your app.json / app.config.ts,
uses expo-dev-client deep links, and drives expo start / expo run. A non-Expo React Native
project won't be detected correctly. Native dev-build freshness is computed with
Expo Fingerprint.
npm i -g simgrid-cli # the command is "simgrid"
simgrid # pick devices, then launch
What you get
- 🎛️ Interactive picker across iOS simulators, Android emulators and physical devices.
- 🚀 Parallel launch — one project on many devices, one Metro per project, reused across them.
- 🔍 Dev-build status per device, without booting it: installed or not, and whether it's outdated (native fingerprint changed → rebuild needed, or app version drift).
- 🔌 No port conflicts — a free Metro port per project, dev-client deep-linked automatically.
- 🧭 Shared, self-healing registry that tracks every session and survives
kill -9. - ⬆️ Self-update notice — tells you when a newer
simgrid-cliis on npm (checked daily, cached). - 📋
logs·doctor·profilesfor everyday work.
No daemon. No config file. Just a CLI.