HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
ValveSoftware
Proton
C++2018–2026
ValveSoftware / Proton

Proton

Compatibility tool for Steam Play based on Wine and additional components

97Distinct people
118Mentions
0Explicit recommenders
33.3KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Compatibility tool for Steam Play based on Wine and additional components

GitHub

Where it is used

  • Heroic — Heroic uses Proton to run Windows games on Linux and provides in-app selection and download of Proton versions. Source
  • Steam Deck — Steam Deck includes Proton in SteamOS to run games without porting work. Proton functions as the runtime compatibility layer for playing games on the device. Source

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 8–Nov 15 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/15/2026, 12:45:45 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year118 dated mentions

Observed mentions: 2018-08-22 00:04:53 UTC to 2026-10-01 20:00:29 UTC.

05101520252018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 10 mentions; 3 submissions, 7 comments20182019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 17 mentions; 5 submissions, 12 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 25 mentions; 2 submissions, 23 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 15 mentions; 1 submissions, 14 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 8 mentions; 1 submissions, 7 comments20222023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 8 mentions; 3 submissions, 5 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 14 mentions; 2 submissions, 12 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 11 mentions; 3 submissions, 8 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 10 mentions; 0 submissions, 10 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC1037
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC17512
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC25223
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC15114
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC817
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC835
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC14212
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC1138
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC10010

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
Introduction Proton is a tool for use with the Steam client which allows games which are exclusive to Windows to run on the Linux operating system. It uses Wine to facilitate this. Most users should use Proton provided by the Steam Client itself. See this Steam Community post for more details. The source code is provided to enable advanced users the ability to alter Proton. For example, some users may wish to use a different version of Wine with a particular title. The changelog is available on our wiki. Obtaining Proton sources Acquire Proton's source by cloning https://github.com/ValveSoftware/Proton and checking out the branch you desire. You can clone the latest Proton to your system with this command: git clone --recurse-submodules https://github.com/ValveSoftware/Proton.git proton Be sure to update submodules when switching between branches: git checkout experimental_6.3 git submodule update --init --recursive If you want to change any subcomponent, now is the time to do so. For example, if you wish to make changes to Wine, you would apply them to the wine/ directory. Building Proton Most of Proton builds inside the Proton SDK container with very few dependencies on the host side. Preparing the build environment You need either a Docker or a Podman setup which Proton's build system uses internally. You should never need to use either container engine manually unless working on those parts of build system directly. We highly recommend the rootless Podman setup. Please refer to your distribution's documentation for setup instructions (e.g. Arch Podman / Docker, Debian Podman / Docker). The Easy Way We provide a top-level Makefile which will execute most of the build commands for you. After checking out the repository and updating its submodules, assuming that you have a working Docker or Podman setup, you can build and install Proton with a simple: make install If your build system is missing dependencies, it will fail quickly with a clear error message. After the build finishes, you may need to restart the Steam client to see the new Proton tool. The tool's name in the Steam client will be based on the currently checked out branch of Proton. You can override this name using the build_name variable. See make help for other build targets and options. Manual building Configuring the build mkdir ../build && cd ../build ../proton/configure.sh --enable-ccache --build-name=my_build Running configure.sh will create a Makefile allowing you to build Proton. The scripts checks if containers are functional and prompt you if any host-side dependencies are missing. You should run the command from a directory created specifically for your build. The configuration script tries to discover a working Docker or Podman setup to use, but you can force a compatible engine with --container-engine=<executable_name>. You can enable ccache with --enable-cache flag. This will mount your $CCACHE_DIR or $HOME/.ccache inside the container. --proton-sdk-image=registry.gitlab.steamos.cloud/proton/soldier/sdk:<version> can be used to build with a custom version of the Proton SDK images. Check --help for other configuration options. NOTE: If SELinux is in use, the Proton build container may fail to access your user's files. This is caused by SELinux's filesystem labels. You may pass the --relabel-volumes switch to configure to cause the container engine to relabel its bind-mounts and allow access to those files from within the container. This can be dangerous when used with system directories. Proceed with caution and refer your container engine's manual. Building make Important make targets: make install - install Proton into your user's Steam directory, see the install Proton locally section for details. make redist - create a redistribute build (redist/) that can be copied to ~/.steam/root/compatibilitytools.d/. make deploy - create a deployment build (deploy/). This is what we use to deploy Proton to Steam users via Steamworks. make module=<module> module - build both 32- and 64-bit versions of the specified wine module. This allows rapid iteration on one module. This target is only useful after building Proton. make dxvk / make vkd3d-proton - rebuild DXVK / vkd3d-proton. Figuring Out What Failed To Build Proton build system invokes builds of many subprojects in parallel. If one subprojects fails there can be thousands of lines printed by other sub-builds before the top level exits. This can make the real reason of the build failing hard to find. Appending 2>&1 | tee build.log will log the full build output to a build.log file. Searching that file from the bottom up for occurrences of Error should point to the right area. E.g.: make 2>&1 | tee build.log grep -n '] Error [0-9]' build.log 11220:make: *** [../Makefile.in:465: /builds/proton/proton/build-dir/.kaldi-i386-configure] Error 1 12427:make: *** [../Makefile.in:1323: deploy] Error 2 Debug Builds To prevent symbol stripping add UNSTRIPPED_BUILD=1 to the make invocation. This should be used only with a clean build directory. E.g.: mkdir ../debug-proton-build && cd ../debug-proton-build ../proton/configure.sh --enable-ccache --build-name=debug_build make UNSTRIPPED_BUILD=1 install ARM64 Builds You need an ARM64 build machine and pass --target-arch=arm64 to configure.sh. It's not possible to use the resulting builds in x86 Steam running via FEX. Install Proton locally Steam ships with several versions of Proton, which games will use by default or that you can select in Steam Settings' Steam Play page. Steam also supports running games with local builds of Proton, which you can install on your machine. To install a local build of Proton into Steam, make a new directory in ~/.steam/root/compatibilitytools.d/ with a tool name of your choosing and place the directory containing your redistributable build under that path. The make install target will perform this task for you, installing the Proton build into the Steam folder for the current user. You will have
Read the full README on GitHub

What Hacker News says

14 sources
Proton does such a good job that it is difficult to justify the cost of porting games when they already run on Linux in Proton. That said, Feral Interactive is still porting games to Linux and they have not gone bankrupt: https://www.feralinteractive.com/en/news/?platform=linux Proton often runs games better than the native ports, so there is not much of a loss if there are fewer native ports. Furthermore, in a number of cases, Windows games actually run better on Linux in Proton than on Windows. Elden Ring is a fantastic example, as on day 1, it performed about 15% better on Linux in average FPS, and had substantially less stutter if I recall correctly. World of Warcraft is another great example. It is well known to get about 20% better performance on Linux than on Windows: https://www.youtube.com/watch?v=V2_LlSaYNUo Minecraft is another
Read the rest
such game: https://www.youtube.com/watch?v=ytgDMgYL0eo If you use AMD GPUs, it is more often the case that Linux will outperform Windows in games, since Valve wrote the shader compiler used for them on Linux and it is fairly amazing: https://steamcommunity.com/games/221410/announcements/detail... Nvidia is working on improvements for the performance of Windows games running on Linux too. A recent driver release mentions a few such improvements: https://www.nvidia.com/en-us/drivers/details/237587/ Not all games perform better on Linux than on Windows, although Valve has people actively working on changing this: https://github.com/ValveSoftware/Proton/wiki/Changelog
In Why Linux is not ready for the desktop, the final edition
Proton (Steam Play 2.0) is a set of game-focused patches on top of Wine, plus several other components that improve game compatibility and/or performance. The most notable of these are DXVK, which implements Direct3D 8/9/10/11 APIs in terms of Vulkan, and vkd3d-proton, which does the same for Direct3D 12. In many cases, it's possible to get a game running with regular Wine (or Wine-staging) if you install into the Wine prefix not only the game, but also one or more of: DXVK, vkd3d-proton, whatever Microsoft Visual C++ runtime the game wants, and Mono. If a game also needs custom Wine patches, you'll have better luck with a game manager like Lutris, which automates installing patched Wine versions, or running a Wine build like the one that GloriousEggroll maintained until recently. Be sure that your graphics card's Vulkan drivers are inst
Read the rest
alled, and if it's a 32-bit game, all the appropriate 32-bit libraries as well. Valve's issue tracker for games running in Proton often has comments that are helpful when trying to bring up a game in Wine. https://github.com/ValveSoftware/Proton https://github.com/doitsujin/dxvk https://github.com/HansKristian-Work/vkd3d-proton https://github.com/GloriousEggroll/wine-ge-custom https://github.com/ValveSoftware/Proton/issues
In Wine 10.0 RC1 – Run Windows Applications on Linux, BSD, Solaris and macOS
Steam (via Proton) generally works, though, for those who wish to use it. (Steam+Proton also works with things downloaded from outside of Steam, too, and has for years[0].) Proton itself is open-source[1]. If someone wanted to package up standalone Proton binaries for a Linux distro, then I don't see any particular barriers that would prevent that. On GoG's part, they do provide the ability to just download a game with a web browser (the old-fashioned, DRM-free way). From there, I can manage the games I that own in any way that I choose. Thus, I'm simply not seeing a problem here that needs solved. I already have the freedom to do whatever I want. Which part of this situation is broken, do you suppose, and why does GoG in particular need to fix it? [0]: https://boilingsteam.com/valve-breaks-the-shackles-of-proton... [1]: https://gith
Read the rest
In Valve says Steam users don't own a thing, GOG says its games can't be taken away
My guess is they focus on Proton for Steam Deck, which can not run VR comfortably (but, it can run it via USB-C docks/dongles, the power of a full Linux PC!). So we get constantly better Proton compatibility, including work on anti cheats, but VR is low to no priority. The market is pretty small, especially if you mostly worry about Index and related PC-tethered headsets. Also developing VR for Linux can't be an easy task. I am especially annoyed that they more or less dropped the ball when it comes to Beat Saber via Proton. Beat Saber was an official launch title for Proton, but was unplayable for months [1]. [1] https://github.com/ValveSoftware/Proton/issues/6638
In Microsoft Recall is now an explorer.exe dependency
Better yet, use a container. Distrobox[1] automates the process of installing popular distros released in the past decade or so in containers. For games in particular, Proton[2] (a game-specific Wine fork) or one of the Steam container runtimes[3] (for native Linux games) might also be worth a try. For a non-Steam game: 1. Install and run the Linux Steam client (Steam account required). 2. Add the game to the Steam library: "Add a Game" → "Add a Non-Steam Game…", choose game executable. 3. Right click on the game, choose "Properties" → "Compatibility" → "Force the use of a specific Steam Play compatibility tool", and choose a version of Proton or container runtime (the most recent non-experimental version is probably a sane default). 4. Make sure the selected Proton or container runtime version is installed. These should be available for
Read the rest
installation from the Steam library by default. If you can't find them, click the dropdown above the search box in the Steam library, make sure "Tools" is checked, and make sure the "Show only ready to play games" option ("play" arrow in a circle icon to the right of the same dropdown) is disabled. 5. Launch the game from the Steam library. [1] https://distrobox.it/compatibility/#containers-distros [2] https://github.com/ValveSoftware/Proton [3] https://gitlab.steamos.cloud/steamrt/steam-runtime-tools/-/b...
In Ask HN: What makes Windows 11 perform much worse than Windows XP?
> The important part here is of course not just the Steam Deck support, but the fact that the Steam Deck is just a handheld Linux computer; if it works there, it will work on any Linux machine. Kind of but not that simple.. The 'secret sauce' if you can call it that is the "Steam Proton" compatibility layer for Windows graphics APIs using a combination of Wine and DXVK. So 'any linux distro' is a bit of a stretch, in fact I'm not sure the public availability of the Proton as it was a partnership with Valve and CodeWeavers. Edit: `DXVK` is DirectX over Vulkan which is fast becoming more performant and ubiquitous. Edit2 : Proton's repo - https://github.com/ValveSoftware/Proton
In Steam Deck officially hits over 13,000 games Playable and Verified

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.