Skip to content

protondl

Welcome to the documentation of protondl, a modern, headless, and async-first Python library for downloading and managing compatibility tools such as GE-Proton, Proton-Tkg, DXVK, and vkd3d-proton for Steam, Lutris, Heroic, Bottles, and other Linux game launchers.

✨ Features

  • Launcher Discovery: Automatically detects Native, Flatpak, and Snap installations of Steam and other launchers.
  • Modular Architecture: Easily extendable for new compatibility tools or launchers.
  • Async-First: Built with httpx and asyncio for non-blocking downloads.
  • Headless by Design: No Qt/GUI dependencies in the core library.
  • Modern Tooling: Powered by uv, ruff, and mypy for a rock-solid developer experience.

Supported Launchers

Tool Type Steam Lutris Heroic Games Launcher Bottles
⚛️ Proton
🍷 Wine
🇽 VKD3D
9️⃣ DXVK

Supported Tools

Current Scope

  • Launcher discovery: Steam, Lutris, Heroic, and Bottles (native/flatpak; Steam also snap).
  • Tool management (install/list tools): Steam, Lutris, Heroic, and Bottles.
  • Game management (list games, set game tools, Steam Deck status): Steam only.
  • Global/default compatibility tool management: Steam only.

Comparison

Below, you can find a comparison chart of different compatibility tool installer tools.

Feature protondl ProtonUp-Qt^1 ProtonPlus^2 Protonup-rs^3
GUI
CLI
Library
Install compatibility tools
Fetch available tool versions
List installed tools
List installed games
Get tool used by a game
Set tool used by a game
Show game SteamDeck rating
Show game AWACY^4 rating
Programming language Python Python Vala Rust
GUI/TUI typer, rich Qt GTK clap, indicatif

The table may be out-of-date. Please create an issue or pull request if that is the case.