Skip to content

Repository files navigation

Hearthline app icon

Hearthline

Native macOS game streaming for Hermes, Sunshine, and GameStream-compatible hosts.
Français

Hearthline host and application selection

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.

Features

  • 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/v1 API
  • Launching of applications advertised by the GameStream host

Requirements

  • macOS 15 or later
  • Xcode 16 or later with command-line tools
  • Homebrew

Install and run

Clone the repository with its submodules, then run:

git clone --recurse-submodules https://github.com/DrapNard/Hearthline.git
cd Hearthline
./scripts/bootstrap-macos.sh

The 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.sh

The first build can take a few minutes. A local build doesn't require an Apple Developer account.

Use

  1. Open the app and add a Hermes or Sunshine host.
  2. Select Pair, then enter the displayed PIN in your host's interface.
  3. Select an application advertised by the host and start streaming.
  4. Click the video surface to capture the mouse. Press Ctrl + Option + Esc to 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.

Architecture

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.

Development

The Xcode project is described in project.yml and can be regenerated with:

xcodegen generate

Before opening a pull request, run:

./scripts/check-build-settings.sh
./scripts/build-macos.sh

Read CONTRIBUTING.md for contribution guidelines.

Dependencies and license

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.

About

Native macOS game streaming client for Hermes, Sunshine, and GameStream-compatible hosts.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages