PlugWiki

Expo App Clip: a skill that walks Claude through adding an iOS App Clip to an Expo app

Expo's skill makes Claude add an iOS App Clip to an Expo app, from the target and domain setup through the AASA file to a TestFlight build.

Installs
21.2K
on skills.sh
Stars
4K
on GitHub
Files
2
besides SKILL.md
Updated
Nov 2026
last repo commit

The skill gives Claude a 10-step recipe. It sets the bundle identifier and Apple team ID, adds a clip target with bun create target clip, wires associated domains, registers the app with Apple, writes and hosts the AASA file, adds a Smart App Banner tag, deploys the site, mirrors the app's permissions, builds to TestFlight and fills in App Clip metadata.

It triggers when you mention App Clip, AASA, apple-app-site-association, appclips or a smart app banner. An optional last step covers a local Expo module that lets your JavaScript detect it is running inside a Clip and show an install prompt.

You need an Apple Developer Program membership and App Store review to ship a Clip, and the AASA file must be served over HTTPS on your domain. Several steps log in to Apple and push to App Store Connect, so read the permissions section below.

Good for

  • Expo developers who want a lightweight iOS Clip opened from a URL
  • Teams that must host an apple-app-site-association file and Smart App Banner
  • Anyone who has hit the associated domains warning during expo prebuild

Install expo-app-clip

Claude Code

  1. 1

    Copy this prompt.

    Install the expo-app-clip skill in Claude Code. Run this command:
    
    npx skills add https://github.com/expo/skills --skill expo-app-clip
    
    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.

Requires Node.js.

From its listing on skills.sh. Source.

What's in the skill

When it loads

Add an iOS App Clip target to an Expo app. Use when the user mentions App Clip, AASA, apple-app-site-association, appclips, smart app banner, or wants to ship a lightweight iOS Clip invoked from a URL alongside their parent app.

Sections in SKILL.md

  1. 1. Set bundleIdentifier and appleTeamId
  2. 2. Add the App Clip target
  3. 3. Wire up associated domains
  4. 4. Register bundle IDs and create the App Store entry
  5. 5. Host the AASA file
  6. 6. Add the Smart App Banner meta tag
  7. 7. Deploy the website
  8. 8. Mirror permissions
  9. 9. Build and submit to TestFlight
  10. 10. Configure App Clip metadata
  11. What you get
  12. Native detection (optional)
  13. References
  14. Submitting Feedback

Key facts

Author
Expo
License
MIT
Repository
expo/skills
Installs on skills.sh
21,235 as of 2026-11-02
Last repo commit
2026-11-01

What it includes

  • Adds both values to app.json

    Edits app.json so the Clip's bundle ID can be derived as the parent ID plus .clip.

    Files · 1. Set bundleIdentifier and appleTeamId

  • Runs bun create target clip

    Installs @bacons/apple-targets, adds it to the plugins array in app.json and writes targets/clip/ with a config plugin, Info.plist, AppDelegate.swift and assets.

    Runs code · 2. Add the App Clip target

  • Adds applinks and appclips entries

    Edits app.json and targets/clip/expo-target.config.js so the parent app and the Clip point at the domain that hosts the AASA file.

    Files · 3. Wire up associated domains

  • Runs bunx setup-safari

    Logs in to your Apple Developer account, registers the bundle ID, creates the App Store Connect entry and prints a starter AASA JSON and the Smart App Banner tag.

    Runs code · 4. Register bundle IDs

  • Creates public/.well-known/apple-app-site-association

    Adds the file with an extra appclips block for the Clip's full app ID.

    Files · 5. Host the AASA file

  • Adds a meta tag in src/app/+html.tsx

    Creates the HTML shell with bunx expo customize and adds the apple-itunes-app tag, with an optional App Clip card variant.

    Runs code · 6. Add the Smart App Banner

  • Runs bunx expo export -p web and eas deploy --prod

    Publishes the site, including the AASA file, to EAS Hosting, then checks it with curl.

    Runs code · 7. Deploy the website

  • Copies permission keys into the Clip's Info.plist

    Reads the parent app's infoPlist with npx expo config --type introspect, sets deploymentTarget to 17.6 and adds NSAppClip keys when needed.

    Runs code · 8. Mirror permissions

  • Runs bunx testflight

    Generates eas.json if missing, sets up credentials for both targets, builds, uploads and schedules a TestFlight submission.

    Runs code · 9. Build and submit to TestFlight

  • eas metadata:pull, edit store.config.json, eas metadata:push

    Adds up to 3 invocation URLs and a 1800x1200 header image, then pushes the metadata to the store.

    Runs code · 10. Configure App Clip metadata

  • Local Expo module that exposes navigator.appClip.prompt()

    Described in references/native-module.md: a Swift module, a TypeScript interface and usage to show the install prompt.

    Files · Native detection (optional)

From the official docs

Permissions

High risk

Following these steps, Claude can register your app with Apple, deploy a website and upload a build to TestFlight. Commit first, and approve the Apple login, deploy, build and metadata commands one at a time.

What it can do

  • Read your data
  • Create and change things
  • Delete things
  • Read-only mode

Watch out for

  • Logs in to Apple and pushes to App Store Connect

    bunx setup-safari registers bundle IDs and creates an App Store Connect entry. eas metadata:push updates store metadata. Run these yourself or approve them one by one.

  • Builds use EAS minutes and upload to TestFlight

    bunx testflight sets up credentials for both targets, builds, uploads and schedules a submission. Builds count against your EAS plan.

  • Deploys your website to production

    The deploy step runs eas deploy --prod to publish the AASA file. Check the project and domain first.

  • Installs a package and edits project files

    bun create target clip installs @bacons/apple-targets and writes files under targets/clip/. Commit your work first so you can review the diff.

  • The plugin route adds more than this skill

    The expo plugin that the README documents for Claude Code brings 23 skills, a .mcp.json that points to https://mcp.expo.dev/mcp and an agents/openai.yaml, and its plugin.json lists no hooks. Installing only this skill with the skills CLI avoids the MCP server setting.

  • Includes a feedback command that reports to Expo

    SKILL.md ends with an `npx --yes @expo/agent-cli@latest feedback` command for reporting problems to Expo, to be used only for specific, actionable feedback.

Technical details
Talks toApple Developer and App Store Connect. EAS Hosting, EAS Build and TestFlight. npm packages such as @bacons/apple-targets
Scopes
  • Apple Developer account login

  • EAS account for deploy, build and metadata

Questions

What does the Expo App Clip skill do?

It makes Claude add an iOS App Clip target to your Expo app and set up everything a Clip needs: associated domains, an AASA file on your website, a Smart App Banner, a TestFlight build and App Store metadata.

What do I need before I use it?

An Apple Developer Program membership and a domain that serves the AASA file over HTTPS. SKILL.md says any HTTPS host works and EAS Hosting is one option. Building with EAS Build or bunx testflight uses your EAS plan's build minutes.

How do I install it in Claude Code, the Claude app or Codex?

Use the install box above. The expo/skills README also documents a Claude Code plugin and a Codex plugin. The Claude Code plugin brings the other Expo skills and an Expo MCP server setting that points to mcp.expo.dev.

Does it use bun or npm?

SKILL.md commands use bun and bunx for creating the target, setup-safari, expo export and testflight, with npx for one config check. Install bun first, or ask Claude to translate the commands to your package manager.

Is it safe to install?

The skill bundles no scripts, but its steps make Claude run commands that log in to Apple, register bundle IDs, deploy a website, build and upload to TestFlight and push App Store metadata. Approve each command, and do not run it on an app you are not ready to publish.

Can it add an App Clip to an app that is not built with Expo?

SKILL.md covers Expo projects only. Its steps edit app.json, use Expo config plugins and Expo Router files.

Information

updated Nov 2, 2026

Repository
expo/skills
Folder
plugins/expo/skills/expo-app-clip

expo/skillsskills.sh

Sources

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

Show all 4
  1. SKILL.md · github.com
  2. expo/skills README · github.com
  3. plugin.json · github.com
  4. .mcp.json · github.com

Updated Nov 2, 2026.