Real-time CS2 skin arbitrage and market monitoring bot. Steam-Pulse is designed as a professional, extensible and safe analytics product for tracking price gaps across Steam and external marketplaces.
The project is in read-only MVP phase. It already has a Python backend with domain models, marketplace adapter contracts, demo/real adapters, SQLite storage, Telegram-ready notification channel, operator storage commands, graceful worker shutdown and Docker runtime.
- Python 3.11+
- Pydantic Settings
- HTTPX
- Typer CLI
- SQLite via aiosqlite
- Docker and Docker Compose
- Pytest, Ruff, MyPy and pip-audit for quality checks
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
python -m pip install -e ".[dev]"
Copy-Item .env.example .env
steam-pulse doctor --offline
steam-pulse scan --demoYes. The MVP is usable now as a read-only analytics tool:
demomode is ready for immediate local validation and does not call real marketplaces.realmode can run Steam baseline plus CSFloat, but marketplace access can still depend on CSFloat availability, credentials, request profile and rate limits.- Telegram alerts are implemented, but stay disabled until
STEAM_PULSE_TELEGRAM_ENABLED=true,STEAM_PULSE_TELEGRAM_BOT_TOKENandSTEAM_PULSE_TELEGRAM_CHAT_IDare configured. - Automated buying, selling and Steam account actions are not part of the MVP.
First local use:
steam-pulse doctor --offline
steam-pulse status
steam-pulse scan --demo
steam-pulse storage stats
steam-pulse storage runs --limit 5If repeated demo scans show opportunities=1 alerts=0, the signal was deduplicated because it was already sent recently. Use a temporary database when you want to see a fresh demo alert again:
$env:STEAM_PULSE_DATABASE_URL="sqlite:///data/steam_pulse-demo-fresh.db"
steam-pulse scan --demoFirst real-market read-only check after editing .env:
steam-pulse doctor --online --real
steam-pulse scan --realLong-running worker:
steam-pulse workerRun steam-pulse worker --send-alerts only after Telegram settings are configured.
Telegram setup helper:
steam-pulse telegram chats
steam-pulse telegram testSend any message to the bot first, then run steam-pulse telegram chats to find the chat id for STEAM_PULSE_TELEGRAM_CHAT_ID.
docker compose up --buildGitHub Actions runs the same quality gate used locally:
python -m pytest
python -m ruff check .
python -m mypy src
python -m pip check
python -m pip_audit
docker compose config --quiet- Documentation index
- Master prompt
- Product vision
- Architecture
- Project structure
- Marketplace integration
- Analytics engine
- Alerting
- Security
- Roadmap
- Stack
- Deployment
- Operations runbook
- MVP handoff
Steam-Pulse starts as a safe read-only analytics engine. Automated buying, selling or account actions are outside the MVP and must only be considered after strong risk controls, audit logs, explicit user approval and platform compliance review.