why goq
-
Your key is the address
The FIDO2 key's hmac-secret seeds the iroh identity. Host and client derive the same node ID from the same physical key. No pairing codes, no accounts.
-
Headless Sigil host
A pure-Rust daemon on bare-metal Linux, no desktop, no display. Gamescope runs a private SteamOS session; PipeWire feeds a hardware H.264 encoder.
-
Controller-first
A virtual Xbox-style gamepad, keyboard, and relative mouse injected via uinput. D-pad PIN pad and a Back+Start escape chord, built for a couch.
-
Audio included
PipeWire capture to Opus in bounded datagrams, played back through an AudioWorklet next to the WebCodecs picture.
-
Bounded everything
Frame handoff capped at four, decode queue at two, every buffer bounded. Stale frames are dropped, not queued, so latency never drifts.
-
One host, one client
A single active client, enforced, over an end-to-end encrypted iroh link, relay-assisted when a direct path isn't possible. No third-party streaming service.
hardening next
The first target stays deliberately narrow: hardware H.264 at 1280×800/60. These are the promoted steps from a proven stream to one that adapts without accumulating latency.
-
promoted · transport
Iroh/MoQ media objects
Prioritized, cancellable video objects with explicit GOP boundaries and keyframe recovery. Input remains independent.
-
promoted · control
Adaptive bitrate
Feed RTT, loss, backpressure, and decode backlog into a bounded controller with measured recovery and no queue growth.
-
promoted · motion
Motion-sensitive resolution
Favor fresh, smooth motion at lower resolution, then restore detail after motion settles without breaking pointer mapping.
-
promoted · codec
Auto Codec
Select from end-to-end hardware support and measured latency. H.264 remains the safe baseline; compression ratio alone never wins.
how it works
- Steam and your game
- headless Gamescope session
- PipeWire video + audio capture
- hardware H.264 + Opus encode
- native iroh endpoint
- WebCodecs + AudioWorklet
- picture and sound appear
- controller, keyboard, mouse
- Paired by your FIDO2 security key: same key, same address. No passwords, no accounts.
- One host, one client. Media and input ride separate end-to-end encrypted iroh connections.
- Every queue bounded. Stale frames are dropped, not queued, so it never drifts behind.
three taps to steam
-
provision sigil
Run the Sigil setup command on a dedicated AMD Bazzite machine. It accepts only signed runtime packages; Gamescope becomes the headless display.
-
open portal
Download a signed Portal build on your client machine. Tap your FIDO2 key; the D-pad PIN pad keeps onboarding couch-friendly.
-
tap to play back+start
Tap the same key anywhere else: SteamOS appears, your controller just works. Hold Back+Start for a second to escape the session.
You'll need a FIDO2 key with hmac-secret support (YubiKey, Google Titan, …) and an AMD Bazzite machine for Sigil. The first signed Portal release targets macOS; other client packages remain source builds until they receive an equally strict release path. Runbook and source →