Powerful tool for real-time tracking of Steam players' activities.
New to Python or unsure what is installed? Follow the Python install walkthrough first.
Install from PyPI:
pip install steam_monitorRun the setup wizard:
steam_monitor --setupThe wizard asks for the target, the Steam Web API key and optional notifications. Review the settings before saving them. See Setup & First Run for how to get the Steam Web API key and the required privacy settings.
For the manual single-file method, optional dependencies and upgrade commands, see Installation.
- Gaming activity: Detect online and offline status, game starts, finishes and changes.
- Profile changes: Track persona names, Steam level, XP, friends and game libraries.
- Session statistics: Measure time in each state, time per game and games played.
- Profile details: View badges, bans, friends, top games and recent playtime.
- Optional detail: Include friendship dates, persona name history and recent achievements.
- Profile URLs: Resolve Steam community links without looking up a numeric ID.
- Event alerts: Configure email, Discord and ntfy notifications independently.
- CSV history: Save activity and profile changes with timestamps.
- Session continuity: Save status across restarts and preserve statistics through short offline interruptions.
- Guided setup: Review settings with
--setupand check readiness with--doctor. - Flexible settings: Use config files, dotenv files, environment variables and command-line options.
- Terminal and runtime controls: Customize colours and adjust the running monitor through supported signals.
Use Quick Install & Run above for first-time setup. The table uses PyPI commands. For the manual script equivalents, see Run Individual Commands.
Replace the target placeholders with a Steam64 ID or complete Steam community profile URL. Monitoring requires the Steam Web API key described in the setup guide.
| I want to... | Run this |
|---|---|
| Configure the target, credentials and alerts | steam_monitor --setup |
| Start monitoring with existing authentication | steam_monitor <steam_target> |
| Check authentication, connectivity and one target | steam_monitor --doctor <steam_target> |
| Enter or replace securely the Steam Web API key | steam_monitor --set-steam-api-key |
| Configure and test webhook alerts | Use the setup wizard or follow Webhook Settings |
| Save an SMTP password for email alerts | steam_monitor --set-smtp-password |
| Send a test email | steam_monitor --send-test-email |
| Save a new webhook URL | steam_monitor --set-webhook-url |
| Send a test webhook | steam_monitor --send-test-webhook |
| Show profile details once | steam_monitor <steam_target> -i |
| Also list friends and recent achievements | steam_monitor <steam_target> -i --list-friends --achievements |
| Resolve a community URL to a Steam64 ID | steam_monitor -r <community_url> |
| Write every change to a CSV file | steam_monitor <steam_target> -b changes.csv |
| Use a specific configuration and secrets file | steam_monitor --config-file steam_monitor.conf --env-file .env <steam_target> |
| List every supported command-line flag | steam_monitor --help |
The monitored account must expose the activity described in User Privacy Settings.
Running the tool with no arguments offers the wizard if you have not saved a profile. If a profile is already saved, it starts monitoring that profile.
The tool runs until interrupted (Ctrl+C). Use tmux or screen for persistence and run multiple copies to monitor several profiles.
For the Web API key, saved profiles and notification setup, see the full Setup & First Run guide.
For email and webhook setup, see Configuration. For notification choices, user information commands and output files, see Usage.
If a run fails, start with Doctor Preflight.
Full documentation is available at misiektoja.github.io/steam_monitor:
| Page | What it covers |
|---|---|
| Installation | Python walkthrough, PyPI or manual installation, upgrades |
| Setup & First Run | Setup wizard, the Steam Web API key, profile visibility, the first monitoring run |
| Configuration | Config file, SMTP, webhooks, storing secrets, check intervals |
| Usage | Monitoring mode, user information mode, notifications, CSV export, signals, terminal output |
| Troubleshooting | --doctor preflight checks, what to do when something fails, --verbose and --debug output |
| Testing | Running the offline suite, the linter and the docs build |
| About | Requirements, change log, contributing, security, license, support |
See RELEASE_NOTES.md.
Bug reports, documentation fixes and code contributions are welcome. See CONTRIBUTING.md for the development setup, the checks CI enforces and what a change needs before it is merged. Participation is covered by the Code of Conduct.
Report a suspected vulnerability privately through GitHub security advisories, never as a public issue. SECURITY.md covers the reporting process and the supported versions.
- misiektoja (@misiektoja)
Licensed under GPLv3. See LICENSE. Dependency licenses are listed in THIRD_PARTY_NOTICES.md.
Questions, bug reports and vulnerability reports each have a place, listed in SUPPORT.md.
If the project is useful to you, you can support its development through GitHub Sponsors or Buy Me a Coffee.
