Dev & Engineering

Expo Native Module Builder

A practical guide to creating Expo native modules and views with Swift, Kotlin, and TypeScript.

51/ 100
Use with care

Useful, but reliability, evidence or controls still have material gaps.

See how it was scored ↓
Works as-is in
Codex · Claude Code
Stars
★ 2.9k
Last updated
21d ago
License
MIT
expo-modules-apinative-modulesswiftkotlin
+3typescriptconfig-pluginsautolinking

What does this skill do, and when should you use it?

Expo Native Module Builder is an open-source Agent Skill from the expo/skills repository focused on native module and native view development for Expo projects. It covers the Expo Modules API, module definition DSL, shared objects, config plugins, lifecycle hooks, autolinking, and the type system. It is suited to creating modules, wrapping platform SDKs, and adding platform support. It is not intended for migrating an existing Swift module from the definition DSL to Expo Modules API 2.0 macros.

It guides an agent through choosing a local or standalone module, scaffolding with create-expo-module, and selecting feature samples such as Constant, Function, AsyncFunction, Event, View, ViewEvent, and SharedObject. It provides patterns for Swift, Kotlin, and TypeScript implementations, expo-module.config.json configuration, config plugins, lifecycle hooks, autolinking, and additional platform support.

Good fit
  • An Expo developer needs to add native camera, sensor, or system-API functionality to an app.
  • A team needs to wrap a platform SDK and expose it to React Native through Swift and Kotlin.
  • A module author needs native views with props, events, lifecycle behavior, or ref-based functions.
  • A developer needs a config plugin that changes Info.plist or AndroidManifest.xml.
  • A maintainer needs to add Android, Apple, or web support to an existing Expo module.

How do you install this skill?

Before you use it
  • This assessment is source-only; scaffolding, compilation, prebuild, and native runtime behavior were not executed.
  • The config-plugin apiKey example may place credentials in distributable native configuration; confirm secure storage and exposure scope before using real secrets.
  • npx create-expo-module@latest relies on external network access and a moving version; pin versions and review dependency provenance where possible.
  • Chinese-language support and mainland-China network reachability are not specified; those environments may require mirrors, proxies, or offline procedures.
Before you start
Your agent needs
  • Shell / CLI
  • Local filesystem
Install first
  • create-expo-module
  • Expo Modules API
  • Swift
  • Kotlin
  • TypeScript

This repository is a collection of 23 skills. Install the Expo skill collection with the Skills CLI: npx skills@latest add expo/skills --skill '*'. Alternatively, install the collection in Claude Code with claude plugin install expo@claude-plugins-official, or in Codex with codex plugin add expo@openai-curated. The source does not provide a separate command for installing only expo-module.

Generic route: install into Claude Code manually (macOS / Linux)
tmp="$(mktemp -d)"
git clone --depth 1 https://github.com/expo/skills.git "$tmp"
mkdir -p ~/.claude/skills
cp -R "$tmp/plugins/expo/skills/expo-module" ~/.claude/skills/
rm -rf "$tmp"

Generated from the source repository and skill path; it copies only this skill's folder. If the author's install steps above differ, follow those first. To scope it to one project, replace ~/.claude/skills with that project's .claude/skills.

How do you use this skill?

Try saying

Once installed, send your agent any of these to trigger it:

  • Create an Expo native module for my app with Swift, Kotlin, and TypeScript interfaces, including a native view.

After installation, ask the agent for a concrete native-module task, such as: “Create an Expo native module for my app with Swift, Kotlin, and TypeScript interfaces, including a native view.” Before scaffolding or extending a module, consult references/create-expo-module.md. For a new platform, request create-expo-module add-platform-support instead of manually copying native directories.

What are this skill's strengths and limitations?

Pros
  • Covers the main workflow from module scaffolding through configuration, autolinking, and config plugins.
  • Provides guidance for Swift, Kotlin, and TypeScript.
  • Distinguishes local modules from reusable standalone modules.
  • Clearly identifies the separate migration workflow for Expo Modules API 2.0 macros.
Limitations
  • It is instructional guidance, not a native-module runtime or live documentation service.
  • The supplied source does not include the full contents of the referenced files, so their depth and edge-case coverage cannot be assessed.
  • The supplied Skill does not establish which Expo SDK versions or platform combinations have been tested.

How does this skill compare with similar options?

Side by side with related skills; every score comes from the same FSRS standard.

Skill FS score Stars Last updated License
Expo Native Module Builder this page 51 · Use with care ★ 2.9k 21d ago MIT
Expo Native Module Migration Assistant 60 · Recommended ★ 2.9k 21d ago MIT
Vibeyard: Add npm Dependency Skill 55 · Use with care ★ 1.4k 1mo ago MIT
Expo Integration Examples 51 · Use with care ★ 2.9k 21d ago MIT
Expo App Structure Guide 57 · Use with care ★ 2.9k 21d ago MIT

For migrating an existing Swift module from the definition DSL to Expo Modules API 2.0 macros, use expo-migrate-module instead.

How did FollowSkills review this skill?

FollowSkills review · FSRS-2.0
Use with care
51/ 100 5-point scale 2.6 / 5
The upstream repository has new commits since this review. The score still applies to the reviewed revision shown and may not cover the latest changes.
1Trust14 / 25 · 2.8/5

The skill defines module types, platforms, and configuration scope, and provides MIT licensing plus some data-flow examples. However, it does not systematically address least privilege, user confirmation, rollback, or external side effects. Its config-plugin example writes an apiKey into Info.plist/AndroidManifest without warning about sensitive-data exposure; npx downloads and telemetry are also not adequately disclosed within the skill, so points are deducted.

2Reliability8 / 20 · 2.0/5

The DSL, scaffolding, autolinking, and lifecycle guidance is generally coherent and includes several non-interactive and edge-behavior notes. Still, this is a static review with no key-path test suite, CI execution evidence, or consistent diagnostic failure workflow; some CLI/API behavior may also change across versions, keeping the score below the higher range.

3Adaptability11 / 15 · 3.7/5

The audience, use cases, and migration exclusion are clear, with coverage for Swift, Kotlin, TypeScript, iOS, Android, and web. Trigger boundaries remain incomplete, Chinese-language support is not addressed, and core scaffolding depends on npx/npm and Expo tooling whose reachability from mainland-China networks is uncertain, so points are deducted.

4Convention9 / 15 · 3.0/5

The skill has a clear main document, topical reference files, quick start, workflow, and usable examples; version and MIT license are explicit. It lacks a skill-level changelog, named maintenance owner, change history, or a clear update-responsibility path, while limitations and troubleshooting coverage remain limited, so it does not receive full marks.

5Effectiveness6 / 15 · 2.0/5

The material can directly guide common Expo native-module, native-view, config-plugin, and autolinking tasks, and its examples are actionable. However, there is no statically verifiable representative output, test result, or comparative-benefit evidence; users must still adapt and validate the implementation, so the score is conservatively reduced within the static-review ceiling.

6Verifiability3 / 10 · 1.5/5

The submission includes organized reference files, command examples, code samples, and a source-of-truth statement pointing to Expo documentation and tooling. It lacks reproducible tests, third-party execution evidence, and cross-source corroboration; the supplied CI only checks skill limits and plugin versions, not this skill’s key paths, so evidence is limited.

1 2 3 4 5 6

Open a dimension to read why it scored that way

Reviewed Jul 20, 2026 Reviewed revision 8bd359f8a44d Review evidence[1][2][3][4][5][6][7][8][9][10][11][12][13]

Evidence confidence:Low — Mostly static review, author material or a limited demo; useful for discovery, not high-risk decisions.

See the full review method →

FAQ

Is it suitable for publishable standalone modules?
Yes. It distinguishes standalone modules from app-local modules and recommends standalone modules for reuse, monorepos, or publishing.
Does it build or publish native modules automatically?
The source describes guidance for scaffolding, implementation, configuration, lifecycle hooks, and autolinking, but does not state that it automatically builds or publishes modules.
Does it cover migration to the Expo Modules API 2.0 macros?
No. That task is explicitly assigned to expo-migrate-module.

More skills from this repository

All from expo/skills

Dev & Engineering

Expo Native Module Migration Assistant

Move an existing Expo Swift module from the 1.0 DSL to the 2.0 macro API without changing its JavaScript contract.

★ 2.9k FS 60 Recommended 21d ago
Dev & Engineering

Expo Integration Examples

Adapt Expo’s official patterns for third-party integrations.

★ 2.9k FS 51 Use with care 21d ago
Dev & Engineering

Expo App Structure Guide

A clear, scalable starting layout for a brand-new Expo Router app.

★ 2.9k FS 57 Use with care 21d ago
Dev & Engineering

Expo Data Fetching

Practical networking guidance for Expo apps, covering API calls, caching, offline behavior, and authentication.

★ 2.9k FS 55 Use with care 21d ago
Dev & Engineering

Expo Native UI Builder

Build native-feeling, cross-platform interfaces with @expo/ui.

★ 2.9k FS 59 Recommended 21d ago
Dev & Engineering

Expo Brownfield Integrator

Guides teams in incrementally embedding Expo and React Native into existing native iOS or Android applications.

★ 2.9k FS 58 Recommended 21d ago
Automation & Ops

EAS Observe Performance Guide

Helps Expo teams instrument, query, and interpret production startup, navigation, and custom-event performance metrics.

★ 2.9k FS 55 Use with care 21d ago
Dev & Engineering

Expo Skill Feedback

Collects feedback about Expo skills or Expo itself and manages anonymous usage telemetry.

★ 2.9k FS 54 Use with care 21d ago
Dev & Engineering

Expo Router Navigation Guide

Design file-based routes and native navigation for Expo apps.

★ 2.9k FS 53 Use with care 21d ago
Dev & Engineering

Expo Web-to-Native Migration

Turn an existing React website into a shippable Expo app, screen by screen.

★ 2.9k FS 52 Use with care 21d ago
Design & Frontend

Expo Native UI Guide

Helps Expo developers build responsive screens with Apple-informed styling and a native-feeling experience.

★ 2.9k FS 51 Use with care 21d ago
Dev & Engineering

Expo SDK Upgrade Assistant

Guides Expo SDK upgrades, dependency fixes, and compatibility cleanup.

★ 2.9k FS 50 Use with care 21d ago
Dev & Engineering

Expo DOM Components

Reuse web code and browser-only libraries inside Expo native apps with incremental migration support.

★ 2.9k FS 49 Use with care 21d ago
Dev & Engineering

Expo EAS Hosting Deployments

Deploy Expo websites and API routes while configuring secrets, domains, and the edge runtime.

★ 2.9k FS 48 Use with care 21d ago
Dev & Engineering

Expo Skill Eval

End-to-end testing for Expo skill triggering, code quality, and runtime rendering.

★ 2.9k FS 48 Use with care 21d ago
Dev & Engineering

Expo Tailwind Styling Setup

Configure Tailwind CSS v4, NativeWind v5, and cross-platform styling for Expo apps.

★ 2.9k FS 43 Not recommended 21d ago
Dev & Engineering

EAS Cloud Simulator

Run, control, and capture Expo apps remotely when a local iOS simulator or Android emulator is unavailable.

★ 2.9k FS 60 Recommended 21d ago
Automation & Ops

EAS Update Health Insights

Use the CLI to measure EAS Update health, adoption, crashes, and rollout readiness.

★ 2.9k FS 55 Use with care 21d ago
Dev & Engineering

Expo App Clip Builder

Configure an iOS App Clip for an Expo app and launch it from web URLs.

★ 2.9k FS 55 Use with care 21d ago
Dev & Engineering

Expo Development Client Builder

Build and distribute Expo development clients for native-code testing.

★ 2.9k FS 54 Use with care 21d ago

Related skills