audioaccessorykit — Claude Code skill: what it does, how to install
Guides automatic audio switching setup for third-party Bluetooth headphones with AudioAccessoryKit on iOS 26.4+. Useful when companion apps and extensions handle accessory state.
npx skills add dpearson2699/swift-ios-skills --skill audioaccessorykit -a claude-codeWhat audioaccessorykit does
The skill explains how to implement Apple's AudioAccessoryKit framework, introduced in iOS 26.4 and iPadOS 26.4. It covers the workflow between a companion app and an app extension. The accessory pairs first via AccessorySetupKit to produce an ASAccessory instance. After pairing, the container app registers device capabilities with AccessoryControlDevice.register.
Ongoing updates happen from the app extension using a gated write workflow. Developers retrieve the active configuration via AccessoryControlDevice.current(for:), mutate placement values like .inEar or .offHead, and call update(_:). The skill also details reporting multi-device Bluetooth addresses using Data. It clarifies that AudioAccessoryKit is not meant for direct Bluetooth transport or standard AVAudioSession routing.
In the Xcode 26.6 toolchain, the framework is present in device SDKs but missing from the iPhone Simulator 26.5 SDK. Testing requires a physical device. To keep simulator builds working, isolate imports with #if canImport(AudioAccessoryKit) and stub the implementation.
What it helps with
- register a paired accessory with
AccessoryControlDeviceafter AccessorySetupKit pairing - report headphone placement changes from an app extension to the system
- configure Bluetooth source device identifiers for multi-point switching
- guard Xcode simulator builds using
#if canImport(AudioAccessoryKit)
Example prompts for the agent
- Show how to register an ASAccessory with .audioSwitching and .placement capabilities in AudioAccessoryKit.
- Write the app extension update flow for reporting .inEar placement changes.
- How do I handle AudioAccessoryKit missing from the iPhone Simulator 26.5 SDK?
How to install audioaccessorykit
1Skills CLI (Vercel)
npx skills add dpearson2699/swift-ios-skills --skill audioaccessorykit -a claude-code2Manually: put the files in place
~/.claude/skills/audioaccessorykit/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/audioaccessorykit/
1Skills CLI (Vercel)
npx skills add dpearson2699/swift-ios-skills --skill audioaccessorykit -a codex2Manually: put the files in place
.agents/skills/audioaccessorykit/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add dpearson2699/swift-ios-skills --skill audioaccessorykit -a cursor2Manually: put the files in place
.cursor/skills/audioaccessorykit/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install dpearson2699/swift-ios-skills audioaccessorykit2Manually: put the files in place
.github/skills/audioaccessorykit/SKILL.md1Skills CLI (Vercel)
npx skills add dpearson2699/swift-ios-skills --skill audioaccessorykit -a gemini-cli2Platform CLI
gemini skills install https://github.com/dpearson2699/swift-ios-skills --path skills/audioaccessorykitManually: put the files in place
.devin/skills/audioaccessorykit/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add dpearson2699/swift-ios-skills --skill audioaccessorykit -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 audioaccessorykit
How do I install audioaccessorykit in Claude Code?
Run npx skills add dpearson2699/swift-ios-skills --skill audioaccessorykit -a claude-code.
What does audioaccessorykit do?
It provides implementation guidance for AudioAccessoryKit in iOS 26.4+, enabling automatic audio routing for third-party Bluetooth accessories. It details registration in the container app and state reporting in extensions.
Can I run AudioAccessoryKit code in the iOS simulator?
Xcode 26.6 includes the framework in the device SDK, but not in the iPhone Simulator 26.5 SDK. You need a physical device for execution, or wrap the code in #if canImport(AudioAccessoryKit) checks for simulator targets.