
alarmkit
AlarmKit integration for scheduling alarms and timers with custom UI, Live Activities, and snooze support. Use when implementing alarm or timer features in iOS 26+ apps.
- Installs
- 73
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/rshankras/claude-code-apple-skills --skill alarmkit- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads alarmkit automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
AlarmKit
Framework for scheduling alarms and countdown timers with custom UI, Live Activities integration, and focus/silent mode override. Prevents the most common mistakes: using the wrong authorization property name, omitting the Info.plist key, and forgetting the widget extension for countdown presentations.
When This Skill Activates
Use this skill when the user:
- Asks to add, fix, or review alarm or timer functionality
- Mentions AlarmKit, AlarmManager, or AlarmPresentation
- Wants to schedule one-time, repeating, or countdown alarms
- Asks about snooze, stop, or repeat buttons on alarm alerts
- Wants alarms to appear on Dynamic Island or Lock Screen (Live Activities)
- Mentions overriding Focus or silent mode for alarms
- Asks about AlarmAttributes or AlarmMetadata
Decision Tree
Choose the right reference file based on what the user needs:
What do you need?
|
+-- Schedule an alarm (one-time, repeating, or timer)
| --> scheduling.md
| +-- One-time alarm: Alarm.Schedule.relative + .repeats: .never
| +-- Repeating alarm: Alarm.Schedule.relative + .repeats: .weekly(weekdays)
| +-- Countdown timer: CountdownDuration (no schedule)
| +-- Authorization & Info.plist setup
| +-- Managing alarms: pause, resume, cancel
|
+-- Customize alarm UI (alert, countdown, paused screens)
| --> presentation.md
| +-- AlarmPresentation.Alert: title, stop, snooze/repeat buttons
| +-- AlarmPresentation.Countdown: title, pause button
| +-- AlarmPresentation.Paused: title, resume button
| +-- Custom buttons with AlarmButton
| +-- Tint color and metadata via AlarmAttributes
|
+-- Show alarm on Dynamic Island / Lock Screen
--> live-activities.md
+-- Widget extension with ActivityConfiguration
+-- AlarmAttributes conformance
+-- Custom AlarmMetadata protocol
API Availability
| API | Minimum Version | Reference |
|---|---|---|
AlarmManager | iOS 26 | scheduling.md |
Alarm / Alarm.Schedule | iOS 26 | scheduling.md |
AlarmPresentation (.alert, .countdown, .paused) | iOS 26 | presentation.md |
AlarmAttributes | iOS 26 | live-activities.md |
AlarmMetadata | iOS 26 | live-activities.md |
AlarmButton | iOS 26 | presentation.md |
CountdownDuration | iOS 26 | scheduling.md |
alarmUpdates async sequence | iOS 26 | scheduling.md |
authorizationUpdates async sequence | iOS 26 | scheduling.md |
Top Mistakes -- Quick Reference
| # | Mistake | Fix | Details |
|---|---|---|---|
| 1 | Using .authorizationStatus instead of .authorizationState | The property is AlarmManager.shared.authorizationState -- there is no authorizationStatus | scheduling.md |
| 2 | Forgetting NSAlarmKitUsageDescription in Info.plist | Add the key with a user-facing string before calling requestAuthorization() | scheduling.md |
| 3 | Creating countdown timer with a schedule | Timers use CountdownDuration only -- do not pass a schedule | scheduling.md |
| 4 | Missing widget extension for countdown presentations | Countdown and paused UI requires an ActivityConfiguration(for: AlarmAttributes.self) widget | live-activities.md |
| 5 | Not persisting alarm UUIDs | Store the Alarm.id (UUID) so you can pause, resume, or cancel later | scheduling.md |
| 6 | Not observing alarmUpdates for state sync | Use the alarmUpdates async sequence to keep local state in sync with the system | scheduling.md |
Review Checklist
When reviewing AlarmKit code, verify:
- Info.plist --
NSAlarmKitUsageDescriptionis present with a meaningful description - Authorization --
requestAuthorization()is called before scheduling; denial is handled gracefully - Correct property -- uses
.authorizationState, not.authorizationStatus - Alarm ID persistence -- alarm UUIDs are stored (e.g., UserDefaults, SwiftData) for later management
- State observation --
alarmUpdatesasync sequence is used to keep UI in sync - Widget extension -- exists if countdown or paused presentations are used
- Error handling --
schedule(),pause(),resume(),cancel()calls handle errors - System limits -- code accounts for the system limit on number of active alarms
- Real device testing -- alarms are tested on physical devices, not just Simulator
Reference Files
| File | Content |
|---|---|
| scheduling.md | Authorization, one-time/repeating/timer creation, managing alarms, observing updates |
| presentation.md | Alert, countdown, paused UI customization, buttons, tint color |
| live-activities.md | Widget extension, AlarmAttributes, AlarmMetadata, Dynamic Island |
FAQ
What does the alarmkit skill do?
AlarmKit integration for scheduling alarms and timers with custom UI, Live Activities, and snooze support. Use when implementing alarm or timer features in iOS 26+ apps.
How do I install alarmkit?
Run npx skills add https://github.com/rshankras/claude-code-apple-skills --skill alarmkit in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/alarmkit/ (personal) or .claude/skills/alarmkit/ (project).
Which AI agents can use alarmkit?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is alarmkit safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains alarmkit?
It is published by rshankras in rshankras/claude-code-apple-skills. It has 73 recorded installs.
More from rshankras/claude-code-apple-skills
macos-development
rshankras/claude-code-apple-skills
Comprehensive macOS development guidance including Swift 6+, SwiftUI, SwiftData, architecture patterns, AppKit bridging, and macOS 26 Tahoe APIs. Use for macOS code review, best practices, UI review, or platform-specific features.
ios-development
rshankras/claude-code-apple-skills
Comprehensive iOS development guidance including Swift best practices, SwiftUI patterns, UI/UX review against HIG, and app planning. Use for iOS code review, best practices, accessibility audits, or planning new iOS apps.
design
rshankras/claude-code-apple-skills
Design skills for Apple platform UI — Liquid Glass, animations, game feel (haptics, sound, celebrations), UI prototyping, UX writing, SF Symbols, and typography. Use when implementing design language features, adding juice/feedback, writing interface copy, or choosing type and iconography.
app-store
rshankras/claude-code-apple-skills
App Store optimization and marketing skills for descriptions, screenshots, keywords, review responses, and comprehensive promotional strategy. Use when user needs help with App Store presence, ASO, marketing, or customer communication.
watchos
rshankras/claude-code-apple-skills
watchOS development guidance including SwiftUI for Watch, Watch Connectivity, complications, and watch-specific UI patterns. Use for watchOS code review, best practices, or Watch app development.
product-development
rshankras/claude-code-apple-skills
End-to-end product development for iOS/macOS apps. Covers market research, competitive analysis, PRD generation, architecture specs, UX design, implementation guides, testing, and App Store release. Use for product planning, validation, or generating specification documents.
Popular frontend & design skills
setup-matt-pocock-skills
mattpocock/skills
Configure this repo for the engineering skills: set up its issue tracker, triage label vocabulary, and domain doc layout. Run once before first use of the other engineering skills.
frontend-design
anthropics/skills
Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.
hyperframes-animation
heygen-com/hyperframes
All animation knowledge for HyperFrames — atomic motion rules, multi-phase scene blueprints, scene transitions, broader motion-design techniques, AND the seven runtime adapters (GSAP default, plus Lottie, Three.js, Anime.js, CSS keyframes, Web Animations API, TypeGPU). Use for any motion or animation task: pick 2-4 rules and compose, or load a blueprint, or look up runtime-specific API (e.g. GSAP eases / Lottie player / Three.js mixer). Also covers auditing an existing composition's choreography (animation map) and 24 named text-animation effects. HyperFrames-native: single paused timeline, seek-safe, deterministic.
prototype
mattpocock/skills
Build a throwaway prototype to answer a design question. Use when the user wants to sanity-check whether a state model or logic feels right, or explore what a UI should look like.
hyperframes-core
heygen-com/hyperframes
The HyperFrames composition contract — build one renderable project. Use for composition structure, the data- timing attributes, class="clip", tracks, sub-compositions, variables, framework-owned media playback, deterministic-render rules, and validation. Read before writing composition HTML.
vercel-react-best-practices
vercel-labs/agent-skills
React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.