A small open-source native macOS app that records a display with system audio to an MP4 file.
MacSystemRecorder is intentionally simple: choose a display, choose where to save, press record, and get an MP4 with system audio.
- Record a full display with system audio
- Add a 3, 5, or 10 second start delay
- Crop recording to a selected area
- Hide MacSystemRecorder's own audio from the capture
- Auto-save completed recordings as MP4 files
- macOS 13 or later
- Xcode command line tools
- Screen Recording permission when macOS asks for it
- Swift Package Manager, included with Xcode
swift build -c release
./Scripts/make-app.shThe packaged app is created at:
dist/release/MacSystemRecorder.app
By default, make-app.sh creates an ad-hoc signed local build that launches on Apple Silicon Macs. For public distribution, use a real signing identity:
SIGNING_MODE=identity CODESIGN_IDENTITY="Developer ID Application: Your Name" ./Scripts/make-app.shOpen the packaged app:
open dist/release/MacSystemRecorder.appPick a display, choose where to save the file, set an optional start delay or crop area, then press Start Recording. Press Stop Recording to finish the MP4.
If macOS prompts for Screen Recording permission, allow it in System Settings > Privacy & Security > Screen & System Audio Recording, then quit and reopen the app. If Settings already shows access is enabled but the app still cannot read displays, use Quit & Reopen in the permission panel.
For quick testing, zip the packaged app:
ditto -c -k --keepParent dist/release/MacSystemRecorder.app dist/release/MacSystemRecorder.zipAd-hoc or unsigned builds may require right-clicking the app and choosing Open the first time. For public downloads, use Developer ID signing and Apple notarization; otherwise Gatekeeper behavior varies by macOS version and browser.
Create a macOS installer package that installs the app into /Applications:
swift build -c release
./Scripts/make-app.sh
./Scripts/make-pkg.shThe installer is created at:
dist/release/MacSystemRecorder.pkg
Unsigned installer packages may show Gatekeeper warnings. For public binary releases, sign the app and installer, then notarize the package with Apple.
INSTALLER_SIGN_IDENTITY="Developer ID Installer: Your Name" ./Scripts/make-pkg.shFor public binary releases, sign and notarize the app with an Apple Developer ID before uploading release artifacts.
Create a drag-to-Applications DMG:
swift build -c release
./Scripts/make-app.sh
./Scripts/make-dmg.shThe disk image is created at:
dist/release/MacSystemRecorder.dmg
Open the DMG, drag MacSystemRecorder.app onto the Applications shortcut, then open it from /Applications.
If your browser removes the zip as unsafe, download the DMG or PKG instead. The app is open source but not notarized yet, so macOS may still warn that it cannot verify the developer.
If the installer says it succeeded but you cannot find the app, check:
open /Applications/MacSystemRecorder.appThe app bundle is named MacSystemRecorder.app; Finder may display it as Mac System Recorder.
If macOS privacy permissions get stuck, quit MacSystemRecorder, remove any old entry from System Settings > Privacy & Security > Screen & System Audio Recording, reopen the app, and use Ask macOS from the permission panel.
Initialize and push the repository:
git init
git add .
git commit -m "Initial open source release"
git branch -M main
git remote add origin git@github.com:YOUR_USERNAME/MacSystemRecorder.git
git push -u origin mainMIT. See LICENSE.