Argent platform support and limitations
Argent supports Android Emulators and iOS Simulators, not physical devices. Let Argent launch or relaunch the app when possible; if you boot the device yourself, Argent may not see system dialogs or native modals. In Expo Go, Argent can control the app, read the React component tree, and run the React profiler, but native profiling requires a development build. React component tree and profiler rely on the JavaScript debugging connection, so keep the development server running.
Argent is an agentic toolkit for Expo apps
Argent is an agentic toolkit from Software Mansion that gives AI agents direct access to running Expo apps. It allows agents to control, debug, and profile Expo apps on Android Emulators and iOS Simulators. Argent is free to use and connects to editors through the Model Context Protocol (MCP).
Set up Argent with init command
Run `npx @swmansion/argent init` from your Expo project root. The wizard detects your editor, registers the Argent MCP server, and copies skills and agent definitions into your workspace. Then install Argent globally with `npm install -g @swmansion/argent` so the `argent` command is on your PATH and restart your editor.
Argent control capabilities
Argent can control running apps by launching the app, tapping, swiping, typing into fields, opening deep links, and navigating through accessibility trees to run multi-step flows.
Argent manage commands
Argent provides management commands: `argent update` refreshes to the latest version and configuration, `argent flags` lists feature flags and their state, and `argent remove` unregisters the MCP server and removes Argent.
Verify Argent setup with screenshot prompt
To confirm Argent is connected correctly, enter the prompt 'Take a screenshot of the running app and describe what's on screen.' in your agent panel. If the agent returns a screenshot and describes your app's current screen, setup is complete.
Argent debug capabilities
Argent can debug apps by reading console logs, exploring the view hierarchy, inspecting the React component tree, and examining network requests and their payloads at both the JavaScript and native layers.
Argent works with Expo MCP Server and Expo Skills
Argent connects through MCP and works alongside Expo's own agent tooling. Pair it with the Expo MCP Server to give agents live access to Expo documentation and EAS, and with Expo Skills to teach agents known-good Expo patterns.
Argent profile capabilities
Argent can profile apps by recording React and native profiles together, tracing slow React commits to native stack frames, and surfacing UI hangs, render cascades, and memory leaks.
Argent prerequisites
Argent requires Node.js 18 or later. For Android, the Android SDK Platform Tools (adb) must be installed and on PATH with an emulator available. For iOS, macOS with Xcode installed is required.
Argent requires a running app
Argent acts on a running app. Start your Expo app on an Android Emulator or iOS Simulator using `npx expo run:android` or `npx expo run:ios` with a development build, or start the development server and test in Expo Go.
Claude Code installation and setup
Claude Code is Anthropic's terminal-based AI coding agent. Install Claude Code globally with: `curl -fsSL https://claude.ai/install.sh | bash`. Start it from any project with `claude` command.
Expo Skills installation for Claude Code
Install Expo Skills and connect the Expo MCP Server so Claude Code knows Expo conventions and can reach EAS. Expo Skills teach agents known-good Expo patterns.
.claude/settings.json enables official Expo plugin
.claude/settings.json enables the official Expo plugin (expo@claude-plugins-official) from the Claude Code plugin marketplace. This file is committed to the project.
Verify Claude Code setup with example prompt
To verify Claude Code can read an Expo project, paste this prompt in the Claude Code session: 'Open package.json and tell me which Expo SDK version this project targets.' If the agent replies with the SDK version from package.json, it is reading the project correctly.
Claude Code Expo capabilities
Claude Code can understand the entire codebase, propose edits, run terminal commands, manage git operations, check EAS and Expo CLI logs, fetch documentation from the Expo Model Context Protocol (MCP) Server, use Expo Skills for best practices, and manage EAS deployment workflow.
Example prompts for Claude Code with Expo projects
Example tasks and prompts: Upgrade SDK - 'Upgrade this project to the latest Expo SDK and fix any breaking changes.' Add navigation - 'Add a tab navigator with Expo Router and a new settings screen.' Automate builds - 'Create an EAS Workflow that builds the app on every pull request.' Debug build - 'My latest iOS build failed. Read the EAS Build logs and tell me what went wrong.' Add notifications - 'Configure expo-notifications and show a local notification when the app launches.' Set up CI/CD - 'Create a CI/CD workflow that builds on every PR.' Add native UI - 'Add a SwiftUI picker component to my Expo app.' Check feedback - 'Show TestFlight feedback for my app.' Verify UI - 'Take a screenshot and verify the blue circle view.'
Fix 'expo plugin not installed' error in Claude Code
If you see the error "Plugin 'expo' is enabled in project settings but isn't installed here", install the official Expo plugin by running: `claude plugin install expo@claude-plugins-official`. Add `--scope project` to install only for the current project. Restart the Claude Code session after installation.
CLAUDE.md and AGENTS.md structure for Claude Code
CLAUDE.md contains a single line: `@AGENTS.md`. This line imports AGENTS.md into Claude Code's context. AGENTS.md points Claude Code to documentation for the project's Expo SDK version. Add project-level instructions to AGENTS.md, not CLAUDE.md, so they stay in one place. Both files are committed to the project.
Create Expo app for Claude Code with SDK 57
Create a new Expo project with Claude Code support using one of these commands: `npx create-expo-app@latest --template default@sdk-57` (npm), `yarn create expo-app --template default@sdk-57` (yarn), `pnpm create expo-app --template default@sdk-57` (pnpm), or `bun create expo --template default@sdk-57` (bun). The app is scaffolded with CLAUDE.md and .claude/settings.json files.
Expo Skills and Expo MCP Server required for Codex setup
To give Codex full capabilities, install Expo Skills (a plugin that teaches agents known-good Expo patterns) and connect the Expo MCP Server (to give agents live access to Expo documentation and EAS).
AGENTS.md is committed to project
The AGENTS.md file is committed to your project, so a developer's Codex session starts from the same context.
Verify Codex setup with example prompt
To confirm Codex can read your project, paste this prompt: 'Open package.json and tell me which Expo SDK version this project targets.' If the agent replies with the SDK version from package.json, the agent is reading your project correctly.
Run Codex in project
Run Codex from the project root directory with: cd my-app && codex
Codex capabilities with Expo
Codex can check EAS and Expo CLI logs, fetch documentation from the Expo Model Context Protocol (MCP) Server, use Expo Skills for best practices, and manage your EAS deployment workflow.
Expo projects scaffold with AGENTS.md for Codex
Expo projects created with create-expo-app are scaffolded with an AGENTS.md file that Codex reads directly. This file points Codex to the documentation for the project's Expo SDK version and holds any project-level instructions.
Install Codex from command line
Install Codex with the command: curl -fsSL https://chatgpt.com/codex/install.sh | sh
Codex is OpenAI's terminal-based AI coding agent
Codex is OpenAI's terminal-based AI coding agent that can read and write files across your project, run terminal commands, and browse the web.
Codex example prompts for Expo tasks
Codex can handle tasks described in plain language such as: upgrade the SDK, add navigation with Expo Router, automate builds with EAS Workflow, debug builds, add notifications, set up CI/CD, add native UI components, check TestFlight feedback, and verify the UI with screenshots.
Setup steps for Cursor with Expo
To set up Cursor with Expo: (1) Download and install Cursor from https://cursor.com; (2) Create a new Expo project or ensure existing project has latest expo package; (3) Install Expo Skills and connect the Expo MCP Server so Cursor knows Expo conventions and can reach EAS; (4) Open project in Cursor and start prompting via Agent panel; (5) Verify setup by entering a prompt like 'Open package.json and tell me which Expo SDK version this project targets.' If the agent replies with the SDK version from package.json, setup is correct.
Create new Expo project with SDK version for Cursor
Create a new Expo project with the following commands: npm: npx create-expo-app@latest --template default@sdk-57; yarn: yarn create expo-app --template default@sdk-57; pnpm: pnpm create expo-app --template default@sdk-57; bun: bun create expo --template default@sdk-57. Alternatively, ensure an existing project has the latest expo package installed.
Cursor capabilities with Expo projects
Cursor can check EAS and Expo CLI logs, fetch documentation from the Expo Model Context Protocol (MCP) Server, use Expo Skills for best practices, and manage EAS deployment workflow.
Cursor rules configuration location
Cursor-specific rules can be added under the .cursor/rules/ directory in a project.
AGENTS.md file scaffolded in create-expo-app projects
Expo projects created with create-expo-app are scaffolded with an AGENTS.md file at the project root that Cursor reads directly. Nested AGENTS.md files in subdirectories are also read. AGENTS.md points Cursor to the documentation for the project's Expo SDK version and holds project-level instructions. AGENTS.md is committed to the project so a developer's session starts from the same context inside Cursor.
Cursor is an AI-first code editor built on VS Code
Cursor is an AI-first code editor built on VS Code. It can edit across multiple files, run terminal commands, and work autonomously with its agent.
Example prompts for Cursor with Expo tasks
Cursor can perform the following Expo tasks using plain language prompts: (1) Upgrade SDK: 'Upgrade this project to the latest Expo SDK and fix any breaking changes.'; (2) Add navigation: 'Add a tab navigator with Expo Router and a new settings screen.'; (3) Automate builds: 'Create an EAS Workflow that builds the app on every pull request.'; (4) Debug a build: 'My latest iOS build failed. Read the EAS Build logs and tell me what went wrong.'; (5) Add notifications: 'Configure expo-notifications and show a local notification when the app launches.'; (6) Set up CI/CD: 'Create a CI/CD workflow that builds on every PR.'; (7) Add native UI: 'Add a SwiftUI picker component to my Expo app.'; (8) Check feedback: 'Show TestFlight feedback for my app.'; (9) Verify UI: 'Take a screenshot and verify the blue circle view.'
AI agents supported by Expo
Claude Code, Codex, Cursor, and other AI coding agents can help build, upgrade, debug, and deploy Expo and React Native projects. Projects created with create-expo-app are automatically set up with configuration files required by AI agents.
Agent toolkits for Expo
To let an AI agent act on an Expo project while it runs, pair it with a third-party toolkit. Available toolkits include agent-device (an open-source CLI from Callstack for inspecting, controlling, debugging, profiling, and testing apps across simulators, emulators, and physical devices) and Argent (an agentic toolkit from Software Mansion that connects over MCP to control, debug, and profile apps on Android Emulator or iOS Simulator).
Verify agent setup in Expo project
To confirm an agent can read your project, open a session for your AI agent within your Expo project and run the prompt: 'Open package.json and tell me which Expo SDK version this project targets.' If the agent replies with the SDK version from package.json, the agent is reading your project correctly.
.claude/settings.json project context file
.claude/settings.json is a project context file read by Claude Code on startup. It pre-enables the official Expo plugin from the Claude Code plugin marketplace.
CLAUDE.md project context file
CLAUDE.md is a project context file read by Claude Code on startup. It contains @AGENTS.md, which imports AGENTS.md into Claude Code's context.
AGENTS.md project context file
AGENTS.md is a project context file read by Codex and Cursor directly, and by Claude Code through CLAUDE.md. Its purpose is to point the agent to the Expo documentation matching the project's SDK version. It serves as the source of truth for project-level instructions.
Project context files created by create-expo-app
When creating a new Expo project with create-expo-app, the CLI writes three configuration files at the project root: AGENTS.md, CLAUDE.md, and .claude/settings.json. These files are committed to the project so all team members start from the same SDK version and project instructions, and their agents read the same context.
Expo MCP Server capabilities
The Expo MCP Server is a remote Model Context Protocol server that gives agents live access to the latest Expo documentation, EAS Build history, EAS Update channels, and TestFlight metadata. The agent can install SDK-matching packages, read build logs, and take simulator screenshots through it.
Expo Skills plugin purpose
Expo Skills is a plugin that adds Expo-specific instructions and slash commands to an AI agent. It applies known-good Expo patterns for SDK upgrades, EAS Workflows, native UI with Jetpack Compose and SwiftUI, and API routes instead of relying on training data. Skills install once per machine.
Three components of Expo agent support
Expo supports AI agents through three components: Expo Skills (a plugin adding Expo-specific instructions and slash commands), Expo MCP Server (a remote Model Context Protocol server providing live access to documentation and EAS data), and project context files (AGENTS.md, CLAUDE.md, and .claude/settings.json written by create-expo-app).
Expo CLI ngrok tunnel support
Expo CLI includes built-in support for serving your app over an ngrok tunnel.
Expo CLI automatic port detection
Expo CLI automatically detects ports when running npx expo run:[android|ios] and npx expo start. If another app is running on the default port, a different port is used.
Expo CLI automatic pod install
Expo CLI automatically executes pod install when using npx expo run:ios.
Expo CLI monorepo support
Expo CLI provides out of the box support for monorepos.
Expo CLI TypeScript support
Expo CLI provides first-class TypeScript support, including built-in support for tsconfig.json aliases with paths and baseUrl in Metro.
Expo CLI web support with Metro
Expo CLI supports web development with Metro, fully typed for React Native Web, with modern CSS support including Tailwind, PostCSS, CSS Modules, SASS, and more. Static site generation is available with Expo Router and Metro web.
Expo CLI debugger with Hermes
Expo CLI provides instant access to the Hermes debugger via the J keystroke. The debugger ships with React Native DevTools built-in.
Expo CLI Continuous Native Generation support
Expo CLI supports Continuous Native Generation (CNG) with expo prebuild for upgrades, white-labeling, easy third-party package setup, and better maintainability of the codebase by reducing surface area.
Expo CLI required for EAS Update, Expo Router, expo-dev-client
Expo CLI is required for many tools such as EAS Update, Expo Router, and expo-dev-client. It is strongly recommended to use Expo CLI when using other Expo tools, as other features may not work as well without it.
Run Android and iOS apps with Expo CLI
After installing the expo package, use npx expo run:android for Android and npx expo run:ios for iOS as alternatives to npx react-native run-android and npx react-native run-ios. Use the --device flag to choose a device or simulator. The --no-bundler flag allows independent bundler startup with npx expo start.
Expo CLI environment variables and .env support
Expo CLI includes built-in environment variable support and .env file integration.
Expo CLI device launch shortcuts
Expo CLI supports device launch selection shortcuts using Shift+A for Android or Shift+I for iOS from the interactive prompt.
Expo CLI file-based routing with expo-router
Expo CLI supports file-based routing with expo-router, including async bundling in development.
Expo CLI limitations for out-of-tree platforms
Expo CLI does not yet have built-in support for popular out-of-tree platforms such as Windows and macOS. If building for these platforms, you can use Expo CLI for supported platforms and @react-native-community/cli for the others.