Sobre o projeto

Stim é uma ferramenta de linha de comando para executar projetos React Native e Expo em ambientes locais rápidos e isolados, voltada para agentes de codificação que precisam compilar e executar aplicativos sem interferir uns nos outros. Cada projeto ou git worktree recebe sua própria porta Metro e seu próprio simulador ou emulador dedicado, enquanto artefatos nativos, dados de compilação do Xcode, saída do Gradle e transformações do Metro são compartilhados entre worktrees. Isso permite que vários agentes trabalhem em paralelo sem compartilhar recursos ativos, e o Stim pode então limpar todos os recursos que criou. Ele suporta projetos React Native Community CLI e Expo. Os builds são executados localmente por padrão, e uma opção --eas-profile usa builds de desenvolvimento EAS já concluídos. Os aplicativos podem ser iniciados em simuladores e emuladores dedicados, dispositivos físicos conectados ou dispositivos remotos configurados. A instalação é feita pelo pacote npm stim, que fornece o comando stim. Ele requer Node 22.12 ou posterior e roda em macOS, Linux e Windows: Android em qualquer lugar, iOS localmente no macOS ou via EAS a partir de qualquer host. O README observa que um pacote global stim-cli instalado anteriormente deve ser desinstalado primeiro. Também pode ser executado sem instalação global via npx. O fluxo típico é stim doctor, stim start, stim ios ou stim android, stim logs --errors e stim stop. Nenhuma inicialização de projeto é necessária, e o estado de execução fica em ~/.stim por padrão. A documentação está disponível no site do projeto e por meio de guias integrados como stim guide agent, stim guide lifecycle e stim guide settings. O repositório é organizado como um monorepo. O pacote stim fornece a CLI. @stim-cli/metro compartilha transformações do Metro e registra logs. @stim-cli/expo-build-cache permite que builds diretos do Expo compartilhem artefatos nativos com o Stim. @stim-cli/cache contém o contrato do provedor de cache e a coordenação de camadas local-first por trás de ambos os caches. @stim-cli/core contém contratos de cache internos compartilhados. @stim-cli/server serve o status do Stim para clientes pareados somente leitura, como um aplicativo de telefone, via Tailscale. O desenvolvimento usa pnpm com scripts de build, test, typecheck e lint. O projeto é licenciado sob MIT e é mantido pela App&Flow, um estúdio de engenharia e consultoria React Native sediado em Montreal.