PlugWiki

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. 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. 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

  1. When to Use
  2. References
  3. Quick Start
  4. Recommended Workflow
  5. Practical Scaffolding Rules
  6. Core File Shapes
  7. Module Structure Reference
  8. expo-module.config.json
  9. Submitting Feedback

Key facts

Installs on skills.sh
46,960 (Nov 2, 2026)
License
MIT
Last commit
Nov 1, 2026

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 type

  • Constant, Function, AsyncFunction, Event, View, ViewEvent, SharedObject

    These choose which code samples the scaffold generates. ViewEvent implies View.

    Pick features

  • Scaffolds 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@latest

  • Adds 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-support

  • Writes 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 code

  • Scaffolding, module DSL, native views, lifecycle hooks, config plugins, module config

    Six files in references/, loaded as needed.

    Read · Reference guides

  • Runs 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 feedback

  • Display 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-onlyThe skill's job is to scaffold and write module files.
Talks tonpm 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
  • Runs npx create-expo-module@latest in your project

  • Writes Swift, Kotlin, TypeScript and config files

  • Standalone scaffolds install dependencies, build TypeScript and may initialise a Git repo

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

expo/skillsskills.sh

Sources

Docs, issue trackers and discussions this page is built from.

Show all 8
  1. skills · github.com
  2. expo/skills README · github.com
  3. plugin.json · github.com
  4. .mcp.json · github.com
  5. commands.md · github.com
  6. SKILL.md · github.com
  7. create-expo-module.md · github.com
  8. agents/openai.yaml · github.com

Updated Nov 2, 2026.