Skip to main content
The expo config command displays your project’s resolved Expo configuration, showing how app.json, app.config.js, and environment variables combine into the final configuration used by Expo.

Usage

Arguments

string
Directory of the Expo project. Defaults to the current working directory.

Options

string
Type of configuration to show. Alias: -tOptions:
  • public - Public configuration exposed to JavaScript code
  • prebuild - Configuration used during prebuild
  • introspect - Full configuration with all fields (default)
boolean
Include all project config data, including defaults and computed values.
boolean
Output configuration in JSON format. Useful for scripting and automation.

What It Shows

The expo config command displays:
  • Configuration from app.json or app.config.js
  • Applied config plugins and their modifications
  • Environment-specific values
  • Computed default values
  • Platform-specific settings

Examples

View Full Configuration

Show the complete resolved configuration:
Output example:

JSON Output

Get machine-readable JSON:
Perfect for:
  • CI/CD scripts
  • Parsing with jq or other tools
  • Automation workflows

Public Configuration

Show only configuration exposed to your JavaScript code:
This is the configuration available via:

Prebuild Configuration

Show configuration used during expo prebuild:
Includes native configuration and config plugin results.

Full Details

Show all configuration including defaults:
This displays:
  • Explicit configuration from your config file
  • Default values applied by Expo
  • Computed values based on other settings
  • All plugin modifications

Specific Project Directory

View config for a specific project:

Configuration Types

Introspect (Default)

Shows the complete configuration after:
  • Reading app.json or app.config.js
  • Applying config plugins
  • Merging environment variables
  • Computing dynamic values

Public

Shows only values exposed to JavaScript runtime:
  • Available in expo-constants
  • Embedded in app bundles
  • Accessible at runtime
  • Excludes secrets and build-time values

Prebuild

Shows configuration used when generating native projects:
  • Native identifiers (bundle ID, package name)
  • Config plugin results
  • Platform-specific settings
  • Build-time configuration

Common Use Cases

Debugging Configuration Issues

Check what config is actually being used:
Look for:
  • Unexpected default values
  • Missing configuration
  • Plugin modifications
  • Environment variable substitution

Verifying Environment Variables

Check if environment variables are applied:

CI/CD Validation

Validate configuration in CI:
Parse and validate specific fields:

Comparing Environments

Compare development and production configs:

Checking Plugin Effects

See what config plugins have modified:
Look for fields modified by plugins like:
  • Permissions and entitlements
  • App capabilities
  • Build settings
  • Manifest entries

Configuration Files

app.json

Static JSON configuration:

app.config.js

Dynamic JavaScript configuration:

app.config.ts

TypeScript configuration with type checking:

Environment Variables

Build-Time Variables

Available during configuration:
Check resolved values:

Public Variables

Variables prefixed with EXPO_PUBLIC_ are available at runtime:
Access in code:

Parsing Output

With jq

Extract specific fields:

With grep

Search for specific values:

In Scripts

Use in shell scripts:

Troubleshooting

Config File Not Found

If expo config can’t find your config:
Solutions:
  • Ensure you’re in the project directory
  • Create app.json or app.config.js
  • Specify directory: npx expo config ./path/to/project

Invalid Configuration

If config is malformed:
Check:
  • JSON syntax in app.json
  • JavaScript syntax in app.config.js
  • Required fields (name, slug)
  • Type errors in app.config.ts

Environment Variables Not Applied

If environment variables aren’t showing:
For .env files, they’re loaded automatically when running Expo commands.

Plugin Errors

If config plugins fail:
Check:
  • Plugin is installed: npm install plugin-name
  • Plugin syntax in app.json
  • Plugin compatibility with Expo SDK version

Configuration Schema

The configuration follows a strict schema. To see all available fields:

Best Practices

Version Control

Commit your configuration:

Environment-Specific Configs

Use environment variables for differences:

Validate in CI

Add validation to your CI pipeline:

Document Custom Fields

Add comments to explain custom configuration: