À propos du projet

Stim est un outil en ligne de commande permettant d'exécuter des projets React Native et Expo dans des environnements locaux rapides et isolés, destiné aux agents de codage qui doivent construire et lancer des applications sans interférer les uns avec les autres. Chaque projet ou worktree git reçoit son propre port Metro ainsi que son propre simulateur ou émulateur dédié, tandis que les artefacts natifs, les données de compilation Xcode, la sortie Gradle et les transformations Metro sont partagés entre les worktrees. Cela permet à plusieurs agents de travailler en parallèle sans partager de ressources actives, et Stim peut ensuite nettoyer toutes les ressources qu'il a créées. Il prend en charge à la fois les projets React Native Community CLI et Expo. Les builds s'exécutent localement par défaut, et une option --eas-profile utilise plutôt des builds de développement EAS déjà terminés. Les applications peuvent être lancées sur des simulateurs et émulateurs dédiés, des appareils physiques connectés ou des appareils distants configurés. L'installation se fait via le paquet npm stim, qui fournit la commande stim. Il nécessite Node 22.12 ou une version ultérieure et fonctionne sur macOS, Linux et Windows : Android partout, iOS localement sur macOS ou via EAS depuis n'importe quel hôte. Le README indique qu'un paquet global stim-cli précédemment installé doit d'abord être désinstallé. Il peut également être exécuté sans installation globale via npx. La boucle typique est stim doctor, stim start, stim ios ou stim android, stim logs --errors, puis stim stop. Aucune initialisation de projet n'est requise, et l'état d'exécution est stocké sous ~/.stim par défaut. La documentation est disponible sur le site du projet et via des guides intégrés tels que stim guide agent, stim guide lifecycle et stim guide settings. Le dépôt est organisé en monorepo. Le paquet stim fournit la CLI. @stim-cli/metro partage les transformations Metro et enregistre les journaux. @stim-cli/expo-build-cache permet aux builds Expo directs de partager les artefacts natifs avec Stim. @stim-cli/cache contient le contrat du fournisseur de cache et la coordination des niveaux local-first derrière les deux caches. @stim-cli/core contient les contrats de cache internes partagés. @stim-cli/server sert le statut de Stim à des clients appariés en lecture seule, comme une application mobile, via Tailscale. Le développement utilise pnpm avec des scripts build, test, typecheck et lint. Le projet est sous licence MIT et est maintenu par App&Flow, un studio d'ingénierie et de conseil React Native basé à Montréal.