Library / SDK
mubaraknumann/unifideck avatar
mubaraknumann/unifideck

Unifideck: every store's library inside the Steam Deck interface

A Decky Loader plugin that brings together games from Steam, Epic Games Store, GOG, Amazon, Ubisoft and XCloud into a single, unified library experience on your Steam Deck.

1,403 stars59 forksPythonGPL-3.0

At a glance

What is it?
Unifideck is a Decky Loader plugin that pulls Epic, GOG, Amazon, Ubisoft, Battle.net, GameVault, itch.io and xCloud titles into the Steam library on a Steam Deck, so you install and launch them like Steam games, with Proton handled for you and cloud saves for Epic and GOG. The README is refreshingly blunt about the costs, starting with the fact that the plugin replaces three of Steam's own library tabs.
Who is it for?
Adopt Unifideck if you own games across several stores and use a Steam Deck or Steam Machine, and you want one Gaming Mode library rather than a desktop mode with five launchers. Do not adopt it if you depend on Steam's own All Games, Installed or Great on Deck tabs and their sorting and filtering, because the plugin replaces them, and think twice if you rely on TabMaster, since Unifideck then skips its own tab injection and leans on collections instead.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly Python, according to GitHub's language statistics.

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 pitch is that you stop switching to desktop mode

Unifideck is a Decky Loader plugin that brings together games from Steam, Epic Games Store, GOG, Amazon Games, Ubisoft Connect, Battle.net, GameVault, itch.io and Xbox Cloud Gaming into a single library experience on a Steam Deck. The framing in the README is that it brings your games from other stores into Steam, so they show up in your library and play just like Steam games, with the same Play button, the same Gaming Mode and the same controller-friendly feel, and the summary is no switching to desktop mode and no juggling separate launchers. The feature list expands that into a set of concrete promises. Your games sit alongside your Steam library in tabs you can browse like any other. You press Install, watch the progress, then press Play, all from the game's page in Gaming Mode. You choose the install location, internal storage, an SD card or a folder you pick. Proton is handled for you, with a recent version set up automatically, and if a game is picky you can force a specific version from Steam's usual Compatibility menu. And the presentation is polished, with cover images, icons, Metacritic scores and Steam Deck compatibility ratings, so a non-Steam game looks like it belongs.

A Python backend that patches Steam's React UI

The architecture is documented in a file the README links as Architecture and Build, and the package description says it is built on a five layer architecture with an EventBus, service dependency injection and 90 percent or more test coverage. The most revealing document is the one on UI injection and the Steam UI patching reference, which explains how Unifideck patches Steam's React UI. That is the mechanism that makes the whole idea possible. Rather than shipping a separate launcher, the plugin injects itself into the Steam client and takes over parts of the library view, which is also why it can present a non-Steam game with a Play button that behaves like a Steam one. The plumbing underneath is a Chrome DevTools Protocol bridge, and the Python dependency list is unusually transparent about it, with `websockets` pinned for the CDP bridge that powers the UI injection, the CSS hiding of the play button, the OAuth redirect capture and the virtual keyboard used for xCloud. The backend is Python, in `py_modules/`, with a `main.py` entry point and a `decky.pyi` stub, and the frontend is TypeScript in `src/`, bundled with rollup through a `build-plugin.sh` script and the `@decky/rollup` plugin. Communication between the two sides goes through the EventBus and the RPC mixins the architecture document describes.

Installing it, and the first sync

The prerequisites are short. Decky Loader must be installed on your Steam Deck, and Microsoft Edge is required for store sign-in and for Xbox Cloud Gaming, with the plugin prompting you to install it if it is missing. Everything else, including the other store command line tools and helper tooling, is bundled with the plugin. Installation is a zip file and a menu, not a command line. You download the latest plugin ZIP from the Releases page, open the Quick Access Menu with the three dots button, navigate to Decky and then Settings with the gear icon, enable Developer Mode if it is not already on, click Install Plugin from ZIP and select the file. The README also gives the recovery step for a stuck update, which is to uninstall the current Unifideck plugin and install the latest ZIP again. Then the first run, which is a short sequence: open the Quick Access Menu and launch Unifideck, connect the stores you want to use, set your default install location, run Sync Libraries or Force Sync, and restart Steam when prompted so new shortcuts and artwork are applied. One store specific step is called out, namely completing the one-time account link for Ubisoft titles that were purchased through Epic.

Proton, install locations and the Ubisoft prefix trap

The Proton handling is the part that most affects whether a game works, and the README describes it in two layers. Most Windows games just work because Unifideck sets up a recent Proton automatically, and if a game is picky you can force a specific version from Steam's Compatibility menu, which is a deliberate choice to reuse Steam's own surface rather than building a picker. The known limitations section is explicit that the Proton version and launch options are configured through Steam's native shortcut Properties, in the Compatibility tab or the Launch Options field, and that there is no in plugin picker, and that wrapper style launch options and LSFG are not yet wired up. The Proton documentation is a separate guide, and the safest practice is spelled out in the limitations, since for Ubisoft you should choose the Proton version before installing, because changing Proton after install can invalidate the prefix and force a reinstall. Install location is equally flexible, with internal storage, an SD card or a custom folder, and the getting started steps have you set a default so you do not have to choose every time. Some titles still need manual Proton experimentation or store specific workarounds, which is the honest residue of the promise that most games just work.

Cloud saves cover two stores, and metadata is best effort

Cloud saves are supported for Epic and GOG, and the README says your progress syncs with the store's cloud and follows you between devices, with a heads-up if your local and cloud copies ever disagree. The cloud saves guide covers how the sync works, how conflicts are handled and where custom save paths are configured, and the limitation is stated plainly, that cloud saves currently cover Epic and GOG only, and that game-level support varies. Metadata is the other half of making foreign games feel native. Cover art, icons, Metacritic scores and Steam Deck compatibility ratings are pulled in so the entries look like Steam ones, and the limitation says that not every game has SteamGridDB artwork or complete metadata, which is the visible gap in an otherwise convincing illusion. The same section also records that Xbox Cloud Gaming support is streaming-only and depends on Microsoft Edge, and the Microsoft and xCloud guide is where the Game Pass and cloud streaming integration is described, with the repository even containing a `generate_xbox_d2d_excel.py` script for the device to device catalogue.

What the plugin takes away, and the dependencies it drags in

The known limitations are the most valuable part of the README, and they are worth reading as a contract. Unifideck replaces Steam's default All Games, Installed and Great on Deck tabs, so some sort and filter behaviour is not preserved, which is a real cost for a library you use daily. With TabMaster installed, Unifideck skips its custom tab injection and relies on collections prefixed with the plugin name instead, so the two plugins do not compose the way you might expect. Steam still needs a restart after a sync or a cleanup for the library to refresh fully, which is a papercut in a handheld's quick session. The Xbox path is streaming-only and needs Edge, and Edge is also required for store sign-in in general, so Microsoft Edge becomes a hard dependency on a Linux handheld where it is otherwise an unusual guest. On top of that, the plugin runs a Python backend with a web requests client and a websocket client on the Steam Deck, and the dependency file is explicit about why the pins are where they are, with a floor of aiohttp 3.10.11 chosen because that release closes a client side memory leak and a request smuggling issue, both of which the README says are reachable from the client code path Unifideck uses.

The engineering rig behind a plugin

The repository is the part of this project that suggests it is maintained seriously, and the tooling list is long. The JavaScript side uses rollup for the bundle, vitest for tests with a coverage mode, eslint and prettier for linting and formatting, and tsc for type checking, with lint-staged and a pre-commit hook tying them together. The Python side has pytest with coverage, its own pytest.ini, a `requirements.in` and a generated `requirements.txt`, and a ruff configuration whose comments explain a subtlety that most projects skip, that `extend-exclude` does not apply when a tool is passed explicit file paths, and that `force-exclude` is what makes the audit scope stable regardless of how ruff is invoked. The dependency floors are described as CVE driven, with pip-audit gating the quality workflow against any pin whose lower bound admits a known vulnerable release, and with each bump expected to cite the advisory that forced it in the same pull request as the audit report entry. There is also an import linter configuration, a gitleaks configuration, a vulture whitelist for dead code detection, and a pre-commit configuration, which is a good picture of what a project worries about when it is running inside someone's gaming device.

Editorial conclusion

Adopt Unifideck if you own games across several stores and use a Steam Deck or Steam Machine, and you want one Gaming Mode library rather than a desktop mode with five launchers. Do not adopt it if you depend on Steam's own All Games, Installed or Great on Deck tabs and their sorting and filtering, because the plugin replaces them, and think twice if you rely on TabMaster, since Unifideck then skips its own tab injection and leans on collections instead. Before you install, read the known limitations list rather than the feature list, and decide whether streaming-only xCloud and a mandatory Microsoft Edge dependency are acceptable, since Edge is needed for store sign-in and for Xbox Cloud Gaming. The licence is GPL-3.0-or-later, the current release is 0.7.6 from 2026-10-04, and the last push was on 2026-10-18.

Frequently asked questions

What does Unifideck do on a Steam Deck?

It brings games from Epic Games Store, GOG, Amazon Games, Ubisoft Connect, Battle.net, GameVault, itch.io and Xbox Cloud Gaming into the Steam library, so they install and launch from the game's page in Gaming Mode like a Steam game, with Proton set up automatically and install locations on internal storage, an SD card or a folder you choose.

How do I install Unifideck?

Download the latest plugin ZIP from the Releases page, open the Quick Access Menu, go to Decky then Settings, enable Developer Mode if it is not already enabled, click Install Plugin from ZIP and select the file. Decky Loader must already be installed, and Microsoft Edge is required for store sign-in and for Xbox Cloud Gaming.

What are the known limitations of Unifideck?

It replaces Steam's default All Games, Installed and Great on Deck tabs, so some sort and filter behaviour is lost, and with TabMaster installed it relies on Unifideck collections instead of custom tab injection. Xbox Cloud Gaming is streaming-only and needs Microsoft Edge, cloud saves cover Epic and GOG only, Steam must restart after a sync, and there is no in-plugin picker for Proton or launch options.

Which Proton version should I use for Ubisoft games?

Choose it before installing. The README warns that changing Proton after install can invalidate the prefix and force a reinstall, and points to the Ubisoft store spec document for details. More generally, most Windows games just work on an automatically selected recent Proton, and a specific version can be forced from Steam's Compatibility menu.

Official sources

  1. Issues
  2. License: GPL-3.0
  3. mubaraknumann/unifideck on GitHub
  4. README
  5. Releases
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.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/mubaraknumann-unifideck.svg)](https://hysenlabs.com/projects/mubaraknumann-unifideck)

Was this useful?