Keep every dev build. Launch any one in one click.
DevHub by Root Native is a desktop app and a CLI for Expo developers. It keeps every development build on your machine, finds the build that matches your current code, and starts a simulator or an emulator with that build in one action.
Status: alpha. The CLI, the local page, and the cache provider ship on npm. The desktop app and the other features below are the plan. Each alpha can change the CLI and its JSON output. The CHANGELOG lists what each version has, and the package README shows how to use the CLI.
npm install --global @rootnative/devhub
devhub --helpTo run one command with no install, use npx @rootnative/devhub <command>.
Expo recommends a development build in place of Expo Go. When you work on many Expo projects, you get these problems:
- Each project needs its own dev client for each platform.
- EAS deletes old builds after a retention period.
- A native build takes minutes, but most of the time the native code did not change, and the old build still works.
- Nothing shows which builds you have, and which one matches your branch.
A dev client needs a rebuild only when the native fingerprint changes. DevHub stores each build with its fingerprint. When your code matches a stored build, DevHub uses that build, and you do not build again.
- Store every dev build and release build, for all your projects, in one local library.
- Save builds automatically from
npx expo run:androidandnpx expo run:ios, through the Expo build cache provider. - Download your EAS builds before EAS deletes them.
- Import an
.apk,.aab, or.appfile. - Match the current code of a project to a stored build by fingerprint.
- Launch a build on a simulator or an emulator in one action: boot, install, and open with Metro, an EAS Update, or nothing.
- Save launch profiles for the device and build combinations you use often.
- Prune old builds by rules that you set.
Android works on macOS, Windows, and Linux. iOS works on macOS.
pnpm install
pnpm run build
pnpm run typecheck
pnpm run test
pnpm run lintDevHub grows in small milestones. Each one gives you one useful result.
- Keep:
devhub syncdownloads your EAS dev client builds before EAS deletes them.devhub listshows them, anddevhub wheregives the path of a file. - Install: install a stored build on a running emulator, simulator, or Android phone.
- Local page:
devhub uiopens a page in your browser with the list, the devices, an install button, and a sync button. - Match: see the stored build that matches your current code.
- Local builds:
npx expo run:*stores each build and uses a stored build again. - Desktop: the same page in a desktop app, with a daily sync.