alarmkit_skill
- Swift
56
GitHub Stars
4
Bundled Files
2 months ago
Catalog Refreshed
4 months ago
First Indexed
Readme & install
Copy the install command, review bundled files from the catalogue, and read any extended description pulled from the listing source.
Installation
Preview and clipboard use veilstrat where the catalogue uses aiagentskills.
npx veilstrat add skill rshankras/claude-code-apple-skills --skill alarmkit- live-activities.md5.9 KB
- presentation.md5.8 KB
- scheduling.md7.6 KB
- SKILL.md5.0 KB
Overview
This skill integrates AlarmKit for scheduling alarms and countdown timers with custom UI, Live Activities, and snooze support. It helps implement reliable alarm/timer behavior on iOS 18+, avoiding common integration mistakes. Use it to add system-aware alarms that can override Focus/silent mode and surface on the Dynamic Island or Lock Screen.
How this skill works
It wires AlarmManager, Alarm, and AlarmPresentation APIs to schedule one-time, repeating, or countdown alarms, handle authorization, and persist alarm IDs. The skill ensures the correct Info.plist key (NSAlarmKitUsageDescription) is present, observes alarmUpdates for state sync, and configures a widget extension with AlarmAttributes for Live Activities. It also exposes UI customization points (alert, countdown, paused) and button behaviors (stop, snooze, pause, resume).
When to use it
- Adding or reviewing alarm or timer features in an iOS 18+ app
- Scheduling one-time, repeating, or countdown timers
- Showing alarm state on Dynamic Island or Lock Screen via Live Activities
- Implementing snooze, stop, pause, or resume controls on alarms
- Handling authorization, Info.plist setup, and Focus/silent-mode override
Best practices
- Include NSAlarmKitUsageDescription in Info.plist before requesting authorization
- Use AlarmManager.shared.authorizationState (not authorizationStatus) and handle denied states gracefully
- Persist Alarm.id (UUID) so alarms can be paused, resumed, or canceled later
- Observe the alarmUpdates async sequence to keep app UI in sync with system state
- Provide a widget extension with ActivityConfiguration(for: AlarmAttributes.self) for countdown/paused presentations
- Handle errors from schedule(), pause(), resume(), and cancel() and account for system limits on active alarms
Example use cases
- Schedule a daily wake-up alarm with repeats and a snooze button on the alert UI
- Create a cooking countdown timer that shows remaining time on the Lock Screen via Live Activities
- Pause and resume a long timer from a widget or in-app UI while persisting the alarm UUID
- Override Focus/silent mode for critical alarms while still respecting user settings and authorization
- Add custom alarm buttons and metadata to show contextual actions in the alarm alert
FAQ
Add NSAlarmKitUsageDescription with a user-facing string before calling requestAuthorization().
How do I show timers on the Dynamic Island?
Provide a widget extension with ActivityConfiguration(for: AlarmAttributes.self) and supply AlarmAttributes/AlarmMetadata for Live Activities.