OpenNOW is a native macOS cloud gaming client for browsing, launching, streaming, and recording GeForce NOW sessions.
The repository contains a SwiftUI app target plus service, protocol, authentication, streaming, telemetry, and shared package modules. The visible frontend lives under OpenNOW/Views and includes:
- OAuth sign-in and branded loading surfaces
- Catalog home with a six-image hero rotation, game rails, search, filters, and detail panels
- Persistent favorites and library rails for quick game access across restarts
- Store ownership picker and launch/session overlays
- Native WebRTC streaming with input, microphone, audio, video enhancement, and diagnostics paths
- Local gameplay recordings with saved metadata and a recordings browser
- Settings for account, connections, gameplay, server location, upscaling, system, and diagnostics
OpenNOW- SwiftUI macOS app, views, view models, resources, and app servicesOPN.GameServices- GeForce NOW catalog, library, launch, session, and store ownership servicesOPN.WebRTC.Media- native WebRTC transport, stream surface, rendering, audio, input, and recording codeOPN.Common- shared stream preferences and common utilitiesOPN.Auth- authentication/session supportOPN.Telemetry- local logging and Sentry-backed telemetryOPN.SignalLinkKit- signaling supportGFN.*packages - protocol-specific GeForce NOW service modules
GFN.CloudMatchGFN.GDNGFN.JarvisGFN.LCARSGFN.NesAuthGFN.NetworkTestGFN.RagnarokGFN.StarfleetGFN.UDSOPN.AuthOPN.CommonOPN.GameServicesOPN.SignalLinkKitOPN.TelemetryOPN.WebRTC.Media
Build the macOS app from the repository root:
xcodebuild build -project OpenNOW.xcodeproj -scheme OpenNOW -configuration Debug -destination platform=macOS CODE_SIGNING_ALLOWED=NORun package tests from an individual package directory. For example:
cd OPN.WebRTC.Media
swift testUseful focused checks:
cd OPN.GameServices
swift testcd OPN.WebRTC.Media
swift test --filter WebRTCStreamRecordingPerformance audit entry points are documented under scripts/perf-audit/PERFORMANCE_AUDIT.md.
Use conventional commit prefixes such as fix:, feat:, docs:, test:, refactor:, style:, and chore:. Keep changes focused and verify the relevant package tests or app build before submitting changes.