11# CineScreen
22
3- Native macOS screen recording app — Swift / SwiftUI / Metal.
3+ > Cinematic screen recording for macOS — turn raw captures into polished product videos.
4+
5+ Native macOS screen recorder built in Swift, SwiftUI, and Metal. Capture any
6+ window, display, or region with ** ScreenCaptureKit** ; polish it in a per-frame
7+ timeline editor with smooth cursor motion, automatic zooms, and gradient
8+ backdrops; then export through an ** AVAssetWriter** pipeline that never drops a
9+ frame.
10+
11+ Free and open source (MIT) · macOS 14+ · Apple Silicon & Intel.
12+
13+ ** [ ⬇ Download for Mac] ( https://github.com/jasonzh0/CineScreen/releases/latest ) ** · [ Product page & demo] ( https://jasonzhang.dev/apps/cinescreen )
14+
15+ ## Features
16+
17+ ### 🎥 Capture — pixel-perfect ScreenCaptureKit
18+ Apple's native capture API drives every frame. Pick a window, a display, or a
19+ region — CineScreen pipes the raw stream straight into a Metal compositor.
20+
21+ ### ✨ Compose — polish without thinking
22+ Smooth cursor motion, automatic click highlights, and zoom keyframes you tune
23+ in the timeline. Style recordings with gradient backdrops, padding, and rounded
24+ window chrome.
25+
26+ ### 📦 Export — AVAssetWriter, no compromises
27+ A dedicated export compositor renders the final video offline at a locked frame
28+ rate. ProRes or H.264, no dropped frames, signed and notarized ` .dmg ` .
29+
30+ ## How it works
31+
32+ A whole studio in your menu bar. CineScreen sits quietly until you need it — tap
33+ record, pick a window, and the editor opens with your clip already loaded.
34+
35+ 1 . ** Install** — drag CineScreen into Applications; the menu-bar icon appears on first launch.
36+ 2 . ** Grant access** — enable Screen Recording for CineScreen in System Settings, then relaunch.
37+ 3 . ** Record** — open the floating control bar, pick a window or display, hit record. Stop, and your clip drops straight into the editor.
38+ 4 . ** Export** — style, scrub, and tune; the Metal compositor renders every frame offline at a locked frame rate.
39+
40+ ## Auto-updates
41+
42+ CineScreen updates itself in place via [ Sparkle] ( https://sparkle-project.org ) .
43+ Because the app is replaced at its existing path, macOS keeps the Screen
44+ Recording / Accessibility permissions you already granted — ** no re-granting
45+ after updates** . The app verifies each download against an embedded EdDSA key
46+ before installing. See [ docs/UPDATES.md] ( docs/UPDATES.md ) for the full pipeline.
47+
48+ ## Tech stack
49+
50+ ` Swift 5.9 ` · ` SwiftUI ` · ` Metal ` · ` ScreenCaptureKit ` · ` AVFoundation ` · ` AVAssetWriter ` · ` AppKit ` · [ ` Sparkle ` ] ( https://github.com/sparkle-project/Sparkle )
451
552## Bootstrap
653
@@ -36,7 +83,10 @@ xcrun notarytool store-credentials cinescreen-notary \
3683 --password APP-SPECIFIC-PASSWORD
3784```
3885
39- CI handles signing + notarization in ` .github/workflows/build.yml ` .
86+ ** Cutting a release:** bump ` MARKETING_VERSION ` in ` project.yml ` , commit, then push a
87+ ` vX.Y.Z ` tag. The ` .github/workflows/release.yml ` pipeline signs with Developer ID,
88+ notarizes, publishes the GitHub Release, and deploys the Sparkle appcast to GitHub
89+ Pages — which auto-updates existing users.
4090
4191## Layout
4292
@@ -45,9 +95,10 @@ CI handles signing + notarization in `.github/workflows/build.yml`.
4595├── project.yml # XcodeGen spec
4696├── Makefile # build/sign/notarize targets
4797├── exportOptions.plist # xcodebuild -exportArchive options
48- ├── scripts/
98+ ├── scripts/ # make_release.sh (archive→sign→notarize→DMG/appcast)
99+ ├── docs/ # UPDATES.md (Sparkle auto-update setup)
49100└── CineScreen/
50- ├── App/ # @main + root views
101+ ├── App/ # @main + root views, Sparkle updater
51102 ├── Capture/ # ScreenCaptureKit + mouse tracking
52103 ├── Compositor/ # Metal renderer
53104 ├── ControlBar/ # floating control bar window
@@ -61,6 +112,12 @@ CI handles signing + notarization in `.github/workflows/build.yml`.
61112 └── Resources/ # Assets.xcassets, Info.plist, entitlements
62113```
63114
64- ## Min macOS
115+ ## Requirements
116+
117+ macOS 14 (Sonoma) or later · Apple Silicon & Intel.
118+
119+ ## License
65120
66- 14.0 (Sonoma).
121+ MIT — see [ LICENSE] ( LICENSE ) .
122+ </content >
123+ </invoke >
0 commit comments