Skip to main content

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.

Docs

Buy Me a Coffee Ko-fi


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)

Source distribution for steam-client 6.0.2
File Size Uploaded
steam_client-6.0.2.tar.gz 17.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for steam-client 6.0.2
File Interpreter ABI Platform
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 log

Release 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
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page