Engineering / 5 min read
How ScreenVeil uses ScreenCaptureKit to filter your screen locally
ScreenCaptureKit lets an app choose what enters its own capture stream. ScreenVeil uses that stream to create a separate Privacy Screen window, which you select in your meeting app. Processing stays on the Mac; the filtering does not control an unrelated recorder or redact private text inside an allowed window.
The public Apple APIs ScreenVeil uses to process your screen on your Mac, and the limits of sharing a filtered window.
By ScreenVeilUpdated
How the filter worksWhat does ScreenCaptureKit let an app filter?
ScreenCaptureKit can select or exclude applications and windows within the stream an app creates. That is the public capture API ScreenVeil uses for its filtered output.
The key object is SCContentFilter. Its scope is a stream, not a system-wide rule for all recording apps. Apple’s capture sample also separates content selection from stream configuration and delivery of captured samples.
For a user, that distinction means the selected source matters. ScreenVeil can produce a filtered image correctly while a meeting app independently captures the unfiltered desktop.
How does the image reach the audience?
ScreenVeil creates the image locally and displays it in the Privacy Screen window. Your meeting or recording app then captures the window you select.
The last step is controlled by the other app. ScreenVeil’s own preview cannot certify that a meeting participant receives the same source, so use a receiver view or an actual test recording for the final check.
The capture boundary
- 01
Choose private content
Select apps or whole windows that should stay out of ScreenVeil’s output.
- 02
Build the local feed
ScreenVeil applies its capture and rendering choices on the Mac.
- 03
Share Privacy Screen
Select that output window in the meeting or recording tool, then inspect its received image.
Why can a private app stay usable locally?
The filtered feed and your local desktop are separate views. An app can be absent from ScreenVeil’s capture while remaining open for you to read or interact with.
That does not make the app’s information private wherever it travels. Copy a confidential paragraph into a document you are sharing and the paragraph becomes visible there. Open webmail inside an allowed browser window and excluding a separate mail app will not hide it.
ScreenVeil supports whole-app exclusions and individual whole-window exclusions. It does not identify sensitive sentences or remove one browser tab from an otherwise shared window. Specific window selections reset when Privacy Screen stops.
Prepare the content inside allowed apps as carefully as the app list. Account menus, file pickers and search suggestions deserve a check because their contents may differ from the main page.
Does screen content leave the Mac?
ScreenVeil’s screen processing stays on the Mac. It does not upload screen frames, screenshots, window titles or captured app content to provide the filtered feed.
The meeting or recording tool you choose has its own behavior. Sending Privacy Screen through a video meeting necessarily gives that tool the output you selected; ScreenVeil’s local processing statement does not describe that service’s storage or transmission policy.
Trial registration stores the trial email in local preferences. Optional account sign-in and purchase handling are separate from the screen-processing path. ScreenVeil’s privacy policy explains those account and billing services; they should not be conflated with uploading the contents of the screen.
Visual exclusions also do not configure the other app’s microphone, system audio or camera. Review those inputs in the tool that records or transmits them.
What does a useful verification look like?
Verify the source boundary using fictional content and the app you plan to use. For example, put a changing PUBLIC SAMPLE counter on a slide and PRIVATE SAMPLE in a separate notes app, then exclude the notes app and share Privacy Screen.
Watch from a second device or review a short recording while you change the slide and bring the notes forward locally. This checks both that the public feed updates and that the private sample stays absent. It is a proposed exercise, not a measured result from this article.
A static image is not enough to establish that capture remains live. Include the transitions you will actually perform, and repeat the relevant check after changing the source or display arrangement.
Do public APIs guarantee every recorder will work?
No. Public APIs define the supported capture mechanism, but each receiving app still has its own source picker and capture behavior. ScreenVeil does not inject code into those apps or promise to block their independent recordings.
ScreenVeil’s published minimum is macOS 14. Requirements for an Apple sample project or another recorder are separate and may be newer. Check the supported setup for the versions you actually run.
This article makes no frame-rate, latency or universal compatibility claim. The compatibility page records the supported workflow and the limits that matter when choosing a share source.