expo-module Skill for Claude Code: Native Expo Modules
Makes Claude build Expo native modules and views in Swift, Kotlin and TypeScript. An official skill from the Expo team.
- Installs
- 47K
- on skills.sh
- Stars
- 4K
- on GitHub
- Files
- 7
- besides SKILL.md
- Updated
- Nov 2026
- last repo commit
expo-module makes Claude write native Expo modules and views with the Expo Modules API. It prefers scaffolding with create-expo-module and then replacing the sample code, rather than creating files by hand. It covers Swift, Kotlin and TypeScript, native views, shared objects, lifecycle hooks, config plugins and autolinking.
It triggers when you build or change a native module for Expo. It is one of the free, open-source framework skills in the Expo repo. SKILL.md also tells Claude to send feedback to Expo with an npx command when it finds wrong or outdated information.
Good for
- React Native developers adding native camera, sensor or system features to an Expo app
- Library authors wrapping an iOS or Android SDK for Expo
- Developers writing config plugins that edit Info.plist or AndroidManifest.xml
Install expo-module
Claude Code
- 1
Copy this prompt.
Install the expo-module skill in Claude Code. Run this command: claude plugin install expo@claude-plugins-official Then check that it loaded and tell me how to use it.
- 2
Paste it into Claude Code. It shows the change and asks before running it.
The plugin is the README's route for Claude Code and handles updates. It installs 23 Expo skills and its .mcp.json adds the hosted Expo MCP server at mcp.expo.dev; its manifest lists no hooks. Use the skills CLI line if you want only expo-module. Pick one route, not both. Restart Claude Code after installing.
From the project README. Source.
What's in the skill
When it loads
Guide for creating and writing Expo native modules and views using the Expo Modules API (Swift, Kotlin, TypeScript). Covers module definition DSL, native views, shared objects, config plugins, lifecycle hooks, autolinking, and type system. Use when building or modifying native modules for Expo. Not for migrating an existing Swift module from the definition DSL to the Expo Modules API 2.0 macros; use expo-migrate-module (from the expo-experiments plugin) for that.
Sections in SKILL.md
- When to Use
- References
- Quick Start
- Recommended Workflow
- Practical Scaffolding Rules
- Core File Shapes
- Module Structure Reference
- expo-module.config.json
- Submitting Feedback
Key facts
- Repo
- expo/skills
- Installs on skills.sh
- 46,960 (Nov 2, 2026)
- GitHub stars
- 4,005 (Nov 2, 2026)
- License
- MIT
- Last commit
- Nov 1, 2026
- skills.sh checks
- Gen Agent Trust Hub pass, Socket pass, Snyk pass
What it includes
Local module for one app, or standalone module for reuse and publishing
Local modules live in modules/ (or expo.autolinking.nativeModulesDir). Standalone modules have their own package and usually an example app.
Choose the scaffold typeConstant, Function, AsyncFunction, Event, View, ViewEvent, SharedObject
These choose which code samples the scaffold generates. ViewEvent implies View.
Pick featuresScaffolds a new module with the expected layout and config
Run with an explicit slug or path, --platform and --features. A standalone scaffold installs its dependencies, builds TypeScript and may initialise a Git repo.
Runs code ·
npx create-expo-module@latestAdds a platform to an existing module instead of copying native folders
Preferred over manual copying when adding Android, Apple or web support.
Runs code ·
create-expo-module add-platform-supportWrites the real implementation in Swift, Kotlin and TypeScript
Covers the module definition DSL, native views, shared objects and the type system.
Write ·
Replace the sample codeScaffolding, module DSL, native views, lifecycle hooks, config plugins, module config
Six files in references/, loaded as needed.
Read ·
Reference guidesRuns npx @expo/agent-cli feedback to report errors or outdated guidance to Expo
SKILL.md says to send feedback only when specific and actionable, with as much relevant context as possible. After repeated failures it also asks for a short report with category evals.
Runs code ·
Submit feedbackDisplay name and default prompt for Codex
Sets the name Expo Module and a default prompt for scaffolding or reviewing native modules.
agents/openai.yaml
From the official docs
Permissions
Medium risk
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only mode
Watch out for
It can send feedback to Expo
SKILL.md tells Claude to run an npx feedback command with as much relevant context as possible. Check the text before you approve it, and keep private code out of it. github.com
It runs @latest packages through npx
create-expo-module@latest and @expo/agent-cli@latest are fetched and run on demand, and the feedback command uses npx --yes, so npx installs the package without asking. Pin versions if you need repeatable setups. github.com
A standalone scaffold does more than write files
It installs its own dependencies, builds TypeScript and may initialise a Git repo if you are not already in one. Run it in an empty folder. github.com
The plugin route adds a hosted MCP server
The expo plugin includes .mcp.json pointing at https://mcp.expo.dev/mcp. Use the skills CLI route to avoid it. github.com
Security advisories
No published security advisories as of Nov 2, 2026.
Technical details
| Turning on read-only | The skill's job is to scaffold and write module files. |
|---|---|
| Talks to | npm registry downloads through npx. Feedback sent to Expo with npx @expo/agent-cli@latest feedback. Plugin route only: the hosted Expo MCP server at mcp.expo.dev |
| Scopes |
|
Questions
How do I install expo-module?
Use the install box above. The README gives a plugin for Claude Code and Codex, and the skills CLI for other agents. The plugin installs all 23 Expo skills and also adds the Expo MCP server, so use the skills CLI line if you want only this skill.
Is it an official Expo skill?
Yes. The repo README calls it official AI agent skills from the Expo team, and lists expo-module in the free, open-source framework group.
Does it need an API key or an Expo account?
SKILL.md names no key or account. It uses npx, so you need Node.js. The paid EAS skills in the same repo are a separate group.
Does it work in Codex or Cursor?
The README documents a Codex plugin (codex plugin add expo@openai-curated) and says to use the skills CLI for Cursor, OpenCode, GitHub Copilot, Windsurf and other agents. The skill also ships an agents/openai.yaml file for Codex.
Does expo-module work in the Claude app or Claude.ai?
The README does not describe a Claude app install for it. The skills CLI and plugin routes are for coding agents that read skill folders from disk, such as Claude Code.
Is it safe to use?
It runs npx commands that download and run packages, and scaffolding writes files into your project. SKILL.md also tells Claude to send feedback to Expo with an npx command, which can include context from your task. Read each command before approving it, and decline feedback if you do not want details shared.
expo-module vs expo-migrate-module?
Use expo-module to create or edit modules. SKILL.md says to use expo-migrate-module, from the expo-experiments plugin, to migrate an existing Swift module from the definition DSL to the Expo Modules API 2.0 macros.
Information
updated Nov 2, 2026
- Repository
- expo/skills
- Folder
plugins/expo/skills/expo-module
Sources
Docs, issue trackers and discussions this page is built from.
Show all 8Hide
- skills · github.com
- expo/skills README · github.com
- plugin.json · github.com
- .mcp.json · github.com
- commands.md · github.com
- SKILL.md · github.com
- create-expo-module.md · github.com
- agents/openai.yaml · github.com