# apple-targets

Reference docs for native Apple targets in an Expo app: widgets, share sheets, keyboards, network tunnels. The agent opens the right file and writes the Swift.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 534 installs · ★ 1404
- Author: EvanBacon
- License: not stated · policy=link-only · description only; the file stays with the author
- Source: https://github.com/EvanBacon/expo-apple-targets/tree/HEAD/skills/apple-targets/SKILL.md
- Updated: 2026-10-23
- HTML: https://affpapa.org/en/nevibecode/skills/apple-targets

## What it does

This skill covers native Apple targets inside an Expo app: home screen widgets, App Clips, share extensions, custom keyboards, watchOS apps, Safari extensions, VPN tunnels, DNS proxies. It arrives as a folder of documents, one per extension type.

Each document keeps the same shape. You get Apple documentation and WWDC session links, a walk through what the extension does at runtime, use cases, working Swift samples, which OS versions support it, and a gotchas section recording the ways these targets fail without an error message. Ask for a widget, or ask why an extension never shows up, and the agent pulls up the matching file.

Underneath sits the `@bacons/apple-targets` config plugin, so the app has to be built with Expo. A few target types run into Apple's own walls: `network-filter-data` needs a special entitlement, and per-app proxying only works with MDM or a supervised device.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add EvanBacon/expo-apple-targets --skill apple-targets -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/apple-targets/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/apple-targets/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add EvanBacon/expo-apple-targets --skill apple-targets -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/apple-targets/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add EvanBacon/expo-apple-targets --skill apple-targets -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/apple-targets/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install EvanBacon/expo-apple-targets apple-targets
```

2. **Manually: put the files in place**
- File: `.github/skills/apple-targets/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add EvanBacon/expo-apple-targets --skill apple-targets -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/EvanBacon/expo-apple-targets --path skills/apple-targets
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/apple-targets/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add EvanBacon/expo-apple-targets --skill apple-targets -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/EvanBacon/expo-apple-targets/tree/HEAD/skills/apple-targets/SKILL.md

## When to use it
- put a widget on the home screen of an Expo app
- receive links and images from the system share sheet
- trace why a push notification arrives without its image
- pick between a Share, Action and App Intent target
- build a keyboard layout of your own

## Example prompts
- Add a home screen widget to my app with `@bacons/apple-targets`
- Which target type do I need to accept links from other apps?
- My `notification-service` drops the image from the push — why?

## Similar
- [vercel-react-native-skills](https://affpapa.org/en/nevibecode/skills/vercel-react-native-skills.md) — skill · 255200 installs
- [animate-expo](https://affpapa.org/en/nevibecode/skills/animate-expo.md) — skill · 137900 installs
- [mobile-native](https://affpapa.org/en/nevibecode/skills/mobile-native.md) — skill · 86600 installs
- [aso](https://affpapa.org/en/nevibecode/skills/aso.md) — skill · 75400 installs
- [swiftui-pro](https://affpapa.org/en/nevibecode/skills/swiftui-pro.md) — skill · 35200 installs
- [orca-emulator](https://affpapa.org/en/nevibecode/skills/orca-emulator.md) — skill · 5800 installs

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
