About this project

Stim is a command-line tool for running React Native and Expo projects in fast, isolated local environments, aimed at coding agents that need to build and run apps without stepping on each other. Each project or git worktree gets its own Metro port and its own owned simulator or emulator, while native artifacts, Xcode compilation data, Gradle output and Metro transforms are shared across worktrees. This lets multiple agents work in parallel without sharing live resources, and Stim can then clean up every resource it created. It supports both React Native Community CLI and Expo projects. Builds run locally by default, and an --eas-profile option uses completed EAS development builds instead. Apps can launch on owned simulators and emulators, connected physical devices, or configured remote devices. Installation is through the stim npm package, which provides the stim command. It requires Node 22.12 or later and runs on macOS, Linux and Windows: Android everywhere, iOS locally on macOS or through EAS from any host. The README notes that a previously installed global stim-cli package should be uninstalled first. It can also be run without a global install via npx. The typical loop is stim doctor, stim start, stim ios or stim android, stim logs --errors, and stim stop. No project initialization is required, and runtime state lives under ~/.stim by default. Documentation is available on the project site and through built-in guides such as stim guide agent, stim guide lifecycle and stim guide settings. The repository is organized as a monorepo. The stim package provides the CLI. @stim-cli/metro shares Metro transforms and records logs. @stim-cli/expo-build-cache lets direct Expo builds share native artifacts with Stim. @stim-cli/cache holds the cache provider contract and local-first tier coordination behind both caches. @stim-cli/core contains shared internal cache contracts. @stim-cli/server serves Stim status to paired read-only clients, such as a phone app, over Tailscale. Development uses pnpm with build, test, typecheck and lint scripts. The project is MIT licensed and is maintained by App&Flow, a Montreal-based React Native engineering and consulting studio.