A native Mac recorder for a single window or display, with local H.264 files and optional system audio.
macOS 12.3+ · system audio on macOS 13+ · Swift · MIT License
- Discover windows and displays through ScreenCaptureKit.
- Record at 24, 30, or 60 fps, with even encoder dimensions capped at 4K.
- Include system audio on macOS 13 and later.
- Keep recordings in a local library, play them, and export MOV files.
Open Mac Screen Recorder.xcodeproj in Xcode 16 or later. The shared scheme has the same name. No third-party Swift packages are required. Builds were checked with Xcode 27; minimum OS declarations are not a claim that every older OS was runtime-tested.
Choose My Mac and run the shared scheme. Click Find sources and grant Screen Recording access when macOS requests it. Reopen the app if the system requires it.
Select a source, start recording, then stop before closing the app. Signing is ad hoc for local development; distribution requires your own Developer ID signing and notarization.
Bundle identifier: com.dd.screenrecorder.
Record a small window for a few seconds, stop, then use Play. Export the recording to a folder of your choice. ⌘⇧R starts or stops capture.
RecorderModel owns source discovery and the capture lifecycle. MovieWriter serializes AVAssetWriter operations and sample delivery on one queue. RecordingSettings keeps frame-rate and encoder-size rules testable without screen permission.
Run swift test for encoder dimensions and frame-rate validation. Verify permission denial, a short window recording, playback, system audio, and export on a Mac with Screen Recording permission.
There is no microphone input, video editing, pause/resume, or cloud upload. Quitting waits for an active recording to finish. A forced process termination can still leave an incomplete file. Real capture and system audio require OS permission and must be checked on the target Mac. A successful build alone does not verify capture permissions.
See PRIVACY.md for storage and network behavior. Sample data is fictional.
MIT. Original source and app artwork are included under the same license.