An open API service indexing awesome lists of open source software.

https://github.com/switch-bros/steamlibrarymanager

SteamLibraryManager is the Linux alternative for Depressurizer, just better!
https://github.com/switch-bros/steamlibrarymanager

library manager steam steam-os

Last synced: 2 months ago
JSON representation

SteamLibraryManager is the Linux alternative for Depressurizer, just better!

Awesome Lists containing this project

README

          







๐ŸŽฎ Steam Library Manager

[![Python 3.10+](https://img.shields.io/badge/Python-3.10%2B-FDE100?style=plastic&logo=python&logoColor=FDE100&labelColor=000000)](https://www.python.org/)
[![Platform](https://img.shields.io/badge/Platform-Linux%20%7C%20Steam%20Deck-FDE100?style=plastic&logo=linux&logoColor=FDE100&labelColor=000000)](https://store.steampowered.com/steamdeck)
[![License](https://img.shields.io/badge/License-MIT-FDE100?style=plastic&labelColor=000000)](https://github.com/Switch-Bros/SteamLibraryManager/blob/main/LICENSE)
[![Tests](https://img.shields.io/badge/Tests-1771%20passed-FDE100?style=plastic&labelColor=000000)](https://github.com/Switch-Bros/SteamLibraryManager)
[![Steam API](https://img.shields.io/badge/Steam%20API-Optional-FDE100?style=plastic&logo=steam&logoColor=FDE100&labelColor=000000)](https://steamcommunity.com/dev/apikey)
[![SteamGridDB](https://img.shields.io/badge/SteamGridDB-Required-FDE100?style=plastic&logoColor=FDE100&labelColor=000000)](https://www.steamgriddb.com/api)
[![i18n](https://img.shields.io/badge/i18n-๐Ÿ‡ฌ๐Ÿ‡ง%20๐Ÿ‡ฉ๐Ÿ‡ช-FDE100?style=plastic&labelColor=000000)](https://github.com/Switch-Bros/SteamLibraryManager)
[![Downloads](https://img.shields.io/github/downloads/Switch-Bros/SteamLibraryManager/total?style=plastic&color=FDE100&labelColor=000000)](https://github.com/Switch-Bros/SteamLibraryManager/releases)

> **The Depressurizer alternative for Linux.**
> Organize your Steam library, auto-categorize games, edit metadata, and take control of your collection - with features Steam doesn't have.



Auf Deutsch lesen


Steam Library Manager - Main Window

โœจ Features







๐Ÿง  Smart Collections - A Full Rule Engine That Steam Will Never Have

Steam has dynamic collections - but they've been **AND-only since launch**, with a handful of basic filters. Want games that are *either* "Platinum on ProtonDB" *or* "Native Linux"? Impossible in Steam. You can only narrow down, never combine alternatives.

Our Smart Collections are a **full-blown rule engine** with capabilities Steam will never match:

- **AND / OR / NOT** operators with **nested rule groups** - build complex logic like *(Genre = RPG AND ProtonDB = Platinum) OR (Genre = Strategy AND Deck = Verified)*. Groups let you combine conditions however you want - no limits, no workarounds
- **21 filter fields** across every dimension of your library: playtime, review scores, Steam Deck status, ProtonDB ratings, achievement completion, HowLongToBeat times, tags, genres, release year, developer, publisher, platforms, languages, app type, and more
- **12 operators** including range queries - filter games between 10-50 hours playtime, or review scores above 90%, or tags matching a regex pattern
- **Language-independent tag matching** - switch your Steam tags from English to German (or any language), and your rules keep working. We match by Steam's internal Tag IDs, not by localized names
- **12 ready-made templates** to get started: "Unplayed gems", "100h+ club", "Deck verified", "Quick play (<5h)", "Almost done (75%+ achievements)", and more
- **Live preview** - see matching games update in real-time as you build your rules
- **Import & Export** as JSON - share your setups with friends or back them up

The clever part: In the Steam client, our Smart Collections appear as **regular static collections** - Steam doesn't even know the difference. But in SLM, they're fully dynamic and infinitely more powerful than anything Steam offers.

*Example: "Show me all RPGs rated 'Platinum' on ProtonDB with more than 20 hours playtime that I haven't 100%'d yet - OR any Strategy game verified for Steam Deck - but exclude anything tagged 'Visual Novel'."*
One collection. Two rule groups. Automatic. Always up to date. **Impossible in Steam.**


Smart Collections Editor







๐Ÿ’› Support This Project

If SLM saves you time organizing your library, consider supporting its development. Every contribution - no matter how small - helps keep this project alive and growing.



Support us on PayPal

ย ย ย ย ย 

Support us on Ko-fi

Thank you to everyone who has already contributed - you're amazing! ๐Ÿ™







๐Ÿท๏ธ Auto-Categorization - 17 Rule Types, Infinite Possibilities

Automatically organize your entire library into meaningful collections with **17 different AutoCat rule types**:

**Tags** | **Genres** | **Publishers** | **Developers** | **Franchises** | **Flags** | **User Score** | **HowLongToBeat** | **Year** | **VR Support** | **Language** | **Curator** | **Platform** | **Hours Played** | **Deck Status** | **Achievements** | **PEGI Rating**

Each rule type has its own configuration - set thresholds, define ignore lists, choose prefix/suffix patterns, and combine multiple rules into powerful categorization profiles. Smart ignore lists filter out generic tags like "Singleplayer" so your categories stay meaningful.

*Got 500+ games? Hit "Auto-Categorize" and watch them sort themselves into clean, logical collections in seconds.*


Auto-Categorization Dialog



Auto-Categorization - Before/After







โœ๏ธ Metadata Editor - Your Changes Survive Steam Updates

Edit game names, sort titles, developers, publishers, and release dates - all stored locally. What makes this special:

- **Overlay System:** Your modifications are stored separately from Steam's data. When Steam overwrites `appinfo.vdf` (which it does regularly), your changes are **automatically re-applied** on top. Like Git rebasing for metadata - Steam provides "upstream", your edits are "patches".
- **Bulk Edit:** Select hundreds of games, change a field, apply. Done.
- **Custom Sort Titles:** Make "The Witcher 3" sort under "W", not "T".

*No other Steam library tool does this. Depressurizer loses your changes when Steam updates. We don't.*


Metadata Editor



Bulk Edit - Multiple Games Selected







๐Ÿ–ผ๏ธ Artwork Manager - SteamGridDB at Your Fingertips

Browse and download **covers, heroes, logos, and icons** from [SteamGridDB](https://www.steamgriddb.com/) - the largest community-driven game artwork database.

- **Visual browser** with thumbnail previews - see what you're picking before you apply it
- **Filter by type:** static, animated (GIF/APNG/WebM), NSFW, humor, epilepsy warning
- **Badge system** with animated slide-down indicators - colored stripes show content tags at a glance
- **One click to apply** - artwork is downloaded and set as your game's cover instantly


Artwork Browser - SteamGridDB Covers



Artwork Badges - NSFW, Animated, Humor Indicators







๐Ÿ“Š Data Enrichment - Know Everything About Your Games

Batch-enrich your entire library with data from multiple sources - all cached locally in SQLite for instant access:

| Source | Data | API Key Required? |
|--------|------|:-:|
| **HowLongToBeat** | Main story, completionist, and all playstyles times | No |
| **ProtonDB** | Linux compatibility tier (Platinum/Gold/Silver/Bronze/Borked) | No |
| **Steam Achievements** | Completion percentage per game | No (with OAuth2) |
| **Steam Tags** | Community-voted tags imported directly from Steam | No (with OAuth2) |
| **Steam Store** | Descriptions, DLC info, age ratings | No |

*Hit "Enrich All" and grab a coffee. When you come back, every game in your library has full metadata.*


Batch Enrichment - Progress Dialog



Game Detail Panel - All Enriched Data







๐Ÿ”’ Secure by Design - No Copy-Paste, No Plain Text

- **QR code login** or password login via Steam's official **OAuth2** (`IAuthenticationService`)
- Tokens stored **encrypted** (AES-GCM) with machine-derived keys, or in your **system keyring**
- Automatic **token refresh** - no re-login on every app start
- The **Steam Web API Key** is **optional** thanks to OAuth2 - but adding it is **highly recommended** for full functionality. You can configure it directly in the app under Settings.

*No sketchy browser session tokens. No API keys in plain text config files. Just scan, login, done.*


Steam QR Code Login







๐ŸŒ Multilingual - Your Language, Your Way

Full **English ๐Ÿ‡ฌ๐Ÿ‡ง** and **German ๐Ÿ‡ฉ๐Ÿ‡ช** interface with **complete i18n** - zero hardcoded strings in the entire codebase.

- **Separate settings** for UI language and tag language - use English UI with German Steam categories, or any combination
- **Localized dates** - "07. Dez 2024" in German, "07 Dec 2024" in English
- **Community translations welcome** - contributing is easy, no coding required ([see below](#-translations))


Language Settings - UI and Tag Language







๐Ÿง Linux Native - Built Here, For Here

Developed with **PyQt6** for seamless desktop integration. This is not a Windows app with a Linux port bolted on - it's **built on Linux, for Linux**, from day one.

- **Steam Deck compatible** - works in Desktop Mode
- **Wayland & X11** supported
- **AppImage, Flatpak, AUR, .deb, .rpm & tar.gz** packaging available
- Windows support is planned - but Linux always comes first







โ˜๏ธ Cloud Sync - Your Library, Everywhere

Sync your entire SLM database - collections, metadata, artwork, enrichment data - across multiple machines via the cloud provider of your choice.

- **Three providers:** rclone (MEGA, Google Drive, Dropbox, OneDrive, 40+ backends), WebDAV, or none
- **Three sync modes:** Manual (File menu only), auto-upload on exit, or fully automatic (upload + download)
- **Database backup to cloud** - one click in File > Database Backup > Upload to cloud
- **Artwork packages** - export and sync your custom SteamGridDB artwork between machines
- **Conflict detection** - SLM warns you before overwriting newer remote data

*Set up rclone once, pick your remote, and your library follows you from desktop to Steam Deck to laptop.*


Cloud Sync Settings and Database Backup Menu







๐ŸŽฎ External Games - One Library to Rule Them All

Got games scattered across Epic, GOG, Amazon, Lutris, Bottles, itch.io, and Flatpak? **SLM finds them all** - and adds them to Steam as Non-Steam shortcuts in one go.

- **8 platform parsers** - Heroic (Epic/GOG/Amazon), Lutris, Bottles, itch.io, Flatpak, and existing shortcuts.vdf
- **Auto-detection** - SLM scans for installed launchers (native and Flatpak) and reads their game libraries directly. Steam's "Add a Non-Steam Game" dialog only sees executables in your PATH - it has no idea what Heroic, Lutris, or Bottles have installed
- **Duplicate protection** - games already in Steam are detected and skipped
- **Platform collections** - imported games are automatically sorted into Steam collections by platform. In SLM's sidebar, each collection gets a visual emoji indicator for instant recognition:

| Collection | Indicator |
|---|---|
| Epic Games ๐ŸŸฆ | Blue (Epic brand color) |
| GOG Galaxy ๐ŸŸฃ | Purple (GOG brand color) |
| Amazon Games ๐ŸŸ  | Orange (Amazon brand color) |
| Lutris ๐ŸŽฎ | Controller |
| Bottles ๐Ÿพ | Bottle |
| itch.io ๐ŸŽฒ | Dice |
| Flatpak ๐Ÿ“ฆ | Package |

- **Binary VDF parser** - reads and writes Steam's `shortcuts.vdf` format with byte-for-byte accuracy
- **Batch import** - scan all platforms at once, pick what you want, add them all with progress tracking

*Steam's own "Add a Non-Steam Game" dialog can select multiple apps - but it only sees what's in your PATH, not your actual game libraries. SLM scans Heroic, Lutris, Bottles, and more directly, knows exactly what's installed, and organizes everything into clean collections automatically.*


External Games Manager - Scan and Import







๐Ÿ”„ Built-in Auto-Updates - Always Up to Date, Zero Effort

AppImage users get seamless in-app updates - no manual downloads, no terminal commands. SLM checks GitHub Releases automatically (configurable: daily, weekly, monthly, or never), shows full release notes with changelog, downloads in the background with progress tracking, and restarts into the new version with one click. If anything goes wrong, the previous version is automatically restored.

- **Atomic replace** with rollback - update can't leave you with a broken install
- **"Skip Version"** button - dismiss updates you don't want without being nagged
- **Configurable** - set your preferred check interval in Settings, or check manually anytime

*AUR and Flatpak users update through their package manager as usual.*


Built-in AppImage Auto-Update with Release Notes

๐Ÿ“ธ More Screenshots

Click to expand - Additional Views

| Screenshot | Description |
|-----------|-------------|
| ![Context Menu](steam_library_manager/resources/screenshots/14_context_menu.webp) | Right-click context menu - quick access to all actions |
| ![Export](steam_library_manager/resources/screenshots/15_export_dialog.webp) | Export dialog - CSV, JSON, VDF, Database Backup |
| ![About](steam_library_manager/resources/screenshots/16_about_dialog.webp) | About dialog with version & system info |

๐Ÿ“ฆ Download & Install

| Format | Download | Notes |
|--------|----------|-------|
| ๐Ÿง **AppImage** | [Download latest](https://github.com/Switch-Bros/SteamLibraryManager/releases) | Works on any distro - download, chmod +x, run |
| ๐Ÿ“ฆ **Flatpak** | *Pending Flathub review* | Sandboxed, auto-updates |
| ๐Ÿ—๏ธ **AUR** | `yay -S steam-library-manager` | Arch / Manjaro / CachyOS / EndeavourOS |
| ๐ŸŽฉ **.rpm** | [Download latest](https://github.com/Switch-Bros/SteamLibraryManager/releases) | Fedora / openSUSE |
| ๐Ÿฅ **.deb** | [Download latest](https://github.com/Switch-Bros/SteamLibraryManager/releases) | Debian / Ubuntu / Linux Mint |
| ๐Ÿ“ **tar.gz** | [Download latest](https://github.com/Switch-Bros/SteamLibraryManager/releases) | Portable with install script |

Runs great on Steam Deck - tested on both LCD and OLED models.
The interface automatically adapts to smaller displays.


Steam Library Manager running on Steam Deck

๐Ÿ”ง Build from source (for developers)

```bash
# Clone
git clone https://github.com/Switch-Bros/SteamLibraryManager.git
cd SteamLibraryManager

# Virtual environment
python3 -m venv .venv
source .venv/bin/activate

# Dependencies
pip install -r requirements.txt

# Run
python steam_library_manager/main.py
```

Requires **Python 3.10+** and a running **Steam client** (not Big Picture).







๐Ÿ”ง API & Authentication Requirements

This project uses the following services:

1. Steam Authentication (OAuth2)


- **Purpose:** Log in with your Steam account to access your library and display your profile name.
- **How it works:**
- Uses Steam's official **OAuth2** via `IAuthenticationService` (QR code or password login).
- Tokens are stored **encrypted** (AES-GCM) or in your system keyring.
- **Steam Web API Key** is **optional** thanks to OAuth2 - but **highly recommended** for full functionality (metadata enrichment, achievement sync, etc.).
- You can add your API key directly in the app under **Settings -> Steam Web API Key**.
- Get your key here: [Steam Web API Key](https://steamcommunity.com/dev/apikey)

2. SteamGridDB


- **Required for:** Customizing game covers, heroes, logos, and icons.
- **How to get the API key:**
- The app **automatically prompts** for the SteamGridDB API key when you click on a game cover for the first time.
- A window will open where you can:
1. **Get your API key** from [SteamGridDB](https://www.steamgriddb.com/api).
2. **Paste the key** into the app's input field.
3. Click **OK** - the key is saved locally, and covers are ready to use!
- **Note:** Users must comply with [SteamGridDB's Terms of Service](https://www.steamgriddb.com/terms).

3. HowLongToBeat (HLTB)


- **Included for:** Displaying game completion times and auto-categorization by playtime ranges.
- **No API key required.** Data is fetched automatically and cached locally.
- **Note:** HLTB does not officially provide a public API. Integration respects their [terms](https://howlongtobeat.com/).

4. ProtonDB


- **Included for:** Checking Linux/Proton compatibility ratings for games.
- **No API key required.** Read-only access, cached locally with 7-day TTL.

๐Ÿ—บ๏ธ Roadmap

| Milestone | Status |
|-----------|--------|
| Core engine, database, cloud sync, auth | โœ… Complete |
| Architecture refactoring, menu redesign | โœ… Complete |
| Depressurizer feature parity (17 AutoCat types) | โœ… Complete |
| Smart Collections, Steam Deck Optimizer, HLTB | โœ… Complete |
| External Games (8 parsers), ProtonDB, Curators | โœ… Complete |
| UI polish, keyboard shortcuts, documentation | โœ… Complete |
| **v1.1.1 - First public release** | โœ… **Released** |
| **v1.2.0 - Module rename, AUR package** | โœ… **Released** |
| Steam Deck responsive UI | โœ… Complete |
| Library Auto-Sync | โœ… Complete |
| Multi-format packaging (.deb, .rpm, tar.gz) | โœ… Complete |
| **v1.2.4 - Steam Deck + packaging release** | โœ… **Released** |
| **v1.2.5 - AppImage update fix** | โœ… **Released** |
| **v1.2.6 - Dock integration fix** | โœ… **Released** |
| **v1.2.7 - Security hardening** | โœ… **Released** |
| **v1.3.5 - First-run crash fix** | โœ… **Released** |
| **v1.3.6 - Refactoring regression fix** | โœ… **Released** |
| **v1.3.8 - steam.pipe false positive fix** | โœ… **Released** |
| **v1.3.9 - i18n cleanup, security, DRY** | โœ… **Released** |
| **v1.4.0 - Statistics Dashboard** | โœ… **Released** |
| Packaging (AppImage, AUR, Flatpak) | ๐Ÿ”„ Flatpak pending review |
| Windows support | ๐Ÿ“‹ Planned |

๐ŸŒ Translations

Steam Library Manager ships with **English** and **German**. Want to see it in your language?

**Contributing a translation is easy - no coding required!**

1. Copy any JSON file from `steam_library_manager/resources/i18n/en/` as your template
2. Translate the values (never change the keys!)
3. Keep placeholders like `{count}` and `{name}` untouched
4. Add your language to `steam_library_manager/resources/i18n/languages.json`:
```json
"fr": "๐Ÿ‡ซ๐Ÿ‡ท Franรงais"
```
5. Submit a Pull Request

The language name must always be in its **own native script** - "Franรงais", not "French".

๐Ÿ›ก๏ธ Privacy & Security

- **No telemetry.** Steam Library Manager does not phone home.
- **No data collection.** Your library, your data, your machine.
- **Token encryption.** Steam credentials stored using AES-GCM or system keyring.
- **API keys stored locally.** Never transmitted to third parties.
- **Automatic backups.** Before any write to Steam files, a backup is created.

๐Ÿค Contributing

- ๐Ÿ› **Found a bug?** -> [Open an Issue](https://github.com/Switch-Bros/SteamLibraryManager/issues)
- ๐Ÿ’ก **Have an idea?** -> [Start a Discussion](https://github.com/Switch-Bros/SteamLibraryManager/discussions)
- ๐ŸŒ **Speak another language?** -> [Help translate!](#-translations)
- ๐Ÿ”ง **Want to code?** -> Fork the repo, check the issues, and submit a PR

๐Ÿ™ Acknowledgments

- [SteamGridDB](https://www.steamgriddb.com/) - Game artwork
- [HowLongToBeat](https://howlongtobeat.com/) - Playtime data
- [ProtonDB](https://www.protondb.com/) - Linux compatibility ratings
- [SteamKit2](https://github.com/SteamRE/SteamKit) / [ValvePython/steam](https://github.com/solsticegamestudios/steam) - Steam protocol research
- [steamapi.xpaw.me](https://steamapi.xpaw.me/) - Steam Web API documentation

โš–๏ธ Legal Notice

This software is provided **"AS IS"**, without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose, and noninfringement.

In no event shall the authors or copyright holders be liable for any claim, damages, or other liability, whether in an action of contract, tort, or otherwise, arising from, out of, or in connection with the software or the use or other dealings in the software.

- You **must** comply with the terms of service of each API provider (Steam, SteamGridDB, HLTB, ProtonDB).
- The developer (**Switch Bros**) is **not responsible** for misuse of API keys or violations of third-party terms.
- API keys are **stored locally** and **never transmitted** to third parties.
- Steam Library Manager is **not affiliated with, endorsed by, or associated with Valve Corporation** or any other third-party service.

๐Ÿ“œ License

[MIT License](LICENSE) - Copyright ยฉ 2026 Switch Bros.








Made with โค๏ธ on Linux by Switch Bros