Native macOS game streaming for Hermes, Sunshine, and GameStream-compatible hosts.
Français
Project status — experimental. Video streaming and input support are still being refined. Use Hearthline only on a trusted network; it isn't production-ready yet.
- Hardware H.264 and HEVC decoding through VideoToolbox (NV12 and P010)
- Low-latency Metal presentation with BT.709 SDR and BT.2020/PQ HDR
- Up to 120 Hz and ProMotion display support
- Keyboard, mouse, controller, and haptic support through Apple frameworks
- GameStream PIN pairing, persistent client identity, and pinned host certificates
- Host discovery and session preparation through the Hermes
/api/hestia/v1API - Launching of applications advertised by the GameStream host
- macOS 15 or later
- Xcode 16 or later with command-line tools
- Homebrew
Clone the repository with its submodules, then run:
git clone --recurse-submodules https://github.com/DrapNard/Hearthline.git
cd Hearthline
./scripts/bootstrap-macos.shThe script installs the required development dependencies, initializes the pinned moonlight-common-c submodule, generates the Xcode project, and opens it.
To build without a development-signing identity:
./scripts/build-macos.shThe first build can take a few minutes. A local build doesn't require an Apple Developer account.
- Open the app and add a Hermes or Sunshine host.
- Select Pair, then enter the displayed PIN in your host's interface.
- Select an application advertised by the host and start streaming.
- Click the video surface to capture the mouse. Press
Ctrl+Option+Escto release it.
Pairing credentials are stored locally. Never share your credential vault or Application Support data.
When updating from Hestia Native, Hearthline automatically migrates the credential vault and preserves the existing GameStream identifier.
Hermes / Sunshine
│
├─ Hermes API ─────────────────── HermesKit
└─ GameStream (RTP/FEC/crypto) ─ moonlight-common-c
│
GameStreamBridge
│
StreamCore
┌──────────────────────┴──────────────────────┐
│ │
AppleMedia AppleInput
VideoToolbox + Metal GameController + AppKit
For design decisions and known limitations, see the architecture and bring-up guide.
The Xcode project is described in project.yml and can be regenerated with:
xcodegen generateBefore opening a pull request, run:
./scripts/check-build-settings.sh
./scripts/build-macos.shRead CONTRIBUTING.md for contribution guidelines.
Hearthline is distributed under GPL-3.0-or-later. Its transport layer comes from moonlight-common-c, pinned as a Git submodule; its notices and license are preserved with its sources. Read NOTICE.md before redistributing.
This project is not affiliated with or endorsed by NVIDIA, Moonlight, Sunshine, or Hermes.
