extensions-widgets

Implement widgets and Live Activities with App Groups-based data sharing and timeline discipline.

1.1k|81|Updated Nov 30, 2025
One-click install
npx skills add https://github.com/CharlesWiltgen/Axiom --skill extensions-widgets
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: extensions-widgets
Source: https://github.com/CharlesWiltgen/Axiom/tree/main/.claude-plugin/plugins/axiom/skills/extensions-widgets
Command: npx skills add https://github.com/CharlesWiltgen/Axiom --skill extensions-widgets

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill helps you design and implement widgets, Live Activities, and Control Center controls with correct timeline management, data sharing through App Groups, and extension lifecycle to avoid crashes and memory issues.

Core Features & Use Cases

  • Widget timeline discipline: Properly manage timelines, refreshes, and App Groups data sharing.
  • Live Activities & Control Center: Correct lifecycle and data updates for dynamic system experiences.
  • Data sharing patterns: Safe data sharing between app and extensions via App Groups.
  • Debug & troubleshooting: Techniques for stale data, unresponsive widgets, and extension crashes.

Quick Start

Outline a strategy to implement a widget and a complementary Live Activity that share data via an App Group.

Frequently Asked Questions about extensions-widgets

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I prevent widget crashes and memory issues with correct timeline management?

Widget crashes and memory issues stem from improper timeline management and lifecycle handling. Enforce strict timeline policies, respect the ~30MB sandbox constraint, and use prefetch in the main app with TimelineProvider reads to safely fetch data. This prevents stale data and unresponsive widgets across Home Screen, Lock Screen, StandBy, and Control Center widgets.

What's the best way to share data between an app and its widgets using App Groups?

App Groups enable safe data sharing between your app and extensions in separate bundle containers. Store prefetched data via the main app, then read it through TimelineProvider in widgets and Live Activities. This pattern prevents data sharing failures and ensures widgets access fresh, validated information.

How do I implement Live Activities and Control Center controls with correct lifecycle management?

Live Activities and Control Center controls require proper lifecycle handling tied to timeline updates. Apply the same timeline discipline, data sharing via App Groups, and extension lifecycle patterns used for widgets. This ensures responsive controls, correct data updates, and prevents crashes in dynamic system experiences.

Why are my widgets showing stale data or appearing unresponsive?

Stale data and unresponsive widgets result from improper timeline refresh cycles or missing gallery presence configuration. Use correct timeline patterns with App Groups-based data sharing and ensure the main app prefetches data that TimelineProvider reads. Validate that your widget's timeline policy complies with platform requirements.

Can I use the same data-sharing pattern for Home Screen widgets, Lock Screen widgets, and Live Activities?

Yes. All widget types—Home Screen, Lock Screen, StandBy, Control Center—and Live Activities use the same App Groups data-sharing architecture. Enforce consistent timeline management and extension lifecycle patterns across all extensions to avoid crashes and memory issues in any context.

What are the memory and sandbox constraints I need to account for when building extensions?

Extensions operate within a ~30MB memory sandbox. Design your timeline refresh strategy, data payload size, and prefetch logic to respect this limit. Avoid storing large datasets in App Groups; instead, prefetch and cache only essential data in the main app for TimelineProvider reads.