Kyber release 0.27

“Release of our 0.27 version, containing 3 major updates : clipboard upgrade, openID connect and media pipeline optimization, and many small improvements.”
Kyber 0.27!
Kyber 0.27 is out.
This release focuses on multi-client streaming: several people can now connect to the same host at once. The web client also catches up on authentication with OIDC, gains a live latency graph, and both clients let you decide whether they reconnect on their own.
Here are the highlights.
Several people, one machine
Until now a Kyber host served one client at a time. In 0.27 it serves as many as you point at it.
The trick is that the host still captures and encodes each display only once. That single stream is then duplicated and handed to everyone watching, so a second or third viewer costs the host almost nothing in GPU or CPU. Someone joining halfway through gets a fresh keyframe on arrival, so their window fills with picture straight away instead of showing garbage until the next keyframe comes around naturally.
This is on by default. If you want the old behaviour back — one client, everyone else refused — set `multi_client = false` in the `[kycontroller]` section of `kyber_config.toml`, and a second login will be turned away with a clear message instead of quietly joining.
Two things to know before you rely on it. The first client to connect decides the stream settings, so a later client asking for a different codec or bitrate gets what the first one asked for. And the legacy RTP backend is not available in shared mode.
Sign in with your company account (OIDC), in the browser
0.26 brought OIDC to the desktop client and the server. 0.27 ports it to the browser.
Pick OIDC as the authentication method, click Connect, and your identity provider takes over — Keycloak, Auth0, Authelia, or anything else that speaks the standard. By default it opens in a popup; untick the box and you get a full-page redirect instead, which comes back with your original settings intact and connects on its own. The token renews itself about a minute before it expires, so a long session doesn't get thrown out halfway through.
Where is my latency actually going?
"It feels laggy" is a hard complaint to act on. The web client can now answer it.
Turn metrics on before connecting and the sidebar shows a live graph of every stage a frame passes through, from captured on the host to displayed in your browser. Above it sits a total latency figure split three ways: time spent on the server, time on the network, time in your own browser. If the network number dominates, it's your link. If the server number dominates, it's the host's encoder. If the client number dominates, it's your machine struggling to decode.
Individual stages can be switched on and off, and the graph can be popped out of the sidebar into a floating overlay on top of the video. It is off by default — this is a diagnostic tool, not something you need running day to day.
Reconnection is now your choice
Both clients have retried on their own after a dropped connection for a while now: ten attempts, one second apart, with the status showing which attempt it is on.
That is still the default, and still what you want most of the time. What is new is the off switch. The desktop client takes `--auto-reconnect=false`, and the web client has an Auto reconnect checkbox in the Connection section of the sidebar. On a kiosk, a demo screen or a scripted test, a client that quietly keeps retrying hides the real problem — now it can fail loudly instead.
Copy and paste with Linux hosts
0.26 gave the Linux client its half of clipboard support. The host side was missing, so copying text on a remote Linux desktop did nothing at all.
That gap is closed. Plain text and HTML now travel in both directions with X11 hosts, the same as they already did with Windows. Administrators who want to allow only one direction can restrict it per host in the configuration.
Controllers work properly again on Windows hosts
An earlier change had Kyber's virtual gamepad report the real controller's USB identifiers to the Windows host, on the theory that games would recognise it better. They did not. A DualSense would fire off button presses nobody had pressed, and Xbox controllers newer than the 360 pad stopped working entirely when connecting from a Linux desktop or from the browser.
That change is reverted. The host once again sees a standard Xbox 360 pad or a standard DualShock 4, which everything recognises.
Reliability fixes
kycontroller : he host no longer insists that its configuration file sit next to its own executable. `kycontroller --config /etc/kyber/kyber_config.toml` points it at a file directly. `KYBER_CONFIG` does the same through the environment, and the first process to resolve it passes the absolute path down, so the controller, the capture server and the input server all read the same file instead of each hunting for its own. `KYBER_LOG_DIR` puts logs somewhere writable. And a new `webclient` setting serves the browser client from a folder of your choosing. If you mistype a path, Kyber now stops with an error instead of quietly starting on default settings — which used to look exactly like "my configuration is being ignored".
kyservice : On Windows, the background service that launches the host into your desktop session was handing Windows a pointer to memory it had already released. The symptom was a host that occasionally just failed to start after a boot or a service restart, with nothing obviously wrong to point at. Fixed.
kyclient : The client used to keep its window open "waiting for reconnection" after it had already given up retrying, leaving you looking at a frozen last frame that would never come back. It now closes when a session is genuinely over, and reports real retries as retries.
libkypc : Helper processes are now killed as soon as the host drops their handle. Orphaned capture processes still holding the display and the GPU encoder after a session ended should be a thing of the past.
Upgrade
Kyber 0.27 is available now.
Head to the downloads page to get the latest version, or pull the updated packages through your usual channel.
Feedback and bug reports are welcome on our discord space .