---
title: ScreenCaptureKit
framework: ScreenCaptureKit
role: collection
role_heading: Framework
platforms: [iOS 27.0+, iPadOS 27.0+, Mac Catalyst 18.2+, macOS 12.3+, tvOS 27.0+, visionOS 27.0+]
path: screencapturekit
---

# ScreenCaptureKit

Stream screen content and audio to your app with fine-grained control over what you capture.

## Overview

Overview Use ScreenCaptureKit to capture high-performance video and audio across iOS, iPadOS, macOS, tvOS, and visionOS. The framework gives you fine-grained control to select and stream only the content you want to capture, delivering media to your app as CMSampleBuffer objects with the associated metadata. important: ScreenCaptureKit replaces ReplayKit for screen streaming and mirroring. A broadcast extension is no longer necessary. Use SCContentSharingPicker, the system screen-sharing control, as the recommended approach for letting people select content sources and manage active streams, rather than building your own selection UI. To capture content while your app is in the background, configure the appropriate Configuring background execution modes in the Signing & Capabilities pane in Xcode. Request screen recording permission from the person before capturing content. In the Info pane of the Xcode target editor, add a NSScreenCaptureUsageDescription key with a description of why your app requires screen recording access. note: For related WWDC sessions, see Meet ScreenCaptureKit (WWDC22 Session 10156), Take ScreenCaptureKit to the next level (WWDC22 Session 10155), and What’s new in ScreenCaptureKit (WWDC23 Session 10136).

## Topics

### Essentials

- [ScreenCaptureKit updates](updates/screencapturekit.md)
- [Persistent Content Capture](bundleresources/entitlements/com.apple.developer.persistent-content-capture.md)
- [Capturing screen content on iOS](screencapturekit/capturing-screen-content-on-ios.md)
- [Capturing screen content in macOS](screencapturekit/capturing-screen-content-in-macos.md)

### Shareable content

- [SCShareableContent](screencapturekit/scshareablecontent.md)
- [SCShareableContentInfo](screencapturekit/scshareablecontentinfo.md)
- [SCShareableContentStyle](screencapturekit/scshareablecontentstyle.md)
- [SCDisplay](screencapturekit/scdisplay.md)
- [SCRunningApplication](screencapturekit/scrunningapplication.md)
- [SCWindow](screencapturekit/scwindow.md)

### Content capture

- [SCStream](screencapturekit/scstream.md)
- [SCStreamConfiguration](screencapturekit/scstreamconfiguration.md)
- [SCContentFilter](screencapturekit/sccontentfilter.md)
- [SCStreamDelegate](screencapturekit/scstreamdelegate.md)
- [SCScreenshotManager](screencapturekit/scscreenshotmanager.md)
- [SCScreenshotConfiguration](screencapturekit/scscreenshotconfiguration.md)
- [SCScreenshotOutput](screencapturekit/scscreenshotoutput.md)
- [SCVideoEffectOutput](screencapturekit/scvideoeffectoutput.md)

### Output processing

- [SCStreamOutput](screencapturekit/scstreamoutput.md)
- [SCStreamOutputType](screencapturekit/scstreamoutputtype.md)
- [SCStreamFrameInfo](screencapturekit/scstreamframeinfo.md)
- [SCFrameStatus](screencapturekit/scframestatus.md)
- [SCClipBufferingOutput](screencapturekit/scclipbufferingoutput.md)

### System content-sharing picker

- [SCContentSharingPicker](screencapturekit/sccontentsharingpicker.md)
- [SCContentSharingPickerConfiguration](screencapturekit/sccontentsharingpickerconfiguration-swift.struct.md)
- [SCContentSharingPickerMode](screencapturekit/sccontentsharingpickermode.md)
- [SCContentSharingPickerObserver](screencapturekit/sccontentsharingpickerobserver.md)

### Stream errors (Swift)

- [SCStreamErrorDomain](screencapturekit/scstreamerrordomain.md)
- [SCStreamError](screencapturekit/scstreamerror.md)

### Classes

- [SCRecordingEditor](screencapturekit/screcordingeditor.md)

### Protocols

- [SCClipBufferingOutputDelegate](screencapturekit/scclipbufferingoutputdelegate.md)
- [SCRecordingEditorDelegate](screencapturekit/screcordingeditordelegate.md)
