Detect Expo CI failures before they happen.
A free CLI utility that analyzes Expo and React Native projects to prevent EAS and CI build failures. Catch configuration drift and native module errors locally.
See it in action
$ eas build --platform ios
Waiting for build to complete...
❌ Build failed
Error: Phase Script Execution failed with a nonzero exit code.
Check your build logs on Expo dev dash for more details.
error Command failed with exit code 1.
$ npx expo-ci-doctor check
FAIL: Native Module Version Mismatch
File: package.json
Cause: `react-native-reanimated` v3.6.0 requires `react-native` v0.73.0+, but found v0.72.6.
Fix: Update `react-native` to ^0.73.0 or downgrade `react-native-reanimated`.
Risk Score: 98/100 (Critical)
Installation
Get started in seconds. No login required.
INSTALL GLOBALLY:
RUN CHECK:
OR RUN WITH NPX:
About the Project
Expo CI Doctor was built to solve a specific, painful problem in the React Native ecosystem: wasted CI runs.
Every day, developers push code, trigger GitHub Actions or an EAS Build, and wait 20 minutes only to watch it fail due to a configuration mismatch, a mismatched native dependency, or a poorly handled environment variable. These issues are often predictable and catchable locally.
Our goal is to provide a fast, deterministic CLI tool that analyzes your project's state before it ever leaves your machine, ensuring that when your build starts, it finishes successfully.
Wasted Build Minutes
EAS builds take 10-25 minutes. A failed build means you wait again after fixing. That's 30+ minutes wasted on something catchable.
Hidden Config Issues
Mismatched SDK versions, wrong native module configs, missing env vars — these only surface during the build.
"Works Locally"
The classic. It builds fine on your machine but fails in CI because of subtle environment differences.
Everything you need to ship with confidence
Deep analysis, smart prediction, and actionable diagnostics.
Dependency Compatibility Checks
Cross-references package.json versions against a known database of breaking React Native/Expo incompatibilities.
CI Failure Diagnostics
Detects 50+ common failure patterns with high confidence scoring before they ever break your build.
Upgrade Safety Checks
Finds mismatches between your Expo SDK version and installed local dependencies.
Expo SDK Validation
Statically parses app.json and eas.json to catch malformed structures and missing environments.
Build Readiness Score
A weighted verdict that combines all checks into a clear PASS / WARN / FAIL with actionable fix suggestions.
Noise Filtering for CI Logs
Isolates the actual cause of a failure from the thousands of lines of output generated by Xcode or Gradle.
Add to your GitHub Actions CI pipeline in 2 minutes
Drop a single step into your GitHub Actions or Bitrise workflow. Fail fast before wasting cloud builder minutes on EAS.
- Runs before EAS Build
- Machine-readable exit codes
- JSON output for custom integrations
- Caches results for speed
name: EAS Build
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- name: Install dependencies
run: npm ci
# Run expo-ci-doctor before building
- name: Pre-build diagnostics
run: npx expo-ci-doctor check
- name: Build with EAS
run: npx eas-cli build --platform allStop guessing. Start shipping.
Completely free and open source. No tracking, no cloud telemetry.