evanbacon/expo-apple-targets46 files

Apple Targets

Build, configure, and debug native Apple extension and target types (widgets, App Clips, share extensions, watchOS apps, Safari extensions, notification extensions, VPN/network extensions, and 40+ more) in an Expo app using the @bacons/apple-targets config plugin. Use when a user wants to add home screen presence, share sheets, custom keyboards, Siri/App Intents, push notification handling, AutoFill/passkeys, Screen Time controls, or any other Apple app extension to a React Native / Expo project.

Specification
Skill ID
evanbacon/expo-apple-targets/apple-targets
Publisher
evanbacon
Repository
expo-apple-targets
Installs
0
Files
46
Synced
Sep 23, 2026
How to use it

Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.

evanbacon/expo-apple-targets/apple-targetsInstalls these files
  • SKILL.md
  • _template.md
  • account-auth.md
  • action.md
  • app-intent.md
  • authentication-services.md
  • bg-download.md
  • broadcast-setup-ui.md
  • broadcast-upload.md
  • call-directory.md
  • classkit-context.md
  • clip.md
  • content-blocker.md
  • credentials-provider.md
  • device-activity-monitor.md
  • entitlements/README.md
  • entitlements/app-groups.md
  • file-provider-ui.md
  • file-provider.md
  • intent-ui.md
  • intent.md
  • keyboard.md
  • location-push.md
  • matter.md
  • message-filter.md
  • network-app-proxy.md
  • network-dns-proxy.md
  • network-filter-data.md
  • network-packet-tunnel.md
  • notification-content.md
  • notification-service.md
  • photo-editing.md
  • print-service.md
  • quicklook-preview.md
  • quicklook-thumbnail.md
  • safari.md
  • share.md
  • shield-action.md
  • shield-config.md
  • smart-card.md
  • spotlight-delegate.md
  • spotlight.md
  • unwanted-communication.md
  • virtual-conference.md
  • watch.md
  • widget.md

What this skill tells the agent

Apple Extension Target Skills Reference

This directory contains comprehensive skill documents for all supported Apple extension and target types. Each skill document provides everything an AI agent needs to understand, implement, and troubleshoot a specific Apple extension type, including:

  • Apple documentation links and WWDC session references
  • Runtime behavior and lifecycle explanation
  • Real-world use cases and implementation patterns
  • Production-ready Swift code examples
  • Platform availability and version requirements
  • Common gotchas and debugging tips

Installing This Skill

Install this skill into your coding agent (Claude Code, Cursor, Codex, etc.) with `npx skills`:

npx skills add EvanBacon/expo-apple-targets/tree/main/skills/apple-targets

The CLI auto-detects which agents you have installed and copies SKILL.md (plus the supporting reference docs in this directory) into the agent's skills directory (e.g. .claude/skills/ or .agents/skills/). Once installed, the agent loads this guidance automatically whenever you ask it to build an Apple extension or target.

How to Use These Skills

For AI Agents:

  1. When a user asks about a specific extension type (e.g., "How do I build a widget?" or "I need to add a share extension"), read the corresponding skill document to get complete implementation guidance.
  1. When planning a feature that might require an extension (e.g., "Add home screen presence" → read widget.md), consult the skill document to understand requirements and constraints.
  1. When debugging extension issues, refer to the "Gotchas" section of the relevant skill document — these capture common pitfalls from Apple Developer Forums and real-world experience.
  1. When uncertain which extension type fits a use case, scan the "Use Cases" sections across related skills to find the best match.

Structure of Each Skill Document:

Every skill document follows the template defined in _template.md:

  • Frontmatter: Title, one-line description, minimum OS version
  • Apple Documentation: Official reference links
  • WWDC History: Session links showing evolution of the feature
  • What It Does: Step-by-step runtime behavior
  • Use Cases: Real-world scenarios organized by industry/app type
  • Key Classes: Table of essential framework types
  • Implementation: Production-ready Swift code with inline comments
  • Using with @bacons/apple-targets: Setup instructions for this plugin
  • Platform Availability: OS version matrix
  • Gotchas: Common mistakes, memory limits, and silent failure modes

Skills by Category

User Interface Extensions

SkillExtension TypeWhen to Read
widget.mdwidgetUser wants home screen widgets, Lock Screen widgets, Live Activities, StandBy mode UI, or Control Center controls (iOS 18+). Timeline-based SwiftUI views.
clip.mdclipUser wants instant-launch mini-apps triggered by NFC, QR codes, App Clip Codes, Safari banners, or Messages links. Not an extension—a size-constrained application target.
share.mdshareUser wants their app in the system share sheet to receive URLs, images, text, or files from other apps.
action.mdactionUser wants context menu actions in Safari, Photos, or Files that transform content and optionally return modified data.
keyboard.mdkeyboardUser wants a custom system keyboard with specialized input (emoji pickers, GIF search, language-specific layouts, calculators).
photo-editing.mdphoto-editingUser wants to add filters, adjustments, or effects to photos/videos directly in the Photos app editing UI.
quicklook-preview.mdquicklook-previewUser wants rich previews of custom file types in Quick Look with interactive controls and multiple pages.
quicklook-thumbnail.mdquicklook-thumbnailUser wants to generate thumbnail images for custom file types shown in Finder, Files app, and Spotlight.

Notifications

SkillExtension TypeWhen to Read
notification-service.mdnotification-serviceUser wants to download images, decrypt payloads, or modify push notification content before display. Runs in background with 30-second time limit.
notification-content.mdnotification-contentUser wants custom SwiftUI/UIKit UI for expanded push notifications with interactive controls and rich media.

Siri & Intents

SkillExtension TypeWhen to Read
intent.mdintentUser wants Siri voice commands for built-in domains (messaging, payments, workouts, media playback, ride booking). Uses legacy SiriKit framework.
intent-ui.mdintent-uiUser wants custom UI in the Siri interface when confirming or handling intents. Companion to the intent extension.
app-intent.mdapp-intentUser wants modern App Intents (iOS 16+) for Shortcuts, Spotlight, Siri, Focus Filters, and Control Center widgets. Replaces custom .intentdefinition files.

Networking & VPN

SkillExtension TypeWhen to Read
network-packet-tunnel.mdnetwork-packet-tunnelUser wants to build a VPN client that tunnels all device traffic through a custom protocol. Classic and modern Personal VPN.
network-app-proxy.mdnetwork-app-proxyUser wants app-level network filtering (per-app VPN) where specific apps route traffic through a custom proxy. Requires MDM or supervised devices.
network-dns-proxy.mdnetwork-dns-proxyUser wants to intercept and respond to DNS queries system-wide, enabling DNS filtering, logging, or custom resolution.
network-filter-data.mdnetwork-filter-dataUser wants deep packet inspection for content filtering (parental controls, enterprise security). Requires special Apple entitlement.

File Management

SkillExtension TypeWhen to Read
file-provider.mdfile-providerUser wants to expose cloud storage or remote file systems in the Files app with on-demand download, search, and sync.
file-provider-ui.mdfile-provider-uiUser wants custom UI for file actions (sharing, permissions) in the document picker. Companion to File Provider extension.

Communication & Telephony

SkillExtension TypeWhen to Read
message-filter.mdmessage-filterUser wants to filter incoming SMS/MMS messages to classify spam, transactions, or promotions into separate tabs.
call-directory.mdcall-directoryUser wants to block phone numbers or provide caller ID labels for incoming calls. Updates a system-managed SQLite database.
unwanted-communication.mdunwanted-communicationUser wants a UI for users to report unwanted calls, messages, or FaceTime attempts to a reporting service. Requires special entitlement.

Content & Media

SkillExtension TypeWhen to Read
broadcast-upload.mdbroadcast-uploadUser wants to stream ReplayKit screen recordings to a live streaming service (Twitch, YouTube Live). Receives video/audio buffers in real time.

Use this skill in a project

Open any RiverX project, search the Skills panel for evanbacon/expo-apple-targets/apple-targets, and install it in one click.

Use this skill