📈 GH Trending Explorer 🎲 Surprise me

← all repos

mattxslv / childstream

git clone https://github.com/mattxslv/childstream.git

Stream games from a second Windows desktop while you keep using your PC - via Windows child sessions + Sunshine

—
stars, 24h
—
stars, 7 days
+79
stars, 30 days · #2,835
79
★ total
8
forks · 1 open issues

Star history starts 2026-10-20; the chart appears after the second daily snapshot.

LanguageC#
LicenseMIT
Created2026-09-22 (28d ago)
Last push28d ago
Watchers1
OwnerUser

Links

README excerpt
# ChildStream
**Stream games from a second Windows desktop while you keep using your PC — free, open, no license unlocks.**
ChildStream is a proof of concept that replicates the core idea of multiseat streaming tools (like Duo) using only documented Windows features:
- A **child session** — a second, fully independent Windows logon session created via the Win32 `WTSEnableChildSessions` API and the RDP ActiveX control's `ConnectToChildSession` property
- A portable **Sunshine** instance running *inside* that session on its own ports
- Any **Moonlight** client (Artemis on Android works great) connecting to it
Result: your phone/tablet/TV streams a game from the second desktop at up to ~120 fps, while the physical desktop stays fully usable at its native refresh rate (verified 143 Hz on the host while streaming 2800×1272 @ 120 fps).
 [code] 
## Requirements
- Windows 10/11 **Pro** (tested on Windows 11 Pro 25H2)
- A GPU with a hardware encoder (NVENC / AMF / QSV)
- .NET Framework 4.x (preinstalled on Windows)
- A password-capable Windows account (child session logon uses `MACHINE\user` + password; if you use a Microsoft account with Windows Hello only, allow password sign-in)
## Setup
 [code] 
The script:
1. Compiles `ChildStream.exe` from source (csc, no build tools needed)
2. Enables child sessions (`WTSEnableChildSessions`)
3. Allows RDP connections (child sessions are loopback RDP)
4. Raises the session compositor rate (`DWMFRAMEINTERVAL = 8` → ~120 fps)
5. Downloads portable Sunshine and configures it on base port **48989** (coexists with an existing host like Apollo/Vibepollo on 47989)
6. Adds a firewall rule + startup hook that auto-starts Sunshine **only inside child sessions**
7. Creates a desktop shortcut
Then:
1. Launch **Child Session** from the desktop
2. Enter your Windows password once (stored DPAPI-encrypted, machine-local)
3. Set Sunshine web UI credentials: `Sunshine\Sunshine\sunshine.exe --creds `
4. Pair Moonlight/Artemis with ` :48989` (PIN via `https:// :48990`)
5. Play
## Usage notes
- **Keep ChildStream running while streaming** — minimize it to the tray. The child session's display exists only while the viewer is attached; closing the app breaks capture until you reconnect (it auto-reconnects on relaunch).
- The session itself survives viewer disconnects — games keep running.
- To fully end the session: sign out from inside it.
- If your Microsoft account password is rejected, log on as `MACHINE\username` (the launcher does this automatically).
## Limitations (vs. commercial tools)
- One child session max (Windows limitation), same user as the console session
- Refresh limited by the RDP compositor (~60–125 fps depending on build; `DWMFRAMEINTERVAL` tweak required)
- No per-session HDR
- A viewer connection must stay attached (commercial tools ship a custom indirect display driver to avoid this)
## Uninstall
- Delete the repo folder, the desktop shortcut, and `C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup\chil