Steam Hour Booster is a desktop app for running Steam played-state hour boosting across one or more Steam accounts. It uses a custom pywebview shell, SteamCommunityKit for web authentication, and a Node-backed Steam client bridge for modern Steam client authorization.
The app is built as a local-first desktop tool. Account sessions, runtime cache, and logs stay on the local machine under the user's app data directory.
This project is not affiliated with Valve or Steam. Use it only with accounts you own. Steam account automation may carry account risk, so review Steam's current rules before using it.
- Custom frameless desktop UI with overview, account management, activity logs, and per-account editing.
- Username/password login with Steam Guard email or app-code follow-up.
- QR-code login through SteamCommunityKit.
- Separate Steam client authorization through
steam-user/steam-session. - Multiple saved Steam accounts with separate settings per account.
- Per-account boost toggle and appear-online/invisible behavior.
- Up to 32 configured app slots per account.
- Popular game presets plus custom App ID entries.
- Owned-game validation when a Steam Web API key is available.
- Start/stop controls for one account or all ready accounts.
- Conflict handling for other sessions playing games: pause, force kick, or yield.
- Auto-reply settings with custom message, cooldown, and timeout.
- Runtime event log and in-app diagnostics.
- Open the latest GitHub release.
- Download
SteamHourBooster-Setup-<version>.exe. - Run the installer.
- Open
Steam Hour Boosterfrom the Start Menu.
The installer bundles the desktop app, Python runtime files, and the Node runtime used for Steam client authorization. You do not need to install Python, Node.js, or npm to use the released app.
Windows may show a SmartScreen prompt because the installer is not code-signed yet. The release is built by GitHub Actions from the source in this repository.
- Windows 10/11.
- Microsoft Edge WebView2 Runtime.
- A Steam account you own.
- Open the app.
- Add a Steam account with username/password or QR login.
- If the account shows
Needs Auth, open the account editor and runFinish booster sign-in. - Add game App IDs through presets or custom entries.
- Save the account profile.
- Start the account from Overview.
The console panel shows authentication and runtime activity such as account start, stop, reconnect, and conflict state.
Use this path only if you want to run or modify the project locally instead of using the release installer.
Requirements for source builds:
- Python 3.8 or newer.
- Node.js with npm.
Clone the repository, then run the desktop app from the project root.
powershell -ExecutionPolicy Bypass -File .\run_dev.ps1The launcher installs Python dependencies and Node bridge dependencies before starting the app.
If dependencies are already installed:
powershell -ExecutionPolicy Bypass -File .\run_dev.ps1 -SkipInstallBatch launcher:
run_dev.cmd
run_dev.cmd -SkipInstallManual setup:
python -m pip install -e ".[dev]"
npm install
python -m steam_hour_boosterRuntime data is stored outside the repository:
%LOCALAPPDATA%\SteamHourBooster\
Important paths:
config.json: app preferences and non-secret account profile settings.sessions\: SteamCommunityKit session bundles, Steam client auth metadata, and local runtime cache.logs\runtime.log: runtime event log.
Do not commit local runtime data, .env files, credentials, screenshots containing account secrets, or the contents of %LOCALAPPDATA%\SteamHourBooster.
Run tests:
python -m pytestRun a Node bridge smoke check:
npm run smoke:steam-bridgeCompile Python sources:
python -m compileall srcInstaller releases are produced by GitHub Actions. Maintainers can push a version tag to run the Windows packaging workflow:
git tag v0.1.2
git push origin v0.1.2The workflow runs the test suite, verifies the Node Steam bridge, builds a PyInstaller desktop app folder, wraps it with Inno Setup, uploads the installer artifact, and publishes a GitHub release.
The app is split into clear boundaries:
steam_hour_booster.web: HTML/CSS/JS desktop shell and pywebview bridge.steam_hour_booster.auth.community: SteamCommunityKit web auth and session bundle handling.steam_hour_booster.auth.client: Node Steam client bridge wrapper for modern client refresh-token authorization.steam_hour_booster.runtime: live played-state runtime, reconnect handling, conflict policy, and telemetry.steam_hour_booster.session_store: local bundle/cache storage under app data.
The Steam client auth bridge depends on:
steam-session: modern Steam auth/session flow.steam-user: Steam client login, refresh-token handling,gamesPlayed, conflict state, and chat events.
MIT. See LICENSE.