Skip to content

Repository files navigation

PLANK

This is a fork of Sunshine/Moonlight with deep changes relevant to secure VFX Remote Desktop workflows.

Status:

Linux Host/Client stable. macOS Host is beta quality. macOS Client is alpha.

Hardware:

Ideal hardware for Ubuntu client would be an Intel based NUC generation 12 or higher, or an Intel N150 or higher mini-pc. These support hardware HEVC 10bit 4:4:4 decode.

INSTALL:

RockyLinux 9.7 Host: dnf install ./plank-host-X.XXXX.1.el9.x86_64.rpm

Ubuntu 26.04 Client:

apt-get install ./plank-client_1.0.89_amd64.deb

Uninstall:

RockyLinux 9.7 Host: dnf remove plank-host

Ubuntu 26.04 Client:

apt-get remove plank-client

macOS 27 Host:

sudo "/Applications/PLANK Host.app/Contents/Resources/uninstall.sh"

Configuration:

RockyLinux 9.7 Host: /etc/plank/host.conf [display] - If you are going to work hybrid, both in office with a physical display, and also remotely, leave startup_layout = physical. If you are going to work purely headless, startup_layout = virtual.

Ubuntu 26.04 Client: /etc/plank/client.conf

When creating a bookmark to macOS Host on the Client, make sure to chose “macOS” in the Capture field. It defaults to NvFBC which is for Linux.

Connectivity:

The current workflow expects a “direct connection”. There is no “broker”. You are expected to provide your own VPN/LAN/WAN/Port Forward connection from the Client to Host. The default is both TCP/UDP port 28989.

macOS Host has NOT been tested with Flame on Undies. Photoshop and Pixelmator both successfully receive Wacom pressure with the PTH-8x0 series, without the need for Wacom driver on the macOS host, when connecting from Ubuntu Client.

PLANK is a low-latency remote-workstation system with Linux and macOS Hosts and Clients. This repository builds independently of private infrastructure.

The project is in late integration and production hardening. The supported Linux baseline is currently a Rocky Linux 9.7 host with NVIDIA graphics and an Ubuntu 26.04 client. Hardware-sensitive behavior—including exact-format video, Wacom input, display topology, packet-loss recovery, and session takeover—must pass the repository's qualification gates before release.

Repository map

Path Purpose
apps/host/linux/ Host capture, encoding, authentication, display, and input services
apps/host/macos/ Native macOS capture, VideoToolbox encoding and session services
apps/client/ Client decoding, presentation, input, toolbar, and connection UI
protocol/ PLANK-owned transport, schemas, feature negotiation, and protocol documentation
packaging/<product>/<os>/ Product/platform installation integration
artifacts/packages/ Ignored packages grouped by version and operating system
tests/ Focused automated tests grouped by subsystem
probes/ Hardware and network qualification tools
scripts/ Reproducible build, packaging, and validation entry points
docs/ Architecture, security, build, and qualification documentation
third_party/ Pinned external source required by PLANK components

The Linux Host and shared cross-platform Client retain their upstream Git histories and license notices as submodules. macOS targets macOS 27 and Apple Silicon; its qualification gates are separate from Linux. Windows is future work, not a currently supported product. See the platform matrix.

Start here

Host RPMs and Client DEBs are built on separate, dedicated builder VMs. Do not infer build paths or dependencies from an arbitrary checkout; use the path contract and pinned inputs documented in the builder bootstrap and release runbook.

Qualification

The repository qualification build and automated test suite is:

source ~/.config/plank-builder/paths.env
qualification_build="$PLANK_WORK_ROOT/qualification"
cmake -S . -B "$qualification_build" -DCMAKE_BUILD_TYPE=RelWithDebInfo
cmake --build "$qualification_build" --parallel
ctest --test-dir "$qualification_build" --output-on-failure

Hardware tests and package acceptance require the additional procedures and qualified machines documented in the release runbook.

Licensing

PLANK contains components with different upstream histories and licenses. Preserve the license and attribution files in each maintained fork and vendored dependency. The PLANK transport boundary is AGPL-3.0-or-later.

About

PLANK source

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages