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 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 1:49:46 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

118 sources
Location: Kiel, Germany (CET) Remote: Yes. EU hours; US-East mornings work. On-site in northern Germany. Willing to relocate: No Technologies: C++, Python, PyTorch/TensorFlow, CUDA/SIMD; computer vision (retrieval at scale, inspection, SfM/SLAM); German speech recognition on-prem; real-time audio and kernel drivers; embedded/edge inference; RL environments (PPO, verifiable rewards); the boring enterprise plumbing around all of it Résumé/CV: https://hajo.me/cv/ Email: hn@hajo.me I'm the fractional ImageRights CTO, looking for a 2nd startup that needs hands-on tech, scale, or AI help. I have 18 years of experience across 5 companies in taking products from idea to paying customers. I've built ImageRights' web search and image-retrieval database (C++, in service since 2015, finds copyright infringements worldwide), DeutscheKI (100% private G
Read the rest
erman AI and local ASR), and before that the Spatial Audio Designer, used in Hollywood. And a German image distribution start-up. I have experience with AI research, adaptation, and training. I've built AI RLVR training tasks in the past. Won the 2021 Bomberland mid-season with PPO. I'm also open to northern German on-prem CV/ASR work in case you cannot ship data to any cloud. Side interests: I built a Pump It Up pad with custom self-developed and self-manufactured sensors. Currently doing CAD design and policy training (with PPO) for a robot. Recently I've been debugging MSFS2024 inside Proton: https://github.com/ValveSoftware/Proton/issues/8255#issuecom...
In Ask HN: Who wants to be hired? (October 2026)
I would be extraordinarily surprised if this were true. Let's be real: This is going to be a tiny volume product. Big for Linux gaming, but tiny in the grand scheme of things. Certainly minuscule compared to Windows gaming, or the PS4/5. It could have been something, but the target market is precisely the market that will look at the price and say "Nah". And as one point of clarification, game makers by and large still aren't targeting Linux. This machine works via the absolutely excellent, almost magical Proton (https://github.com/valvesoftware/proton) that lets you run most of your Windows library on Linux, largely seamlessly.
In Steam Machine launches today
The way games on Linux work today is most are compiled for Windows. There are a few exceptions like Civ will in many cases provide a fully Linux native build. But even in that case on Linux you can choose whether to run the native or the Windows version. When you download a Windows game on Steam you will go into the Settings and select "Compatibility Layer" and there you will find several versions of Proton. Proton https://github.com/ValveSoftware/Proton is a pre-configured wine bundled with windows DLLs and Linux .so library files. This makes Proton Immutable for any given major version. Meaning you can run Proton 2.x for your game if that's what fits your situation. It's always there if you need it for your specific games. Steam launches this in a container. It is not emulated. It is a fully native implementation of the API that in man
Read the rest
y cases achieves superior performance. This is why you will sometimes see the joke that the most compatible API for Linux is actually the w32 API. This API is now at the point where pretty much everything works unless you cripple it on purpose. And that's what Epic Games is doing here. There's no technical reason for this. It's a business decision that doesn't even make sense because frankly I could vibe code them a linux native game client that launches their games properly on linux in a few days.
In Lore – Open source version control system designed for scalability
https://github.com/ValveSoftware/Proton/issues/1493 This is fun, just found this issue from 2018 which was closed with this comment: > Hello @setsunati, this is not a realistic objective for Proton. As @rkfg, mentions wine for ARM does not magically make x86 based games work on ARM cpus. > Even if Steam were brought to ARM, and an x86 emulation layer was run underneath wine, the amount of games that could run fast and without hitting video driver quirks is small enough not to entertain this idea any time in the near future. It's mentioned in this issue https://github.com/ValveSoftware/Proton/issues/8136 which was closed Oct 2024 with this comment by kisak-valve: > Hello @Theleafir1, similar to #1493, this is not a realistic objective for Proton any time in the near future.
In Steam Machine
I didn't vendor them, but I did do an eyeball scan of every package in the full tree for my project, primarily to gather their license requirements[1]. (This was surprisingly difficult for something that every project in theory must do to meet licensing requirements!) It amounted to approximately 50 dependencies pulled into the build, to create a single gstreamer plugin. Not a fan. [1] https://github.com/ValveSoftware/Proton/commit/f21922d970888...
In Malicious versions of Nx and some supporting plugins were published

Showing the 15 most recent of 118 sources. Enable JavaScript to search and browse every indexed mention.

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.