Guide · Agent skill
How to use the Add iOS App Clip to Expo agent skill
Updated · written with AI from the project's own documentation and checked against our catalogue data
The add-app-clip skill is a set of instructions that lets an AI coding agent walk you through adding an iOS App Clip to an Expo project. An App Clip is a small version of an iPhone app that opens from a web link without a full install. This guide explains what the skill does, how to install it, how to ask for it, and what you need before you start.
Quick start
- 1Install the skill. Download the ZIP from this page and unzip it into ~/.claude/skills/ or your project's .claude/skills/ folder, or upload it under Settings, Capabilities, Skills in the Claude apps.
- 2Prepare your Expo project. Make sure the project has a bundleIdentifier and appleTeamId in app.json, and that you have Apple Developer and App Store Connect access.
- 3Ask the agent for the App Clip. Describe what you want in plain language, for example asking for an App Clip that opens from a link on your domain.
- 4Add the Clip target and domains. The agent adds the target with bun create target clip and configures applinks and appclips associated domains.
- 5Host the AASA file. The agent writes the apple-app-site-association file with an appclips entry, merging it with any existing entries, and places it under public/.well-known/.
- 6Add the Smart App Banner and deploy. The agent adds the apple-itunes-app meta tag and deploys with EAS Hosting, then checks the AASA URL with curl.
- 7Review before approving releases. Confirm each registration, production deploy or submission before the agent runs it, since the skill requires separate authorization for these.
What does the add-app-clip skill make the agent do?
The skill covers the full setup of an App Clip inside an Expo app. The Clip lives in a targets/clip/ folder, ships alongside the parent app, and is opened from a URL on the app's domain through an Apple App Site Association (AASA) file.
Following the skill, the agent sets the bundle identifier and Apple team ID, adds the Clip target with the @bacons/apple-targets package, configures associated domains, writes the AASA file, adds the Smart App Banner meta tag, and works through deployment and TestFlight steps.
- Set bundleIdentifier and appleTeamId in app.json
- Add the App Clip target with bun create target clip
- Configure applinks and appclips associated domains
- Host the AASA file at /.well-known/apple-app-site-association
- Add the apple-itunes-app meta tag and deploy the site with EAS Hosting
- Mirror the parent app's permissions into the Clip where supported
How do you install the add-app-clip skill?
Download the skill's ZIP file from this page. Then use one of these two methods.
For a personal install, unzip the file into ~/.claude/skills/. To install it for one project only, unzip it into the .claude/skills/ folder inside that project. In the Claude apps, you can instead upload the ZIP under Settings, then Capabilities, then Skills.
- Personal: ~/.claude/skills/
- Single project: .claude/skills/ inside your project folder
- Claude apps: Settings, Capabilities, Skills, then upload
How do you trigger the skill with a natural request?
You do not need to name the skill. The skill's description lists the words that should activate it, so mention any of them in plain language. The skill is triggered by the terms App Clip, AASA, apple-app-site-association, appclips, smart app banner, or a request to ship a lightweight iOS Clip invoked from a URL alongside your parent app.
Give the agent context about your project, such as your app's bundle ID if you already have one and the domain where your website is hosted. The skill says not to rename a registered app to fit an example.
- Add an App Clip to my Expo app so it opens from a link on my website.
- Create an apple-app-site-association file for my Expo app and its App Clip.
- Set up a smart app banner for my Expo site that shows the App Clip card.
- Help me ship a lightweight iOS Clip alongside my parent app.
What do you need before you start?
The skill cannot create your accounts or set up your tools. Each of these must already be in place or ready to set up with your own authorization.
The skill also runs third-party commands that can change your Apple account state. Its metadata marks its risk level as critical, so review what the agent is about to run before you approve it.
- Node or Bun, and an existing Expo project
- An Apple Developer account with App Store Connect access
- Xcode and EAS tooling for prebuild and deployment
- An EAS Hosting account to publish the website that hosts the AASA file
- Third-party tooling: @bacons/apple-targets, setup-safari and testflight
What are the safety notes for running the skill?
The skill runs scripts and uses the network. Its own instructions say third-party package commands can install or execute code and can modify Apple account state. Before running them, the skill advises you to inspect and pin the chosen implementation and to confirm that the host and Expo version support it.
Creating Apple registrations, production deployments, store metadata pushes and submissions each need their own explicit authorization. The skill also says to merge AASA entries with your existing associations rather than replacing them, and to mirror only the permissions the Clip actually needs.
- Inspect and pin third-party commands before running them
- Give explicit approval for registrations, production deploys and store submissions
- Merge AASA entries with existing associations; do not overwrite them
- Use only the example IDs, domains and team IDs that you have replaced with your own
What does a typical run look like?
The skill is organized as ordered steps. The agent works through them and reports results as it goes. Key commands from the skill are shown below. Check each one against the skill's current instructions before running it.
After deployment, the skill says the AASA file must be live before iOS will trust the association. Confirm it by requesting the file over HTTPS, and expect the response to be a JSON file with no file extension.
- Create the Clip target
- Run the Apple setup and print the starter AASA JSON
- Add the Smart App Banner tag to the HTML shell
- Export and deploy the site
- Build and upload through TestFlight
bun create target clip
bunx setup-safari
bunx expo export -p web
eas deploy --prod
curl https://<your-domain>/.well-known/apple-app-site-association
bunx testflightWhat people use it for
- Letting visitors on a company website open a small app version from a link without installing the full app
- Adding an App Clip to an existing Expo app that already has a registered bundle ID
- Setting up universal links and App Clip invocation for a team's domain
- Showing an App Clip card instead of the install card on a website using the Smart App Banner tag
Frequently asked questions
How do I install the add-app-clip skill?
Download the skill's ZIP from this page and unzip it into ~/.claude/skills/ for personal use, or into .claude/skills/ inside a project. In the Claude apps, you can upload the ZIP under Settings, then Capabilities, then Skills.
What do I need to use the add-app-clip skill?
You need an existing Expo project, Node or Bun, an Apple Developer account with App Store Connect access, and Xcode and EAS tooling. Deployment also needs an EAS Hosting account. The skill cannot set up these accounts for you.
Is the add-app-clip skill free?
The skill is licensed under the MIT licence, as stated in its metadata. Check the licence file linked from the skill's source for the full terms.
Does the skill publish my app automatically?
No. The skill says that creating registrations, production deployments, store metadata pushes and submissions need their own explicit authorization before they run.
What is an App Clip and what is the AASA file for?
An App Clip is a small version of an iPhone app that launches from a web link without a full install. The apple-app-site-association file is served from your domain and tells iOS which App Clip can be opened from URLs on that domain.
Why does my App Clip not open from my website?
The skill says the AASA file must be live over HTTPS before iOS trusts the association, and it must be served as application/json without redirects. Check the file with curl. If expo prebuild warns about a missing associated domains entitlement, the Clip's config is missing that entry.
New agent skills, repos and AI tools — every week
The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.
Our verdict
This skill suits Expo developers and teams who already have an Apple Developer account and want an agent to handle the many setup steps for an App Clip and its website association. It is a poor fit for anyone without Expo or Apple developer accounts, or for anyone who expects fully automatic publishing, because the skill requires separate approval for registrations, deployments and store submissions.
Download the skill