Install a Client
Install, update and remove the Punktfunk app on the device you stream to — Linux, Steam Deck, Windows, macOS, iPhone, iPad, Apple TV or Android.
Install the Punktfunk app on the device you stream to, then pair it with your host once. To pick between the apps, see Clients.
These links are the stable channel. For builds of main, see Release Channels.
Pick your device
| Device | Install |
|---|---|
| Linux desktop or laptop | Flatpak, or the apt, dnf or pacman package |
| Steam Deck | Decky plugin for Gaming Mode, Flatpak for Desktop Mode |
| Windows 10 or 11 (x64, Arm64) | Installer |
| Mac (macOS 14+) | .dmg |
| iPhone, iPad, Apple TV (17+) | TestFlight |
| Android 9+ phone or TV | Google Play or APK |
| LG webOS TV | Community client |
| Anything else | Moonlight |
Linux desktop (Flatpak)
Works on any distro with Flatpak:
flatpak install --user https://flatpak.unom.io/io.unom.Punktfunk.flatpakref
flatpak run io.unom.PunktfunkUpdate with flatpak update, without sudo: sudo only updates system installs and skips this
one.
To use your package manager instead, add the Punktfunk repo from your distro's guide, then:
| Distro | Install |
|---|---|
| Ubuntu 26.04 or newer | sudo apt install punktfunk-client (packaging/debian) |
| Fedora 43 or newer | sudo dnf install punktfunk-client (Fedora) |
| Arch | sudo pacman -Syu punktfunk-client (Arch Linux) |
| Bazzite, Fedora Atomic | Use the Flatpak. Layering with rpm-ostree install punktfunk-client slows every OS update (Bazzite). |
On Ubuntu 24.04, Debian and older distros the client package can't install: use the Flatpak.
Open Punktfunk from your app menu, or Punktfunk Console for the controller interface. Every
package, the Flatpak included, also installs the punktfunk command
for scripts.
Steam Deck
For Gaming Mode, install the Decky plugin. It uses the Flatpak client, so install that too, in Desktop Mode:
flatpak install --user https://flatpak.unom.io/io.unom.Punktfunk.flatpakrefWindows
-
Download the installer. In PowerShell:
curl.exe -LO https://git.unom.io/api/packages/unom/generic/punktfunk-client-windows/latest/punktfunk-client-setup_x64.exeOn an Arm device, use
_arm64in place of_x64. The file is also on every release. -
Run it. No admin prompt: it installs to
%LOCALAPPDATA%\Programs\Punktfunk, registerspunktfunk://links, putspunktfunkon your PATH and fetches the Windows App Runtime if it's missing. -
Open Punktfunk from the Start menu, or Punktfunk Console for the controller interface (x64 only: the Arm64 build has no console yet).
Steam overlay and Big Picture. In Steam, Add a Non-Steam Game and browse to
%LOCALAPPDATA%\Programs\Punktfunk\punktfunk-client.exe (or punktfunk-console.exe).
Portable zip and MSIX. The same build ships as
…/latest/punktfunk-client-windows_x64-portable.zip (unzip and run punktfunk-client.exe; no
links, no PATH entry) and …/latest/punktfunk-client-windows_x64.msix
(Add-AppxPackage .\punktfunk-client-windows_x64.msix). Both need the
Windows App Runtime 2.x. The
MSIX can't be added to Steam.
macOS
- Download
Punktfunk-<version>.dmgfrom the releases page. - Open it and drag Punktfunk to Applications.
The Mac app is also in the TestFlight beta.
iOS, iPadOS, Apple TV
Install Apple's TestFlight app, then join the Punktfunk beta. One build covers iPhone, iPad, Apple TV and Mac.
Android
Get Punktfunk on Google Play. The same app runs on phones, tablets and Android TV.
To skip Play, install the signed APK:
https://git.unom.io/api/packages/unom/generic/punktfunk-android/latest/punktfunk-android.apkFor canary builds, join the beta from the app's Play listing (open testing, anyone can join), or
use canary in place of latest in the APK link.
LG webOS TV (community)
pf-webos is built by
dyptan-io, not the Punktfunk team. Report its bugs on
its repo.
- Turn on Developer Mode on the TV and install the Homebrew Channel (guide).
- Download the latest
.ipkfrom the pf-webos releases. - Install it with
ares-install, or copy it to the TV and install it from the Homebrew Channel. - Open Punktfunk from the TV's launcher.
Keeping a client up to date
A client and a host don't need the same version. To update the host, see Updating.
| Client | Update |
|---|---|
| Flatpak | flatpak update, without sudo |
| apt, dnf, pacman | Your normal system upgrade, or punktfunk-client --apply-update |
| Fedora Atomic, layered | See below |
| Windows installer | Run the newer installer. Hosts and pairing are kept. |
| Windows MSIX or portable | Add the newer .msix, or unzip the newer build over the old one |
macOS .dmg | Drag the newer app over the old one |
| iPhone, iPad, Apple TV | TestFlight |
| Android | Google Play. For the APK, install the newer one over it. |
| Steam Deck (Decky) | The panel's update button: Steam Deck → Updating |
| LG webOS | Install the newer .ipk |
Fedora Atomic with a layered client. rpm-ostree upgrade doesn't pick up a newer client while
the base image is unchanged. Run this, then reboot:
sudo rpm-ostree refresh-md --force
sudo rpm-ostree update --uninstall punktfunk-client --install punktfunk-clientMoving from the MSIX to the installer. Remove the MSIX first, then run the installer. The MSIX takes its saved hosts and pairing with it, so pair again once:
Get-AppxPackage unom.Punktfunk | Remove-AppxPackageThe Linux client can update itself
punktfunk-client --check-update # installed vs available on this box's channel
punktfunk-client --apply-update # install it--check-update exits 0 when up to date, 10 when an update is available, and 1 when it
couldn't tell. Add --json for machine-readable output. --apply-update needs you in the
punktfunk-update group (no re-login needed):
sudo usermod -aG punktfunk-update $USERA Flatpak client updates with flatpak update instead.
Removing a client
See Uninstalling → Clients: the command for each client, and what stays behind on the device and the host.
Switching from Sunshine, Apollo or Vibeshine
Run Punktfunk next to your existing Sunshine-family host while you try it — one port to move — then what maps to what, and how to migrate for good.
Pairing & Trust
Admit a new device once — approve it from the web console or type a PIN — and it reconnects on its own from then on.