Skip to content

Conversation

@imLinguin
Copy link
Member

Well.. people asked for it.

This feature relies on Steam itself to handle games installations. All it does is show games in Heroic's UI.

Use the following Checklist if you have changed something on the Backend or Frontend:

  • Tested the feature and it's working on a current and clean install.
  • Tested the main App features and they are still working on a current and clean install. (Login, Install, Play, Uninstall, Move games, etc.)
  • Created / Updated Tests (If necessary)
  • Created / Updated documentation (If necessary)

@flavioislima flavioislima added the pr:wip WIP, don't merge. label Dec 22, 2025
@a5ehren
Copy link
Contributor

a5ehren commented Jan 2, 2026

Not a maintainer, but it doesn't really feel like "read the VDF from a Steam installation and show the list" is really in the spirit of this project?

Especially when there are things like node-steam-user that can be leveraged to do authentication and fetch the library from the server without the helper programs that HGL has to use for everything else.

@imLinguin
Copy link
Member Author

imLinguin commented Jan 2, 2026

The idea for integrations in Heroic was to always let people interact with given game store without a need for official client, and on platforms such as Linux or Mac where often the support is limited or not existent.

However given the fact how some people use Heroic in a library aggregation use-case, expecting to see all their games in one place, and we were receiving requests to support Steam as well - this PR was born.

As per your point

Especially when there are things like node-steam-user that can be leveraged to do authentication and fetch the library from the server without the helper programs that HGL has to use for everything else.

Given how complex Steam client is and that it works perfectly fine on Linux systems, I still see no real incentive to pursue completely replacing the official client or parts of it. I think handling Steam login in Heroic is an unnecessary step, as we would still delegate installation and launch process of Steam games to the official client.

That said, this Pull Request is quite mature proof of concept, I'm open to discussion on this topic whether other maintainers and community feel strongly about supporting Steam or if it doesn't fit the project that well.
I'm personally torn between two sides

  1. Seeing Steam games among others in one library is a valid use-case
  2. Steam integration really stands out from the rest of supported platforms in terms of supported features and UX

@Po11da
Copy link

Po11da commented Jan 2, 2026

It's a tough case, since Steam is much more feature-rich and it greatly depends on the user. One may be achievement maxer, the other may not care about achievements at all but their favourite games have rich, Workshop-only modding community.
I think UX consistency should be a priority, with backend playing secondary role. To recall, the biggest selling points are (in my opinion, at least):

  • pleasing, intuitive, consistent interface
  • access to multiple game libraries in single view, with support for extra features such as cloud saves or achievements
  • lightweight, doesn't have to run full launchets.
    The main approaches to integrate Steam are:
  1. Don't do it. Maintain status quo. But many players rely solely on Heroic ans Steam to launch games and would benefit from even simple integration.
  2. Use native launcher in the background. Conflicts with current approach but offers full features, though they have to be accessed directlt from Steam. Should be easiest to implement.
  3. Use community reverse-engineered launcher. It will lack support for some features, however.
  4. Let users choose. Win-win except it introduces huge maintenance burden.
  5. Use community cli, but work on the same directories Steam uses by default (or just make a symlink for entire steamapps?) The main use case would be Workshop, can't really think of any other.
    Looking at the state of Open Steam Client, I'm inclined to option 2 and reconsider 3 once it (or another community client) matures.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr:wip WIP, don't merge.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants