A self-hosted scheduler that claims free games and rewards across multiple storefronts on its own. Logs in once via your browser session, then keeps watch — daily checks, captcha-aware pause-and-notify when a human is needed, in-app stats showing what got claimed, what's pending, and how your Microsoft Rewards points are trending.
Discovery isn't limited to each store's own free-game feed — the panel cross-references community aggregators (gamerpower.com and r/FreeGameFindings) and picks up launch-day indie promos and storefront-side mystery drops that the first-party feeds miss.
Originally derived from vogler/free-games-claimer (dev branch). The control panel, in-app settings UI, claim-history stats, scheduler with hot-reload, AliExpress reintegration, captcha pause + manual-solve handoff, the Steam discovery migration, the Microsoft Rewards collector, the FAB asset claimer, and the Ubisoft / Humble / Fanatical / Lenovo watchers are all additions in this fork. Per-release changes are tracked in CHANGELOG.md; MODIFICATIONS.md holds a frozen v2.4 snapshot of the diff vs. upstream for historical context.
Services are grouped by what they actually do.
Claimers — log in once, then auto-claim any free game that drops:
| Service | Notes |
|---|---|
| Free games + GOG / MS Store / Xbox keys delivered via Prime | |
| Weekly free-game claim | |
Homepage giveaways + catalog watch for tag-flagged free items. 2FA-enabled accounts can paste GOG_OTP_BACKUP_CODES to auto-consume backup codes on prompt. |
|
| Free-to-keep promotions only (not F2P or free weekends) | |
| 🎨 FAB | Monthly Limited-Time Free 3D assets on Epic's content marketplace. Reuses your Epic Games session via SSO — no second login. (opt-in, default off) |
Discovery via community aggregators. Epic and Steam claim eligible games surfaced by gamerpower.com or r/FreeGameFindings that don't show up in the storefront's own feed. GOG entries from the same aggregators surface as notify-only items so you can claim them through the panel's noVNC view. See the Discoveries tab for the live list with AUTO / NOTIFY / CLAIMED / SKIP / MANUAL badges.
Point / coin collectors — daily-cadence reward grinding:
| Service | Notes |
|---|---|
| 🎯 Microsoft Rewards | Daily Bing searches + activity cards for points, with before/after balance tracking |
| 🛒 AliExpress | Daily check-in coins (opt-in; disabled by default; deprecated — see Bot detection) |
Watchers — notify-only; surface new free items so you can grab them yourself:
| Service | Notes |
|---|---|
| 🎮 Ubisoft Connect | Pings on new free-week promos (opt-in) |
| 📦 Humble Bundle | Pings on new free items in the Humble store (opt-in) |
| 🔑 Fanatical | Pings on new free Steam-key giveaways (opt-in) |
| 🚀 Lenovo Gaming Key Drops | Tracks scheduled drops + fires push notifications 1h before / 5min before / at drop time so you can land the queue before keys run out (opt-in) |
Why notify-only? These storefronts have dynamic claim flows — newsletter prompts, region acks, "are you sure" modals, and other gates that the sites add and remove without notice — so any scripted claim path is brittle and silently breaks. Some also chain through multiple sites with one-shot vouchers (Lenovo → GamesPlanet → Steam), where a flaky auto-claim wastes the only attempt. Watchers detect what's available reliably; the actual grab is left to you, where a human can shrug off a UI change the script can't.
Uses patchright (Chromium with built-in anti-detection). Runs in Docker with a virtual display and VNC access — solve captchas, MFA, and one-time logins through the embedded noVNC viewer in the panel.
Control panel — Sessions tab. Click for full size.
- Two-track scheduler with hot-reload — main claim chain (Prime / Epic / GOG / Steam / FAB) and Microsoft Rewards run on independent schedules so the 30-45 min MS window doesn't block the rest.
- Captcha pause + noVNC handoff — when a script can't solve a challenge, it pauses for 10 min, fires a deep-link push notification, and resumes when you solve it via the embedded noVNC viewer.
- Cookie upload fallback — for accounts fingerprint-blocked from in-container login: paste a JSON cookie export from your desktop browser and the panel imports the session.
- Always-on panel at
http://localhost:7080— log in via embedded noVNC, check session health, trigger Run Now. - Sessions tab — per-service login state, one-click login flows, batch key redemption for Steam / GOG.
- Settings UI — every runtime flag
src/config.jsreads is editable in-app, with env-var precedence and revert-to-env for any field. - Discoveries aggregator — live view of gamerpower.com + r/FreeGameFindings listings, badged against your auto-claim coverage (AUTO / CLAIMED / NOTIFY / SKIP / MANUAL).
- Alerts tab — single place to see everything that needs your attention: pending code redemptions (Prime + Steam) with Mark redeemed / Dismiss actions, stale-session warnings with one-click re-login, unread items in Discoveries, and one-click Share to GitHub for any error caught during a run. Diagnostic submissions carry auto-redacted webhooks/tokens, a config snapshot (scheduler mode, active services, per-service flags,
LANG,TZ), and 25+ lines of surrounding log context — nothing leaves your host without your explicit click. Sections hide when empty, so a healthy run leaves the tab visibly blank. - Stats tab — KPI tiles, per-service tables, 30-day claim chart, recent claims (configurable — default 200, up to 500), Microsoft Rewards balance trend.
- Run history — completed runs persisted with full log buffers and summary counters (default 200, configurable up to 500), browsable from the Logs tab.
- Notifications via apprise — 26+ targets (Pushover, Telegram, Discord, Gotify, ntfy, mailto, Slack, …) with four verbosity tiers:
all(every event),actions(silence uneventful summaries),digest(buffer per-run summaries into one daily aggregated notification at your configured hour),off. - Home Assistant integration —
/api/hass/sensorsendpoint returns a flat JSON snapshot (MS balance, claim counts, pending redeems, stale sessions, captcha state, last-run status) that HA's stock REST integration consumes with a single config block. Example template sensors, binary sensors, and automations indocs/HOMEASSISTANT.md. - Cron / Sablier ready —
RUN_ON_STARTUP=2one-shot mode for scale-to-zero deployments. - Reverse-proxy aware — subdomain, split-subdomain, and subfolder shapes via
BASE_PATH/NOVNC_URL. Multi-arch Docker images (linux/amd64+linux/arm64) published to ghcr.io with both semver (:v2.8.55) and date (:20260701) tags for watchtower / diun-style auto-update workflows.
| Sessions tab | Per-site login cards with status dots, Run buttons, and Cookie-upload fallback. |
| Show browser | Embedded noVNC view of an active claim run with cards collapsed to mini-tiles. |
| Stats tab | KPI tiles, per-service table, 30-day chart, recent claims list. |
| Schedule tab | Next-run wall times, intervals, last-run status — separate rows for Claimers and MS Rewards. |
| Logs tab | Live scheduler + per-service run streams, with a past-runs picker for completed run buffers. |
| Discoveries tab | Community aggregator listings with coverage badges (AUTO / CLAIMED / NOTIFY / SKIP / MANUAL). |
| Alerts tab | Pending redeems, stale sessions, unread Discoveries, and Share-to-GitHub error reports. |
| Settings tab | Services accordion with per-service flags and a sticky save footer. |
docker run --rm -it -p 6080:6080 -p 7080:7080 -v fgc:/fgc/data --pull=always ghcr.io/feldorn/free-games-claimerOpen the control panel at http://localhost:7080. On first run, click Login for each site to log in via the embedded noVNC browser, then either click Run Now or set LOOP (and optionally START_TIME) so the built-in scheduler fires daily on its own. Sessions persist across container restarts in the fgc volume.
Full details — Docker Compose, bare-metal Node, non-root mode — in docs/INSTALL.md.
- docs/INSTALL.md — Docker, Docker Compose, bare-metal Node, and non-root (PUID/PGID) mode.
- docs/CONFIGURATION.md — Environment variables, per-store credentials, notifications, and the two-track scheduler.
- docs/PANEL.md — Walkthrough of every panel tab and the in-app Settings reference.
- docs/AUTH.md — Automatic login with 2FA, cookie upload, and the captcha-pause helper.
- docs/NETWORKING.md — Reverse-proxy setups (subdomain, split-subdomain, subfolder) with SWAG / NPM examples.
- docs/REFERENCE.md — Bot detection posture, data storage layout, HTTP API, and troubleshooting.
- docs/HOMEASSISTANT.md — Home Assistant REST-sensor integration with example template sensors, binary sensors, and automations.
Per-release changes are in CHANGELOG.md — what landed in each version, most recent first.
Based on vogler/free-games-claimer by @vogler. See the upstream repository for the original project history and contributors.
