Cinematic screen recording for macOS — turn raw captures into polished product videos.
Native macOS screen recorder built in Swift, SwiftUI, and Metal. Capture any window or display with ScreenCaptureKit; polish it in a per-frame timeline editor with smooth cursor motion, automatic zooms, and gradient backdrops; then export through an AVAssetWriter pipeline that never drops a frame.
Free and open source (MIT) · macOS 14+ · Apple Silicon & Intel.
⬇ Download for Mac · Product page & demo
Apple's native capture API drives every frame. Pick a window or a display — CineScreen pipes the raw stream straight into a Metal compositor.
Smooth cursor motion, automatic click highlights, and zoom keyframes you tune in the timeline. Split and remove sections, change their playback speed, and undo edits. Style recordings with cinematic gradient lighting, adjustable soft shadows, padding, and rounded corners; save a reusable look preset. Timeline thumbnails and audio peaks help navigate recordings.
Preview and export share one Metal frame compositor. The export pipeline renders the final video offline at a locked frame rate. Export H.264 MP4 or GIF with aspect presets and crop controls. MP4 keeps audio aligned across cuts and speed changes, with gain and mute controls.
Tap record, pick a window or display, and the editor opens with your clip already loaded.
- Install — drag CineScreen into Applications and launch it.
- Grant access — enable Screen Recording for CineScreen in System Settings, then relaunch.
- Record — open the floating control bar, pick a window or display, hit record. Stop, and your clip drops straight into the editor.
- Export — style, scrub, and tune; the Metal compositor renders every frame offline at a locked frame rate.
CineScreen updates itself in place via Sparkle. Because the app is replaced at its existing path, macOS keeps the Screen Recording / Accessibility permissions you already granted — no re-granting after updates. The app verifies each download against an embedded EdDSA key before installing. See docs/UPDATES.md for the full pipeline.
Swift 5.9 · SwiftUI · Metal · ScreenCaptureKit · AVFoundation · AVAssetWriter · AppKit · Sparkle
Prereqs: macOS 14+, Xcode 15+, XcodeGen.
brew install xcodegen
make project # generate CineScreen.xcodeproj from project.yml
make open # open in XcodeCineScreen.xcodeproj is gitignored — it's regenerated from project.yml. Edit project.yml (not the pbxproj) when adding files or changing settings.
make build # debug build (current arch)
make build-release # release build (universal)
make archive # xcarchive for distribution
make export # signed .app from archive
make dmg # package .app into .dmg
make notarize # submit DMG to Apple and staple
make release # full pipeline
make clean # nuke build/ and CineScreen.xcodeprojFor local notarization, run once:
xcrun notarytool store-credentials cinescreen-notary \
--apple-id YOU@example.com \
--team-id JAT3GYBPJ4 \
--password APP-SPECIFIC-PASSWORDCutting a release: bump MARKETING_VERSION in project.yml, commit, then push a
vX.Y.Z tag. The .github/workflows/release.yml pipeline signs with Developer ID,
notarizes, publishes the GitHub Release, and deploys the Sparkle appcast to GitHub
Pages — which auto-updates existing users.
See the maintenance guide for module ownership, resource-lifetime rules, audit findings and remaining cleanup areas.
.
├── project.yml # XcodeGen spec
├── Makefile # build/sign/notarize targets
├── exportOptions.plist # xcodebuild -exportArchive options
├── scripts/ # make_release.sh (archive→sign→notarize→DMG/appcast)
├── docs/ # UPDATES.md (Sparkle auto-update setup)
├── Tests/ # CineScreenTests unit tests (`make test`)
└── CineScreen/
├── App/ # @main + root views, Sparkle updater
├── Capture/ # ScreenCaptureKit + mouse tracking
├── Compositor/ # Metal renderer
├── ControlBar/ # floating control bar window
├── Editor/ # SwiftUI editor + per-frame state
├── Export/ # AVAssetWriter export pipeline
├── MainWindow/ # projects library, settings
├── Models/ # metadata + project structs
├── Projects/ # project library on disk
├── Util/
└── Resources/ # Assets.xcassets, Info.plist, entitlements
macOS 14 (Sonoma) or later · Apple Silicon & Intel.
MIT — see LICENSE.