Quick start

1. Install

terminal

bun add -d sootsim

2. Open the simulator

Start your app the normal way, then open it in SootSim:

terminal

sootsim open 8081

If you omit the port, sootsim open scans for available React Native dev servers and lets you pick one.

SootSim’s bridge daemon registers itself transparently on first CLI use, so the common flow (port scanning, one shared bridge across simulators, agents, and CLI commands) just works.

The desktop app is optional. If it is installed, open prefers it; otherwise SootSim opens in your default browser.

3. Add the optional /__soot integration

If you want SootSim installed for your team and always available on your normal dev server, run this in the project repo:

terminal

sootsim setup-repo

That adds the optional Metro or One integration that exposes a /__soot URL on the dev server you already run.

You can also set options in sootsim.config.ts:

import { defineConfig } from 'sootsim/config'
export default defineConfig({
modules: {
// stub a native package that sootsim does not support yet
'my-native-analytics': 'noop',
},
settings: {
deviceModel: 'iphone-16-pro',
colorScheme: 'dark',
},
env: {
API_URL: 'http://localhost:3000',
},
})

5. Run a first flow

Create flows/smoke.yaml:

- launchApp: {}
- waitFor:
text: 'Welcome'
timeout: 10000
- tapOn: 'Get Started'
- assertVisible: 'Home'
- takeScreenshot: home

Run it with:

terminal

sootsim flow flows/smoke.yaml

Want a shareable cloud preview after that? Sign in once, then upload the running session:

terminal

sootsim login
sootsim upload --open