Duo: multiple independent Windows desktops on one gaming PC
An HDR-compatible multiseat streaming solution based around TermWrap, Sunshine, Moonlight, and a variety of custom driver and library patches
At a glance
- What is it?
- Duo is a Windows-based headless multiseat streaming solution built on TermWrap, Sunshine, Moonlight and a set of custom driver and library patches. It gives each user their own desktop so several people can play on one machine at once, with the free tier limited to one extra instance capped at 30Hz and HDR gated behind a supporter tier.
- Who is it for?
- Duo fits a household or a small venue that has a capable Windows PC and several people who want their own desktop and their own game on it, and it does not fit someone who needs free and unrestricted HDR and high refresh rates, or a Linux or macOS host.
- Can I use it commercially?
- Not without permission. GitHub finds no licence file in the repository, and without a licence all rights are reserved by default: you may read the code but not reuse it. Check the README, or ask the authors, before using it.
- Is it still maintained?
- Yes. The repository last received commits 70 days ago.
- What is it written in?
- GitHub does not report a main language for this repository.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
The problem is that one GPU means one session for everyone
Duo is described as a one-stop solution for easy, headless, Windows-based game streaming and multi-seating. Its argument starts from a situation the project assumes you already know.
Operating a GeForce Experience GameStream or a Sunshine host, the project says, comes with a specific set of problems. You cannot use your computer while you are streaming from it. Your computer must always be connected to a monitor, an HDMI dongle, or an indirect display driver for the stream to function at all. Streaming to different clients at varying resolutions, refresh rates or colour spaces needs several helper tools to enable, disable or alter monitor configurations. And only one person can stream from a given computer at a given time.
That last point is the one Duo exists to remove. The solution it offers is to give each user their own independent Desktop, so multiple people can play games on a single computer at the same time without getting in each other's way. The headless part matters too: because each session is a separate virtual desktop rather than a window streamed from a physical one, the requirement for a real monitor, a dongle or an indirect display driver goes away.
So the design goal is a PC that can be a game server for a household, in a room with no screen, with one player per account and no shared session to fight over.
TermWrap, Sunshine, Moonlight and a layer of patched drivers
The project description names the pieces it is assembled from: TermWrap, Sunshine, Moonlight, and a variety of custom driver and library patches.
The division of labour follows from the upstream projects. Sunshine is the host, the server-side component that captures the game and encodes it, which is the role the project describes as a Sunshine host. Moonlight is the client, the player-side application that receives the stream and sends back input. Those two are what a GeForce Experience GameStream setup or a Sunshine host already is.
TermWrap is the piece that makes the multiseat part work. Wrapping a session so that each user gets an isolated desktop environment inside the same Windows installation is not something the standard host does, because a standard host streams one session, and the whole design of a display server assumes one interactive session owns the console.
The driver and library patches are the other half and the part that should raise the most questions. The project describes them as a variety of custom driver and library patches, without enumerating them. A driver patch is not a configuration change: it modifies behaviour that Windows expects to be a certain way, which means it has to be kept in step with Windows updates, and it is the kind of component where the same trick that works on one build can break on the next. This is also where the project's own Known Issues page becomes relevant, since it exists because some limitations are technical or legal ones the project says it cannot do much about.
Windows 11 version 23H2 or newer is the stated floor for two specific features, automatic display adjustments based on the Moonlight client's settings and HDR support, which tells you the project is tied to a specific range of recent Windows builds rather than to Windows in general.
The free tier gives one extra instance and 30Hz, nothing more
The business model is the most concrete constraint on how you can use the software, so it is worth reading precisely.
The base features are: one free Duo instance in addition to the host's physical session, capped at 30Hz; automatic display adjustments based on the Moonlight client's settings, on Windows 11 23H2 or newer; built-in support for user-configurable super-sampling; and built-in support for multiple Steam instances.
The supporter benefits are unlocked by logging in with a Patreon account that has contributed a total of 10 dollars or more over its lifetime, or a Ko-Fi account with the Duo Supporter Benefits option enabled. Those benefits are: as many Duo instances as the hardware can handle, in addition to the host's physical session; refresh rates up to 500Hz, limited only by what the hardware encoder can handle; HDR support, on Windows 11 23H2 or newer; and Sandbox support, which is marked as temporarily unavailable.
So the free version is a genuine preview of the mechanism rather than a usable deployment for a venue. One extra instance, 30Hz, no HDR. If your use case is two people playing on one machine, the free tier is enough. If it is six, or if the second screen needs to be 144Hz, the supporter tier is not optional, it is the product.
One detail in the wording is worth noticing. The 500Hz figure is capped by what the hardware encoder can handle, which is a more honest framing than a fixed number, and the Sandbox benefit is flagged as temporarily unavailable, which means the feature boundary is still moving.
The repository is a download, not a source tree
The top-level entries in this repository are `Files/` and `README.md`. There is no source code, no build system and no contribution guide in the tree.
That is worth saying plainly because the project is distributed on GitHub releases. The download links point to the latest release on GitHub, and to a Patreon post for the PC version, and the setup documentation is a wiki, with three separate pages: a Setup Guide described as a step-by-step guide on getting started, a Troubleshooting page listing frequently asked questions and how to resolve them, and a Known Issues page.
The split between releases and wiki documentation is the operational reality of this project. The repository is a distribution point, and the documentation that describes what to do with a download lives in a wiki that is not versioned alongside the binaries. If you are pinning a version for a deployment, the wiki page you follow may describe a newer build than the one you installed, and the Known Issues page in particular is where the project puts problems that are inherent to the approach rather than bugs to be fixed.
Because there is no source in the tree, the licence question cannot be answered from here, and the project metadata does not state a licence either. The code that Duo is built on, TermWrap, Sunshine and Moonlight, carries its own licensing, and the custom patches are the part whose terms a redistributor would need to check.
Setting up: a download, an account, then the wiki
There is no build step, because there is no source to build. Installation is a download and a configuration, and the project's own documentation for the process lives in the wiki rather than in this repository.
The download options are the latest release on the GitHub releases page, which the README lists as v1.6.0, and a Patreon post for the PC version. The v1.6.0 tag was published on 2026-08-14 and the preceding releases are v1.5.9 and v1.5.8, so the release numbering is the only version reference available, since there is no changelog in the tree.
The setup itself is documented in three wiki pages with distinct purposes. The Setup Guide is the step-by-step path to a working setup. The Troubleshooting page is a list of frequently asked questions with resolutions. The Known Issues page is described as a list of known issues the project cannot do much about because of technical or legal limitations, and it is the one to read first, because it tells you which parts of the feature set will not work in your situation before you spend an evening on it.
There is one account step that changes what you can do. Logging in with a Patreon account that has contributed 10 dollars or more over its lifetime, or a Ko-Fi account with supporter benefits enabled, unlocks the additional instances, the higher refresh rates, HDR and the currently unavailable Sandbox support. Nothing in the documentation suggests the free tier is time limited, so an installation that only ever needs one extra instance at 30Hz does not require a payment.
Where Duo is the wrong tool
The clearest case is a setup that needs HDR or a high refresh rate without a supporter account. The free tier is capped at 30Hz with no HDR, so a user with a 144Hz or 240Hz display and an HDR panel has to pay before the software does what they bought the hardware for. That is a deliberate design, and it is fine as a business model, but it makes the free version unusable for the exact scenario the tool is advertised for.
The second case is a platform other than Windows. Every part of the design assumes a Windows host, a Windows desktop session to wrap, and Windows display drivers to patch. There is no Linux or macOS path described, and the whole approach depends on the peculiarities of how Windows handles sessions and displays.
The third case is a large multi-seat deployment. The paid tier allows as many instances as the hardware can handle, and the hardware encoder is the limit on refresh rate, so a venue with eight seats is constrained by one GPU and one encoder. Duo is built for the household and the small shared PC, and the wording of the supporter benefits, limited by what your hardware encoder can handle, tells you the ceiling is set by the machine rather than by the software.
There is also the maintenance risk that the patch-based approach carries. A project that patches drivers and libraries is exposed to operating system updates, and a user on a newly patched Windows build may find features broken in a way that only the project's own fix can address.
Compared with a plain Sunshine host or a second machine
The realistic alternatives are a single-session Sunshine or GameStream host with nothing else, and buying the hardware instead.
A plain host, which is Sunshine or GeForce Experience GameStream with a virtual display driver, is the baseline Duo is modifying. It gives you one stream from one session, and the same four problems the project lists apply: you cannot use the machine while streaming, you need a display or a dongle or an indirect display driver, adjusting output for different clients takes helper tools, and one person streams at a time. If you only ever want to stream one game to one client, the plain host is free, simpler and better supported, and Duo adds nothing you would use.
The other alternative is a second computer. Two machines, two games, two accounts, no session sharing question at all. The cost is hardware and the space and power to run it, and the benefit is that nothing is patched, nothing is fragile, and every player gets a real machine with its own encoder. For two people this is often the better answer financially once you count the cost of the GPU in a shared machine.
Duo's approach pays off in the middle case, where one capable machine has more GPU than each person needs individually, and the number of players exceeds what a single session allows. There, the combination of TermWrap for session isolation, Sunshine for capture, Moonlight for the client side, and the patches for making the virtual displays behave is doing real work, and it is not something a single plain host provides.
Editorial conclusion
Duo fits a household or a small venue that has a capable Windows PC and several people who want their own desktop and their own game on it, and it does not fit someone who needs free and unrestricted HDR and high refresh rates, or a Linux or macOS host. Before downloading, read the Known Issues wiki page, because the project says some of its limitations are technical or legal ones it cannot work around, and check the supporter tier requirements, since HDR and refresh rates above 30Hz are not in the free version.
Frequently asked questions
What does Duo do for multiseat game streaming?
Duo gives each user their own independent Windows Desktop, so several people can play games on one computer at the same time without sharing a session. It is built on TermWrap, Sunshine, Moonlight and custom driver and library patches.
How many Duo instances can I run and what refresh rate do I get?
The free version allows one Duo instance in addition to the host's physical session, capped at 30Hz. Supporter accounts, a Patreon account that has contributed 10 dollars or more in total or a Ko-Fi account with supporter benefits enabled, unlock as many instances as the hardware can handle and refresh rates up to 500Hz.
Does Duo support HDR?
HDR support is one of the supporter benefits and requires Windows 11 version 23H2 or newer. Automatic display adjustments based on the Moonlight client's settings are also listed as a Windows 11 23H2 or newer feature.
Where do I get Duo and its documentation?
Downloads are on the GitHub releases page and on Patreon, with the latest listed version being v1.6.0. The setup, troubleshooting and known issues documentation is in the project wiki, with separate pages for each.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/duostream-duo)Was this useful?