punktfunk-client
| Version | 2026.242.1635 |
| Repo | box/github.com/opencharly/layer-punktfunk-client:v2026.243.1116 |
The punktfunk streaming client: the punktfunk-client package and the
headless punktfunk CLI it ships, installed from unom’s signed pacman repo on
Arch/CachyOS.
Sibling of the punktfunk host candy, and deliberately the other half of it.
The host candy proves punktfunk installs and answers; this one exists so a
second system can actually pair with a host and pull a stream — the thing no
single-node bed can demonstrate.
What lands
Section titled “What lands”| Item | Value |
|---|---|
| Package | punktfunk-client |
| Repo | [punktfunk] in /etc/pacman.conf, SigLevel = Required DatabaseOptional |
| Key | fetched + pacman-key --lsign-key’d; fingerprint E0CA04465C99C936E0B0C6510A317015A34DDD69 |
| CLI | punktfunk — the headless client, driven by /charly-check:punktfunk’s client methods |
| Distros | Arch and CachyOS — one distro.arch: section; the cachyos base declares distro: [cachyos, arch] |
The repo and key are byte-identical to the host candy’s on purpose: that half is already proven by the host beds, so anything that breaks here is the package, not the repo plumbing.
punktfunk is the control CLI; punktfunk-client is the renderer
Section titled “punktfunk is the control CLI; punktfunk-client is the renderer”The package ships three binaries, and they are not interchangeable:
| Binary | Links | Role |
|---|---|---|
punktfunk |
libgcc, libm, libc — nothing else | control CLI |
punktfunk-client |
137 objects: libvulkan, libwayland-*, libdrm, libgbm | the decoder |
punktfunk-session |
— | session host |
Everything that only talks to a host — pair, hosts list, library,
reachable, wake — runs on the control binary and needs no display. But
launch and open spawn the renderer, which is a Wayland client and needs
both a compositor in the venue and a hardware Vulkan ICD. A venue that only ever
pairs can stay a plain container; a venue that must pull a stream cannot.
This is worth stating explicitly because the failure is silent in a misleading
way: with no decoder reachable the client advertises codec 0x00, the host
answers no shared video codec: client advertised 0x00, host can emit 0x01, and
the message reads like a host or driver defect. It is neither — it is the client
accurately reporting that it has nothing to decode with.
The CLI is the point
Section titled “The CLI is the point”punktfunk-client installs the headless punktfunk binary documented at
https://docs.punktfunk.unom.io/docs/clients: hosts list --probe, pair,
launch, library --json, speed-test, open --yes, wake, reachable,
profiles list, reset. Drive it through the punktfunk: verb’s client
methods rather than a command: step — the verb maps the CLI’s documented exit
codes (2 connection failed, 3 trust rejected, 4 renderer failed, 5 no match,
6 interactive required) to distinct verdicts, and keeps a pairing PIN on stdin
instead of argv.
Cross-References
Section titled “Cross-References”/charly-check:punktfunk— the verb, including the client methods/charly-image:layer— candy authoring (thedistro:cascade)
Acceptance plan
Section titled “Acceptance plan”This candy’s plan: — the runnable spec charly check executes against a live deployment. check: steps are idempotent probes; run: steps change state.
| Intent | Step |
|---|---|
check |
the headless punktfunk client CLI is installed |
check |
the punktfunk-client package is recorded in the package database |
check |
the punktfunk repo stanza is present in pacman.conf |
check |
the punktfunk release key is imported AND locally signed in the pacman keyring |
check |
the client CLI answers, so the venue can drive a host |
check |
the renderer binary is installed, not just the control CLI |
check |
the renderer links a Vulkan loader, so it can reach a decoder |
check |
at least one hardware Vulkan ICD is installed |
check |
the venue’s Vulkan stack advertises H.264 decode |