StreamTweak is the host-side half of the FoggyBytes streaming duo. It automates the technical setup that makes Moonlight game streaming reliable โ NIC throttling, spatial audio, HDR, game library sync, session telemetry, NVIDIA driver protection โ so you can focus on playing. Paired with its companion client StreamLight, the two apps form a tight, end-to-end streaming stack: configuration, telemetry, store metadata and Tailscale presence flow seamlessly between host and client over a local TCP bridge, with no manual setup on either side.
Works with Moonlight, Sunshine, Apollo, Vibeshine, and Vibepollo on Windows 10 21H2 and later. For full integration (remote Windows Update, Tailscale, live charts, store badges, host metrics, NIC control from the client) pair StreamTweak 7.3.2 with StreamLight 3.3.0 on the client PC.
๐ Authenticated bridge (7.1.0+). The hostโclient bridge now only accepts commands from StreamLight devices you have explicitly approved (a one-time prompt shows a 4-digit PIN to confirm against the one on the device). Authorization never affects streaming โ it only gates the StreamTweakโStreamLight integration: host metrics overlay, NIC speed & one-click Streaming Mode, store badges on covers, session quality reports & live charts, Tailscale, and remote pause. Requires StreamLight 3.1.0 or later; update both apps together. You can turn it off in Settings โ Bridge security to pair with older clients during the transition.
โ ๏ธ Installer warning: Windows SmartScreen may flag the installer because it lacks a commercial code-signing certificate. Choose Keep / Keep anyway. Full source code is available in this repository.
๐ Network
- Auto Streaming Mode โ monitors Sunshine/Apollo/Vibeshine/Vibepollo logs and throttles the host NIC to 1 Gbps on client connect; restores the original speed on disconnect. Fixes the bufferbloat-induced latency spikes caused by host/client NICs negotiating at mismatched speeds (e.g. 2.5 Gbps vs 1 Gbps)
- Manual streaming control โ one-click throttle/restore without waiting for log events
- UAC-free โ a LocalSystem Windows Service handles all NIC speed changes (and host-assets writes) via Named Pipe; no prompts ever
- Tailscale detection โ the Network tab shows the host's Tailscale IP with a copy button. Combined with StreamLight 3.3.0+ the client tracks the host's Tailscale address on a single unified tile for remote streaming with no port forwarding (see Paired Features below)
๐ฅ๏ธ Display
- HDR toggle per monitor โ enable or disable HDR from StreamTweak without opening Windows Settings
- Auto HDR toggle โ toggle Windows Auto HDR system-wide; change broadcast instantly to running apps
๐ก๏ธ NVIDIA Sentinel (new in 7.0.0, NVIDIA GPUs only)
- Profile snapshot โ capture the NVIDIA global driver profile to a
.nipfile (the same format NVIDIA Profile Inspector uses) with one click, restore it, or clear it. The header shows the driver package (Game Ready / Studio), version and release date - Auto-restore โ arm the toggle and StreamTweak watches the driver settings database (
FileSystemWatcher+ 5-second polling) and silently re-applies your saved profile within seconds whenever NVIDIA App resets it; every restore is logged to%LocalAppData%\StreamTweak\nvidia-restore.log - Readable settings panel โ a collapsible terminal-style view lists each customized setting with its NVIDIA label (e.g. "Force on", "Medium") and the real installed DLSS SR / RR / FG versions
- No external dependency โ built on a native port of NVIDIA Profile Inspector's DRS layer (MIT, ยฉ Orbmu2k), decrypter included, so encrypted "internal" settings (DLSS overrides, Shader Cache) are captured and restored correctly. The sidebar entry is greyed out on AMD / Intel
๐ง Audio
- Auto spatial audio โ activates Dolby Atmos for Headphones or Windows Sonic shortly after session start, on the output device of your choice
- Output device selector โ any audio render device; Steam Streaming Speakers pre-selected when present
- Live availability indicators โ green/red dot per format per device before activation
๐๏ธ Streaming App Manager
- Auto kill & relaunch โ define apps to terminate at session start and relaunch at session end (e.g. Hue Sync, RGB suites)
- Per-app AutoManage toggle โ exclude individual apps from automation without removing them from the list
๐ฎ Game Library Sync
- Multi-store discovery โ Steam, Epic Games, GOG, Ubisoft Connect, Xbox / Game Pass, EA App, Battle.net
- Native cover art โ fetched from each store's CDN and cached locally as PNG
- Safe sync โ manually created Sunshine entries are never touched; uninstalled games removed on next sync
- Manual game management โ Add any executable not auto-detected; remove individual entries with the Remove button
- Host tile replacement (new in 6.3.0) โ replace the default Desktop and Steam tiles in the streaming server's assets folder with StreamTweak-bundled PNGs and revert them on demand, fully reversible, no UAC prompt
๐ Session History & Telemetry
- Full session log โ every session recorded with duration, RTT avg, frame drops %, detected games and covers (unlimited as of 6.3.0)
- Quality report โ click any session row to open a telemetry overlay: CLIENT stats, HOST stats, four sparkline charts (RTT, drops, bitrate, decode latency), and a quality grade (Excellent / Good / Poor)
- Live session panel on Home โ while a stream is active, the Home card shows real-time RTT and Bitrate sparklines and a running drop-rate percentage
- Home dashboard โ 3ร3 grid of status tiles for all managed settings at a glance, plus a Logs tile showing the cumulative streaming time across the full session history
These features cross the bridge and require both apps. The version next to each one is the minimum StreamLight version that consumes the feature on the client side.
- NIC control from the client (StreamLight 1.0+) โ StreamLight sends
PREPAREover the bridge before connecting, with a built-in countdown and auto-revert - Host metrics in overlay (StreamLight 1.2.0+) โ live GPU %, encoder %, GPU temp, VRAM, CPU %, and network TX served via the
STATScommand - Store badges on game covers (StreamLight 2.0.0+) โ the per-game store map is served via the
APPSTOREScommand, so each cover in the client shows the right badge (Steam, Epic, GOG, Ubisoft, Xbox, Battle.net, EA App) - Session quality reports (StreamLight 2.1.0+) โ client-side telemetry streamed every second to StreamTweak, which computes the grade and the sparklines
- Live session charts (StreamLight 2.3.1+) โ 1-second SESSIONDATA cadence drives the live charts on the Home page
- Remote session pause (StreamLight 2.3.0+) โ a Pause button on the Home page stops the active stream on the client side, piggybacked on the existing
STATSpolling channel - Remote host power-off (StreamLight 3.2.0+) โ an approved client can shut down the host PC (or this client, or both) from a Powerโฆ chooser, over the authenticated
SHUTDOWNcommand. Destructive, so it only ever fires with a verified signature from an approved device - Tailscale presence (StreamLight 3.0.0+; unified into a single tile in 3.3.0) โ after the client pairs with the host via its LAN IP, it queries the new
TAILSCALEcommand. If StreamTweak detects a Tailscale adapter in the CGNAT100.x.y.zrange, StreamLight records that address on the host's single tile (which now tracks both the LAN and Tailscale IPs, with aTAILSCALE ยท AVAILABLEbadge) and offers a Tailscale option to open the host's apps over the100.xendpoint โ so streaming from outside the LAN is one click away, no port forwarding. On the client side, StreamLight can also auto-start Tailscale at launch, completing the round-trip - Remote Windows Update (StreamLight 3.3.0+, headline of this release pair) โ an approved client can scan and install Windows updates on the host and reboot it, or install pending updates as part of Update and shut down โ all from the client, no keyboard on the host. The privileged Windows Update work runs in the LocalSystem service; see What's New in 7.3.0 below
- Metadata for non-Steam games โ developer and release date for titles that aren't on Steam (Epic exclusives like Alan Wake 2) are now filled from Wikidata โ the real studio and release date, no API key โ instead of N/A. Steam stays the primary source; Wikidata is only a fallback for what Steam can't provide
- Sharper cover art โ Ubisoft Connect and Battle.net games now fetch a proper portrait cover from Steam when the title exists there, replacing the low-resolution square (Battle.net) or landscape (Ubisoft) art from those launchers โ e.g. Diablo IV, Assassin's Creed Shadows. Falls back to the launcher art if the game isn't on Steam. Also fixed cover matching for names with a โข/ยฎ symbol (e.g. Diabloยฎ IV)
- Steadier Home dashboard โ the Streaming Session card keeps the same height whether a stream is live or has just ended, so the page no longer resizes when a session stops; the recovered space shows the last session's game covers larger. The NIC Speed value is now always shown in green
- Security hardening โ the host service's directory whitelist (used when writing
apps.jsonor swapping host tiles) now matches on a proper folder boundary, so a look-alike sibling folder can't slip through - More resilient remote updates โ if a Windows Update scan result goes stale before you pick what to install, the host silently re-scans and retries instead of failing with an obscure error
- Accessibility โ screen readers and UI automation now announce the toggles, buttons, drop-downs and lists across Network, Display, Audio, Apps, Game Library and Settings by name
- Under the hood โ the main app file was split into smaller focused parts and the tray Speed readout no longer reaches into the notify-icon library's internals; no change in behaviour
- Remote Windows Update on the host โ an approved StreamLight client (3.3.0+) runs Windows Update on the host straight from its Options menu: a classified scan (Security & critical / Defender / Optional; feature/version upgrades are shown but never installed remotely), a scope choice (Security + Defender or All updates), then install + reboot-if-required. The privileged work runs in the LocalSystem service (no UAC); the install command needs a verified signature like power-off; the job is backgroundable (status-bar chip + reopen). Ideal for a headless host you can't reach with a keyboard
- Update and shut down โ the remote power-off can now install pending Windows updates before powering off, on the host and/or the client. It checks both sides, shows where updates are pending, and enables the option only when there's actually something to install. Uses Windows' documented Update and shut down path
- UI polish โ green Home tile counts and consistent status-banner accents; the Bridge security device list now shows just the device name
- Requires StreamLight 3.3.0; update both apps together
๐ Thanks again to @SolemnDucc for the headless-host Windows Update suggestions.
- Remote host power-off โ an approved StreamLight client (3.2.0+) can shut the host PC down over the authenticated bridge, straight from the host's Powerโฆ menu on the client. The shutdown is destructive, so it is only accepted with a verified signature from an approved device โ never unauthenticated
- Authentication now mandatory โ the Require authenticated StreamLight clients toggle was removed; only devices you approve can use the advanced integration (this never affects streaming itself). The Bridge security card now explains what authentication is for in place of the toggle
- Store tab removed โ the embedded Instant Gaming browser (and the WebView2 runtime it required) has been removed
- Requires StreamLight 3.2.0; update both apps together
๐ Thanks to @SolemnDucc for suggesting the remote shutdown feature (StreamLight #1).
- Faster Game Library โ the game list is now virtualized: only the rows on screen are rendered, so libraries with hundreds of titles open instantly and use far less memory
- Better accessibility โ icon-only buttons (Logs detail/delete, Network copy-IP) now expose proper names to screen readers and UI automation
- Diagnostics โ failures in the session / NIC / telemetry pipeline are now logged to
debug.loginstead of being swallowed, making rare issues traceable. No change to on-screen behaviour
- Authenticated bridge โ the TCP bridge StreamLight uses now only accepts commands from devices you have explicitly approved. Each client signs every command with its Moonlight certificate; on first contact StreamTweak shows a one-time "Allow this client?" prompt with the device name and a 4-digit PIN to confirm against the one shown on the device
- Bridge clients management โ Settings โ Bridge security lists approved/pending clients with Approve / Revoke, plus a Require authenticated StreamLight clients toggle (ON by default)
- Authorization never blocks streaming โ it only gates the StreamTweakโStreamLight integration (host metrics, NIC speed & Streaming Mode, store badges, session reports, Tailscale, remote pause). Requires StreamLight 3.1.0; update both apps together
- Security hardening โ the LocalSystem service now verifies the calling process before acting; the bridge adds connection/size/timeout guards; correct WQL escaping and atomic config writes
See changelog.txt for the full release history.
StreamTweak consists of three components:
StreamTweakUI.exeโ WinUI 3 tray app (unprivileged), built on Windows App SDK 1.8StreamTweak.Coreโ shared business logic library (NIC control, audio, HDR, game library, telemetry, NVIDIA Sentinel / DRS layer, Tailscale detector, TCP bridge)StreamTweakService.exeโ Windows Service (LocalSystem), handles NIC speed changes, host-assets writes, and Windows Update (scan / install / reboot via the Windows Update Agent) via Named Pipe; no UAC ever appears in the tray app
The host-client bridge is a TCP listener on port 47998 (LAN, line-delimited ASCII). Commands accepted from StreamLight: PREPARE, RESTORE, STATUS, STATS, APPSTORES, TAILSCALE, SESSIONDATA, SHUTDOWN, SHUTDOWN_UPDATE, UPDATESTATE, UPDATECHECK, UPDATE_NOW, UPDATEPROGRESS. Each command is authenticated: the client first negotiates (CAPS) and enrolls its Moonlight certificate (ENROLL, approved once on the host), then signs every command (AUTH1, RSA-SHA256). As of 7.2.0 authentication is mandatory; destructive commands (power-off, install + reboot) additionally require a verified signature even in legacy mode.
StreamLight (Qt, client PC)
โ TCP port 47998
โผ
StreamTweak (WinUI 3, host PC) โ Named Pipe โ StreamTweakService (LocalSystem)
โ
โผ
NIC speed via CIM/WMI
Host assets via filesystem
Windows Update via WUA
- Go to the Releases page of this repository.
- Download the latest
StreamTweak_7.3.2_Installer.exeand run it.
The installer registers StreamTweakService as a Windows Service (LocalSystem) so that NIC and host-assets operations require no UAC prompt. Windows App SDK 1.8 runtime is installed automatically if missing.
- StreamLight โ the official FoggyBytes Moonlight fork, designed in lockstep with StreamTweak
- Moonlight โ the open-source streaming client that inspired this project
- Sunshine โ the streaming host that started it all
- Apollo โ community-driven Sunshine fork
- Vibeshine and Vibepollo โ fully supported since v2.5.2
- NVIDIA Profile Inspector by Orbmu2k (MIT) โ its DRS layer and setting catalog were ported natively to power NVIDIA Sentinel
