Desktop app for automatic giveaway entry on steamgifts.com.
Based on stilManiac/steamgifts-bot, rewritten in Python + PyQt6 with a modern GUI.
- Automatic giveaway entry
- Activity feed with Steam game images
- Entered tab — active joined giveaways with time remaining and Remove
- IndieGala (beta) — optional auto-join on indiegala.com/giveaways
- Wins tab — track wins on SteamGifts and IndieGala; tray + Activity alerts
- Manual select (Yes/No per giveaway)
- Smart wait when points are insufficient
- System tray — bot keeps running in the background
- Start with Windows — launches minimized to tray and auto-starts the bot
- Auto-update — checks GitHub Releases on startup and installs new builds
Download SteamGiftsBot.exe from Releases (current: v1.0.1).
- Log in at steamgifts.com
- Go to Giveaway Settings
- Disable giveaways you cannot enter — the bot tries to enter everything it sees
- Open DevTools (F12) → Application → Cookies →
steamgifts.com - Copy the
PHPSESSIDvalue - In the app: Settings → Accounts → paste → Save
The cookie is saved to %APPDATA%\SteamGiftsBot\cookie.txt.
- Log in at indiegala.com
- DevTools → Cookies → copy
sessionid(andcsrftokenif available) - Sidebar → Settings → Accounts → paste → Save
- Enable Enable IndieGala giveaways and set entry delay / minimum cost below
After each SteamGifts page, the bot scans the matching IndieGala page. Use a slow entry delay (5+ sec) — fast automation can trigger IndieGala rate limits.
Cookie file: %APPDATA%\SteamGiftsBot\indiegala_cookie.txt
- Fetch Points — verify session and check points
- Start Bot — begin automatic entry
- Activity — entered giveaways, waiting states, manual prompts
- Entered — open giveaways you joined; refresh list and remove entries
- Wins — giveaways you won (with notifications when something new appears)
- Console — full event log
- Settings — refresh interval (5/10/15 min), max pages to scan, max giveaway end window, updates
While the bot waits, a countdown appears under the status pill (list refresh or points timer).
The packaged app checks GitHub Releases for a newer SteamGiftsBot.exe. When an update is found, it downloads the file and restarts to replace the running exe. You can also use Settings → Check for updates.
- Minimize to tray on close — closing the window (X) hides it; the bot keeps running. To exit: tray → Quit
- Double-click the tray icon to open the window
Requirements: Python 3.11+, Windows, curl (included with Windows 10/11)
pip install -r requirements.txt
python python/main.py.\build.ps1Output: dist/SteamGiftsBot.exe
| File | Location | Description |
|---|---|---|
cookie.txt |
%APPDATA%\SteamGiftsBot\ |
PHPSESSID session token |
indiegala_cookie.txt |
%APPDATA%\SteamGiftsBot\ |
IndieGala sessionid (beta) |
settings.json |
%APPDATA%\SteamGiftsBot\ |
App settings |
Do not commit
cookie.txtto GitHub — it contains your session token.
python/
main.py # Entry point
gui.py # PyQt6 UI
bot.py # Bot logic
widgets.py # Activity cards
steamgifts_service.py
indiegala_service.py
wins_tracker.py
http_client.py # curl HTTP (bypasses Cloudflare)
settings.py
paths.py
version.py
updater.py
windows_startup.py
theme.py
assets/
icon.ico # App icon (window, tray, exe)
scripts/
generate_icon.py
build.ps1
requirements.txt
See LICENSE.