Skip to content

Commit 359f0db

Browse files
jasonzh0claude
andcommitted
docs: expand README with overview, features, and how-it-works
Add project overview, feature breakdown (Capture/Compose/Export), the Install→Grant→Record→Export flow, auto-update notes, tech stack, download + product-page links, requirements, and license — sourced from the portfolio landing page. Correct the release note to the tag-triggered release.yml pipeline. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 77d49b4 commit 359f0db

1 file changed

Lines changed: 63 additions & 6 deletions

File tree

README.md

Lines changed: 63 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,53 @@
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

Comments
 (0)