CLI Reference

The sootsim CLI is the operational surface for booting shells, opening sessions, driving automation, and exposing the bridge host to agents.

terminal

sootsim [command] [options]
sootsim [-- <bundler-command>]

Commands

commanddescription
previewproduction-like preview build
testrun tests against sootsim
flowrun flows through the current session or manage a draft from live inspect actions
maestrorun existing Maestro YAML flows against sootsim
detoxrun existing Detox suites against sootsim on headless Chromium
recordcapture the live session as webm/mp4/gif, or sample N png frames (—frames)
profilecapture a sampled CPU trace from the tenant worker
assertrun any read verb and convert its output into an exit code
screenshotcapture the canvas (full or cropped) as PNG
getread runtime state (tree, a11y, url, count, errors, …)
screenshotscapture + compose app-store screenshot sets from a single plan
dodrive the app (tap, type, scroll, swipe, key, reload, …)
screenshot-modetoggle the screenshot-mode chrome overlay
waitblock until the runtime reaches a known state
shelldrive shell state and simulator chrome
uploadpublish the current bundle as a shareable /preview/<id> link
inspectquery, describe, and drive the running sootsim instance
networkinspect live network traffic from the running sootsim worker
logsinspect live console output from the running sootsim worker
debugdrive __sootsimDebug: channels, snapshots, and inspectors
openload a target into the current session or open a new one
listlist connected sootsim sessions or available launch drivers
useselect a connected sootsim session
skillsinstall bundled sootsim skills into a project
claimtake an exclusive lease on a sootsim session
closeclose a connected sootsim session
configmanage sootsim.config.ts
compatcheck package compatibility (alias: scan)
electronlaunch the desktop companion
daemonmanage the sootsim bridge as a login agent
serverrun the sootsim bridge daemon in the foreground
runtimemanage engine runtimes under ~/.sootsim/runtimes/
launchone-shot: install runtime if needed, start daemon, open the app
setup-reposet up sootsim in your project
install-desktopdownload and install the optional desktop GUI
loginsign in so preview uploads are associated with your account
logoutclear the local desktop auth session
whoamiprint the currently signed-in account

Global Flags

flagdescription
-h, --helpshow help
-V, --versionshow version
-v, --verboseverbose output
-p, --port <number>server or bridge port, depending on command
-d, --device <model>override the simulated device model
-t, --theme <scheme>override light, dark, or auto color scheme
--headlessrun browser automation without a visible window where supported

What The CLI Covers

The CLI is split across four jobs:

  • booting a simulator shell around a local React Native bundler
  • opening, listing, and targeting live sessions over the shared bridge host
  • automating those sessions for tests, flows, screenshots, and recordings
  • exposing the same bridge-backed runtime to CLI automation and generated docs

If you only remember one rule, use the highest-level command that matches the task. Reach for sootsim open before pasting shell URLs, and sootsim describe before debugging with screenshots.

Command Groups

The command set is intentionally shaped around workflow instead of implementation detail.

  • development: preview, electron, install, config
  • automation: test, flow, record, screenshot, screenshots
  • live control: open, list, use, claim, close
  • runtime reads: describe, find, and the get <noun> family (get tree, get a11y, get url, get count, get errors, get requests, …)
  • runtime actions: tap, type, scroll, swipe, key, and the do <action> family, plus shell <action> for simulator chrome
  • instrumentation: debugdebug state <kind> for raw runtime dumps, plus channels/snapshots/diffs/events
  • escape hatches: inspect (full subcommand surface, all old verbs still work as aliases)
  • compatibility: compat

That grouping is what the website docs and terminal help now share from the same package source.

Bridge Model

The bridge host is the control plane behind top-level verbs like describe and tap, plus inspect, debug, open, list, use, claim, and close.

  • default bridge port: 7668
  • default browser shell URL: http://localhost:5173/
  • every connected browser tab or desktop window gets a stable id like tab-6
  • the desktop companion and browser shells both register through the same host
  • the first CLI to send a command to a tab holds a 60s lease on it. other agents are rejected until the lease expires or is taken with sootsim claim --force. the lease refreshes on every command from the owner

This means you can open a session one way and still inspect or debug it later from the CLI. The CLI also remembers the last session you opened or selected, so one common pattern is:

terminal

sootsim open 8081
sootsim describe
sootsim do tap-text "Sign in"

Common Flows

terminal

# load a local port into the current session
sootsim open 8081
# open a second session in its own browser window
sootsim open --new 8085
# see what is connected and target one tab explicitly
sootsim list
sootsim describe --session tab-3
# capture state around a bug
sootsim debug snapshot before
sootsim debug snapshot after
sootsim debug diff before after
# run a single flow
sootsim flow flows/login.yaml --record