Skip to content

FoggyBytes/StreamTweak

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

217 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽฎ StreamTweak

Platform Framework Downloads Built with Claude Code

streamtweak

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.

5

โœ… Compatibility

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.

๐Ÿ”ฅ Features

๐ŸŒ 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 .nip file (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

๐Ÿ”— Paired Features (with StreamLight)

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 PREPARE over 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 STATS command
  • Store badges on game covers (StreamLight 2.0.0+) โ€” the per-game store map is served via the APPSTORES command, 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 STATS polling 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 SHUTDOWN command. 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 TAILSCALE command. If StreamTweak detects a Tailscale adapter in the CGNAT 100.x.y.z range, StreamLight records that address on the host's single tile (which now tracks both the LAN and Tailscale IPs, with a TAILSCALE ยท AVAILABLE badge) and offers a Tailscale option to open the host's apps over the 100.x endpoint โ€” 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

โœจ What's New in 7.3.2 โ€” "The Library Polish Update"

  • 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

โœจ What's New in 7.3.1 โ€” "The Housekeeping Update"

  • Security hardening โ€” the host service's directory whitelist (used when writing apps.json or 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

โœจ What's New in 7.3.0 โ€” "The Patch Tuesday Update"

  • 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.

โœจ What's New in 7.2.0 โ€” "The Power Update"

  • 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).

โœจ What's New in 7.1.1 โ€” "The Refinement Update"

  • 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.log instead of being swallowed, making rare issues traceable. No change to on-screen behaviour

โœจ What's New in 7.1.0 โ€” "The Secure Bridge Update"

  • 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.

๐Ÿ—๏ธ Architecture

StreamTweak consists of three components:

  • StreamTweakUI.exe โ€” WinUI 3 tray app (unprivileged), built on Windows App SDK 1.8
  • StreamTweak.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

๐Ÿ“ Installation

  1. Go to the Releases page of this repository.
  2. Download the latest StreamTweak_7.3.2_Installer.exe and 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.

๐Ÿ™ Support the Project

Donate with PayPal

๐Ÿค Acknowledgements

  • 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

License

License: GPL v3

Packages

 
 
 

Contributors