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 (Tailscale dual-tile, live charts, store badges, host metrics, NIC control from the client) pair StreamTweak 7.0.0 with StreamLight 3.0.0 on the client PC.
โ ๏ธ 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.0.0+ this enables a dual-tile workflow 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
๐ Store
- Instant Gaming integrated โ browse and buy games directly inside StreamTweak via an embedded browser. Purchases contribute a small affiliate commission to FoggyBytes at no extra cost to you, helping fund StreamTweak's development
- Open in browser โ hand off the current page to your default browser with one click; affiliate parameter preserved across the handoff
๐ 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 - Tailscale dual-tile (StreamLight 3.0.0+, flagship of this release pair) โ 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 offers a one-time popup to add a second host tile pinned to that Tailscale address โ so the user can stream from outside the LAN with a single click, no port forwarding. On the client side, StreamLight 3.0.0 can also be configured to auto-start Tailscale at launch, completing the round-trip: when both apps cooperate the remote stream is always one click away
- New: NVIDIA Sentinel โ a dedicated sidebar page (NVIDIA GPUs only; greyed out on AMD / Intel) that protects the NVIDIA global driver profile from being silently reset by NVIDIA App. Save current as my profile snapshots the global profile to a
.nipfile (the same format NVIDIA Profile Inspector uses); Restore my profile re-applies it; Clear my profile discards it. The header shows the driver package (Game Ready / Studio), version and release date - New: Auto-restore โ arm the toggle and StreamTweak watches the driver settings database (
FileSystemWatcher+ 5-second polling safety net) and silently re-applies your saved profile within a couple of seconds whenever NVIDIA App resets it. Every restore (manual or automatic) is logged to%LocalAppData%\StreamTweak\nvidia-restore.log - New: Captured settings view โ a collapsible terminal-style panel lists each customized setting in human-readable form: name, hex id, and the value translated to its NVIDIA label (e.g. "Force on", "Medium"), including the real installed DLSS Super Resolution / Ray Reconstruction / Frame Generation versions injected by the override
- Under the hood โ 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 read and restored correctly with no external runtime dependency. Scope: the global driver profile only (NVIDIA App's "Global settings"); per-application profiles are not snapshotted
The previous release, 6.3.0 "The Tailscale Update", added the Tailscale dual-tile and Game Library host-tile replacement. See changelog.txt for the full 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 and host-assets writes via Named Pipe; no UAC ever appears in the tray app
The host-client bridge is a plain TCP listener on port 47998 (LAN, line-delimited ASCII). Commands accepted from StreamLight: PREPARE, RESTORE, STATUS, STATS, APPSTORES, TAILSCALE.
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
- Go to the Releases page of this repository.
- Download the latest
StreamTweak_7.0.0_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
