push-notifications — Claude Code skill: what it does, how to install
Review, build, and debug local and APNs remote notifications for iOS and macOS in Swift. Handles permission flows, silent pushes, and service extensions.
npx skills add dpearson2699/swift-ios-skills --skill push-notifications -a claude-codeWhat push-notifications does
The skill provides guidelines and patterns for handling UserNotifications and APNs in Swift 6.3 apps targeting iOS 26+, maintaining compatibility down to iOS 16. It covers registration via UIApplicationDelegateAdaptor, alert authorization, provisional delivery, and critical alerts. Related areas are decoupled explicitly: background workloads belong in background-processing, VoIP goes to callkit, and Live Activities are handled by activitykit.
When auditing notification code, the skill enforces key platform contracts. Device tokens must upload on every didRegister event rather than trusting a local cache. Because the iOS Simulator cannot register real device tokens with APNs, testing simulated pushes requires .apns files or simctl push.
Rich notifications also come with strict requirements. Service extensions need both an alert payload and mutable-content: 1 to execute; silent pushes will not wake them. The skill flags missing fallbacks and ensures the completion handler runs exactly once, even if network attachments fail.
What it helps with
- configure APNs token callbacks via
UIApplicationDelegateAdaptor - audit silent push payloads for
apns-push-typeand priority flags - implement rich notification attachments in service extensions
- set up provisional or critical alert permissions using
UNUserNotificationCenter
Example prompts for the agent
- Help me implement APNs token registration in SwiftUI using AppDelegate
- Review my UNNotificationServiceExtension code for proper completion handler calls
- Configure a background push payload with apns-priority 5
How to install push-notifications
1Skills CLI (Vercel)
npx skills add dpearson2699/swift-ios-skills --skill push-notifications -a claude-code2Manually: put the files in place
~/.claude/skills/push-notifications/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/push-notifications/
1Skills CLI (Vercel)
npx skills add dpearson2699/swift-ios-skills --skill push-notifications -a codex2Manually: put the files in place
.agents/skills/push-notifications/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add dpearson2699/swift-ios-skills --skill push-notifications -a cursor2Manually: put the files in place
.cursor/skills/push-notifications/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install dpearson2699/swift-ios-skills push-notifications2Manually: put the files in place
.github/skills/push-notifications/SKILL.md1Skills CLI (Vercel)
npx skills add dpearson2699/swift-ios-skills --skill push-notifications -a gemini-cli2Platform CLI
gemini skills install https://github.com/dpearson2699/swift-ios-skills --path skills/push-notificationsManually: put the files in place
.devin/skills/push-notifications/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add dpearson2699/swift-ios-skills --skill push-notifications -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 push-notifications
How to install push-notifications in Claude Code?
Run npx skills add dpearson2699/swift-ios-skills --skill push-notifications -a claude-code in your terminal.
What does push-notifications do?
It guides the implementation and review of local and APNs notifications in Swift for iOS and macOS. The skill checks token handling, silent push settings, permission states, and notification extensions.
Can push notifications be tested on the iOS Simulator?
The Simulator always fails APNs token registration. To test payload handling and notification presentation on a simulated device, provide .apns payload files or run simctl push.