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.
- Windows 10/11.
- Python 3.8 or newer.
- Node.js with npm.
- Microsoft Edge WebView2 Runtime for
pywebview. - A Steam account you own.
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_booster- 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.
Runtime 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.
Optional local icon assets can be placed at tmp\steam_icon.ico and tmp\steam_icon.png for development builds. They are intentionally ignored so branded third-party assets are not redistributed from this repository.
Run tests:
python -m pytestRun a Node bridge smoke check:
npm run smoke:steam-bridgeCompile Python sources:
python -m compileall srcThe 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.
This is an alpha desktop application with a working local runtime path. It is suitable for public source review and local development, but it is not yet packaged as a signed end-user installer.
Recommended next release hardening:
- Signed Windows build artifact.
- Installer/uninstaller workflow.
- First-run dependency checks inside the UI.
- Clearer release notes and screenshots.
- Upstream tracking for
steam-usertransitive npm audit advisories.
steam-user currently pulls a transitive steam-appticket dependency that npm audit flags through an older nested protobufjs. The app needs the current steam-user 5.x refresh-token path; npm's suggested forced audit fix downgrades steam-user and is not compatible with the runtime. Track upstream fixes before publishing packaged binaries.
MIT. See LICENSE.