dockkit — Claude Code skill: motorized camera tracking
A skill for the DockKit framework: write Swift code that drives motorized docks and gimbals so the iPhone physically follows a subject.
npx skills add dpearson2699/swift-ios-skills --skill dockkit -a claude-codeWhat dockkit 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.
What it helps with
- 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 for the agent
- Watch for dock connections with
DockAccessoryManager.sharedand handle.dockedand.undocked - Disable system tracking and send
.humanBodyobservations at 30 fps - Set framing mode to
.leftso the subject stays in the left third
How to install dockkit
1Skills CLI (Vercel)
npx skills add dpearson2699/swift-ios-skills --skill dockkit -a claude-code2Manually: put the files in place
~/.claude/skills/dockkit/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/dockkit/
1Skills CLI (Vercel)
npx skills add dpearson2699/swift-ios-skills --skill dockkit -a codex2Manually: put the files in place
.agents/skills/dockkit/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add dpearson2699/swift-ios-skills --skill dockkit -a cursor2Manually: put the files in place
.cursor/skills/dockkit/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install dpearson2699/swift-ios-skills dockkit2Manually: put the files in place
.github/skills/dockkit/SKILL.md1Skills CLI (Vercel)
npx skills add dpearson2699/swift-ios-skills --skill dockkit -a gemini-cli2Platform CLI
gemini skills install https://github.com/dpearson2699/swift-ios-skills --path skills/dockkitManually: put the files in place
.devin/skills/dockkit/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add dpearson2699/swift-ios-skills --skill dockkit -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about dockkit
How do I install dockkit in Claude Code?
Run npx skills add dpearson2699/swift-ios-skills --skill dockkit -a claude-code. The skill lands in ~/.claude/skills/dockkit/SKILL.md.
What does dockkit do?
It helps you write DockKit code: accessory discovery, system and custom subject tracking, motor control and framing.
Can I test dockkit in the Simulator?
No. You need a physical compatible accessory and a real device; the Simulator cannot reach dock hardware.