shareplay-activities

Implement synchronized multi-participant experiences with GroupActivities and SharePlay.

Updated May 10, 2026
One-click install
npx skills add https://github.com/FelixRauch/medat-figuren --skill shareplay-activities-felixrauch
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: shareplay-activities
Source: https://github.com/FelixRauch/medat-figuren/tree/main/.agents/skills/shareplay-activities
Command: npx skills add https://github.com/FelixRauch/medat-figuren --skill shareplay-activities-felixrauch

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

It helps developers build and coordinate real-time shared experiences between participants over FaceTime or iMessage.

Core Features & Use Cases

  • GroupActivity + session setup: Define a GroupActivity, request activation eligibility, and manage GroupSession lifecycle.
  • Synchronized communication: Send and receive Codable messages using GroupSessionMessenger, choosing reliable delivery for state changes and unreliable delivery for high-frequency updates.
  • Shared media control: Coordinate playback using AVPlaybackCoordinator so play/pause/seek actions stay in sync automatically.
  • Large data transfer: Use GroupSessionJournal for file/image transfers that exceed messenger message-size limits.
  • Use case: Implement a “Watch Together” experience where participants start the same media and collaboratively stay aligned without manual polling or bespoke networking.

Quick Start

Add the Group Activities entitlement, define a GroupActivity with metadata, observe Activity.sessions(), create a GroupSessionMessenger, call session.join(), and wire synchronized playback via AVPlaybackCoordinator.

Frequently Asked Questions about shareplay-activities

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

FAQPage Schema
How do I implement synchronized media playback in a FaceTime SharePlay session?

To implement synchronized media playback in a FaceTime SharePlay session, coordinate play, pause, and seek actions using AVPlaybackCoordinator. This ensures all participants stay aligned automatically without requiring manual polling or bespoke networking code.

What is the best way to send high-frequency state updates over GroupSessionMessenger?

The best way to send high-frequency state updates over GroupSessionMessenger is to choose unreliable delivery for rapid changes. Use reliable delivery for critical Codable state changes to ensure message consistency across the GroupSession.

How do I transfer large files to SharePlay participants when hitting message size limits?

To transfer large files to SharePlay participants when hitting message size limits, use GroupSessionJournal. It handles large data transfers like file and image payloads that exceed the standard GroupSessionMessenger capacity.

Do I need a specific entitlement to use GroupActivities in SwiftUI?

Yes, you need to add the Group Activities entitlement to use GroupActivities in SwiftUI. You then define a GroupActivity with metadata, observe Activity.sessions(), and manage the GroupSession join and leave lifecycle.

Can I sync collaborative app state across devices using SharePlay?

Yes, you can sync collaborative app state across devices using SharePlay by sending and receiving Codable messages with GroupSessionMessenger. This enables real-time state synchronization for coordinated user interactions during active group sessions.

What are the limitations of GroupSessionMessenger for real-time data sync?

A key limitation of GroupSessionMessenger for real-time data sync is a strict message-size limit for Codable payloads. When transferring large data like files or images, you must switch to GroupSessionJournal to avoid exceeding these constraints.