Steam Client
A Python library for interacting with a locally installed Steam client — enumerate your game library/non-steam games, read game metadata and artwork paths, and send Steam URI commands.
Installation
Requires Python 3.11+.
pip install steam-client
Or install from source:
pip install -e .
Quickstart
from steam_client.steam import Steam
steam = Steam() # Uses default path: C:\Program Files (x86)\Steam
# On Windows, auto-detect path from registry:
from steam_client.utils import steam_from_registry
steam = steam_from_registry()
Common Operations
List all installed games
for game in steam.library.games():
print(game.appid, game.name)
Find a game
game = steam.library.game_by_id("440") # by app ID
game = steam.library.game_by_name("Portal 2") # by name (case-insensitive)
Artwork paths
game.header # Path to header image (460×215 jpg)
game.grid # Path to grid image (600×900 jpg)
game.hero # Path to hero image
game.icon # Path to icon file, or None
Launch and manage games via Steam URI commands
from steam_client import commands
from steam_client.commands import SteamWindow
commands.run_game_id("440") # Launch a game
commands.store("440") # Open store page
commands.install("440") # Prompt install
commands.uninstall("440") # Prompt uninstall
commands.open_window(SteamWindow.FRIENDS) # Open a Steam window
commands.open_url("https://store.steampowered.com")
Or launch a game directly from a Game object:
game.run()
Users and shortcuts
for user in steam.users:
print(user.user.data.PersonaName)
for shortcut in steam.library.shortcuts():
print(shortcut.name)
If Steam is not installed at the given path, calls that read Steam data raise steam_client.SteamNotFoundError.
Platform Notes
| Platform | Path | Registry helper |
|---|---|---|
| Windows | C:\Program Files (x86)\Steam (default) |
steam_from_registry() |
| Linux | Pass yours, e.g. ~/.local/share/Steam |
Not available |
Pass a custom path to override the default:
steam = Steam("/custom/steam/path")
Requires read access to local Steam config files (libraryfolders.vdf, shortcuts.vdf, appmanifest files).
Development
pytest # Run tests
flake8 steam_client # Lint
mypy steam_client # Type check
mkdocs serve # Preview docs locally
mkdocs build --strict # Validate docs build
tox # Run all environments (lint, type, docs, py311–314)
bump-my-version show current_version # Show current version
bump-my-version bump patch # 4.0.0 → 4.0.1
bump-my-version bump minor # 4.0.0 → 4.1.0
bump-my-version bump major # 4.0.0 → 5.0.0
Metadata
Release files for steam-client 6.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| steam_client-6.0.2.tar.gz | 17.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| steam_client-6.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 31.0 kB
Release files / steam_client-6.0.2.tar.gz
| Download URL | steam_client-6.0.2.tar.gz |
|---|---|
| Size | 17.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d92ea07362c5828f3265e407ab176d7fbc1a108a7d1ba47491149274340e62b5
|
|
BLAKE2b-256 checksum How to use checksums |
f04b1781b1701e6369f3320aa4caa561394c6217dff358393e9813c9a78c73b0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 31, 2026.
Transparency logRelease files / steam_client-6.0.2-py3-none-any.whl
| Download URL | steam_client-6.0.2-py3-none-any.whl |
|---|---|
| Size | 13.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
40e75a61b812e700730a2f5acf96ed26c68a86cc78a0d70c9967d5149db2b570
|
|
BLAKE2b-256 checksum How to use checksums |
e0e293667b83c9611d091c6a54d90bf2a1cf76dda3f053034579313a8ba69633
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 31, 2026.
Transparency log