# dockkit

A skill for the DockKit framework: write Swift code that drives motorized docks and gimbals so the iPhone physically follows a subject.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 3000 installs · ★ 1238
- Author: dpearson2699
- License: LicenseRef-Unknown · policy=link-only · description only; the file stays with the author
- Source: https://github.com/dpearson2699/swift-ios-skills/tree/HEAD/skills/dockkit/SKILL.md
- Updated: 2026-07-31
- HTML: https://affpapa.org/en/nevibecode/skills/dockkit

## What it does

The skill covers DockKit work in Swift apps. It walks through accessory discovery, system tracking of faces and bodies, custom observations, motor control and framing. System tracking is the default: the framework reads camera frames and turns the motors to keep a subject in view. An app can switch it off and feed in its own observations instead, from Vision or a custom model.

Custom tracking means sending observations to the accessory at 10-30 fps. Pick the observation type from `.humanFace`, `.humanBody` and `.object`, and give the rect in normalized coordinates with a lower-left origin — the same system Vision uses, so no conversion is needed. System tracking state does not survive app termination or background transitions, so set it explicitly when you need a value.

The skill needs a physical compatible accessory and a real device; the Simulator will not talk to dock hardware. Your app has to use AVFoundation camera APIs, since DockKit hooks into the capture pipeline. No special entitlements or DockKit-specific Info.plist keys are required, but camera access still needs `NSCameraUsageDescription`. iOS 17+ and Swift 6.3.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add dpearson2699/swift-ios-skills --skill dockkit -a claude-code
```

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

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add dpearson2699/swift-ios-skills --skill dockkit -a codex
```

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

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add dpearson2699/swift-ios-skills --skill dockkit -a cursor
```

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

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install dpearson2699/swift-ios-skills dockkit
```

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

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add dpearson2699/swift-ios-skills --skill dockkit -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/dpearson2699/swift-ios-skills --path skills/dockkit
```

### Windsurf (Devin Desktop)

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

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add dpearson2699/swift-ios-skills --skill dockkit -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/dpearson2699/swift-ios-skills/tree/HEAD/skills/dockkit/SKILL.md

## When to use it
- connect a motorized dock and react to its state changes
- turn system face and body tracking on or off
- feed Vision detections into the accessory as observations
- frame a subject in the left or right third
- let a user pick a subject by tapping the frame

## Example prompts
- Watch for dock connections with `DockAccessoryManager.shared` and handle `.docked` and `.undocked`
- Disable system tracking and send `.humanBody` observations at 30 fps
- Set framing mode to `.left` so the subject stays in the left third

## Similar
- [iphone-duo-camera](https://affpapa.org/en/nevibecode/skills/iphone-duo-camera.md) — skill · 500 installs
- [axiom-media](https://affpapa.org/en/nevibecode/skills/axiom-media.md) — skill · 1300 installs
- [core-ml](https://affpapa.org/en/nevibecode/skills/core-ml.md) — skill · 414 installs
- [claude-code-eyes](https://affpapa.org/en/nevibecode/skills/claude-code-eyes.md) — skill · ★ 52
- [axiom-ai](https://affpapa.org/en/nevibecode/skills/axiom-ai.md) — skill · 1100 installs
- [apple-intelligence](https://affpapa.org/en/nevibecode/skills/apple-intelligence.md) — skill · 516 installs

From the same set: [dpearson2699/swift-ios-skills](https://affpapa.org/en/nevibecode/by/dpearson2699/swift-ios-skills.md) — 86 cards

---
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
