The ultimate CLI tool for Expo app development. Scaffolds production-ready apps, generates code, and integrates complex features in seconds.
npm install -g expo-genie-cliAfter installation, verify that the CLI is installed correctly by checking the version. The CLI can be invoked using any of these aliases:
expo-genie- Full command nameeg- Short alias (recommended for daily use)🧞- Genie emoji alias (fun alternative!)
expo-genie --version
# or
eg --version
# or
🧞 --versionAll three commands should output the same version number (e.g., 1.0.1).
eg init [project-name]
# Interactive mode
eg initOptions:
-t, --template <template>- Specify template (default, tabs, blank, blank-typescript, bare-minimum)-p, --package-manager <pm>- Package manager (npm, yarn, pnpm, bun)--skip-install- Skip dependency installation--skip-git- Skip git initialization
Add full-stack features to your project:
eg add [feature]
# Interactive mode
eg add
# Direct usage
eg add auth
eg add payments
eg add camera
eg add mapsOptions:
-y, --yes- Skip prompts and use defaults--force- Force regeneration of existing features
Available Features:
auth- Authentication (Email/Password, Google, Apple, Phone/OTP)payments- Stripe payment integrationai-chat- AI chat interfacecamera- Camera integrationmaps- Maps integrationanalytics- Analytics trackingpush-notifications- Push notifications
Generate boilerplate code (alias: g):
eg generate [type] [name]
# Interactive mode
eg generate
# Direct usage
eg g screen Profile
eg g component Button
eg g hook useAuth
eg g store User
eg g api UserService
eg g model UserOptions:
-d, --directory <dir>- Output directory
Install and configure packages:
eg install [package]
# Interactive mode
eg install
# Direct usage
eg i nativewind
eg i lucide-iconsMigrate UI libraries or state management:
eg migrate [type]
# Interactive mode
eg migrate
# Migrate UI library
eg migrate ui --from paper --to nativewind
# Migrate state management
eg migrate state --from redux --to zustandOptions:
--from <library>- Source library--to <library>- Target library--force- Force migration without confirmation
Check project health and configuration:
eg doctorVerifies:
- package.json existence
- Core dependencies
- TypeScript configuration
- node_modules installation
- Expo configuration (app.json)
- Git initialization
Display project details and installed features:
eg infoClean project cache and build artifacts:
eg clean
eg clean --all # Also removes node_modulesManage global CLI configuration:
eg config set <key> <value>
eg config get <key>
eg config list
eg config resetAvailable project templates:
- default - Expo Router with TypeScript (recommended)
- tabs - Expo Router with tabs navigation
- blank - Minimal JavaScript setup
- blank-typescript - Minimal TypeScript setup
- bare-minimum - With native directories pre-generated
npm run cinpm linkRefresh official templates to latest Expo versions:
npm run update-templatesContributions are welcome. Please feel free to submit a Pull Request.
MIT