# vogler/free-games-claimer architecture

> Architecture diagram of the GitHub repository vogler/free-games-claimer, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/vogler/free-games-claimer
- Repository: https://github.com/vogler/free-games-claimer

## Overview

free-games-claimer runs separate browser-automation scripts to sign in to game storefronts, identify currently free items, claim them, and record outcomes for later runs. Epic Games, Prime Gaming, GOG, and the experimental Unreal Engine asset workflow are distinct entry points rather than stages in a shared orchestrator. Shared configuration and utility code supports browser sessions, prompts, persistence, and notifications. The README documents additional Prime Gaming DLC and key-redemption options, but the sampled excerpts do not establish their wiring; unsampled implementations are represented only where the tree supports them.

Main entry points: [`epic-games.js`](https://github.com/vogler/free-games-claimer/blob/main/epic-games.js) (Epic claims), [`prime-gaming.js`](https://github.com/vogler/free-games-claimer/blob/main/prime-gaming.js) (Prime claims), [`gog.js`](https://github.com/vogler/free-games-claimer/blob/main/gog.js) (GOG claims), [`unrealengine.js`](https://github.com/vogler/free-games-claimer/blob/main/unrealengine.js) (UE assets)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entrypoints["Store workflows"]
  node_epic["Epic claims<br/>[epic-games.js]"]
  node_prime["Prime claims<br/>[prime-gaming.js]"]
  node_gog["GOG claims<br/>[gog.js]"]
  node_unreal["UE assets<br/>[unrealengine.js]"]
end

subgraph group_shared["Shared runtime"]
  node_config["Configuration<br/>[config.js]"]
  node_util["Browser utilities<br/>[util.js]"]
end

subgraph group_state["Runtime state"]
  node_claimdb[("Claim records")]
  node_profile[("Browser profile")]
end

subgraph group_integrations["External services"]
  node_epicstore{{"Epic Games Store"}}
  node_primegaming{{"Prime Gaming"}}
  node_gogservice{{"GOG"}}
  node_ueservice{{"Unreal Marketplace"}}
  node_apprise{{"Apprise services"}}
end

node_user(("Operator"))

node_user -->|"runs"| node_epic
node_user -->|"runs"| node_prime
node_user -->|"runs"| node_gog
node_user -->|"runs"| node_unreal
node_epic -->|"reads"| node_config
node_prime -->|"reads"| node_config
node_gog -->|"reads"| node_config
node_unreal -->|"reads"| node_config
node_epic -->|"uses"| node_util
node_prime -->|"uses"| node_util
node_gog -->|"uses"| node_util
node_unreal -->|"uses"| node_util
node_epic -->|"opens session"| node_profile
node_prime -->|"opens session"| node_profile
node_gog -->|"opens session"| node_profile
node_unreal -->|"opens session"| node_profile
node_epic -->|"signs in, claims"| node_epicstore
node_prime -->|"signs in, claims"| node_primegaming
node_gog -->|"signs in, claims"| node_gogservice
node_unreal -->|"signs in, claims"| node_ueservice
node_epic -->|"reads, writes"| node_claimdb
node_prime -->|"reads, writes"| node_claimdb
node_gog -->|"reads, writes"| node_claimdb
node_unreal -->|"reads, writes"| node_claimdb
node_epic -.->|"notifies"| node_apprise
node_prime -.->|"notifies"| node_apprise
node_gog -.->|"notifies"| node_apprise
node_unreal -.->|"notifies"| node_apprise

click node_epic "https://github.com/vogler/free-games-claimer/blob/main/epic-games.js"
click node_prime "https://github.com/vogler/free-games-claimer/blob/main/prime-gaming.js"
click node_gog "https://github.com/vogler/free-games-claimer/blob/main/gog.js"
click node_unreal "https://github.com/vogler/free-games-claimer/blob/main/unrealengine.js"
click node_config "https://github.com/vogler/free-games-claimer/blob/main/src/config.js"
click node_util "https://github.com/vogler/free-games-claimer/blob/main/src/util.js"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_epic,node_prime,node_gog,node_unreal toneBlue
class node_config,node_util toneAmber
class node_claimdb,node_profile toneMint
class node_epicstore,node_primegaming,node_gogservice,node_ueservice,node_apprise toneRose
class node_user toneIndigo
```

## Components

### Store workflows

- [Epic claims](https://github.com/vogler/free-games-claimer/blob/main/epic-games.js): `epic-games.js`
- [Prime claims](https://github.com/vogler/free-games-claimer/blob/main/prime-gaming.js): `prime-gaming.js`
- [GOG claims](https://github.com/vogler/free-games-claimer/blob/main/gog.js): `gog.js`
- [UE assets](https://github.com/vogler/free-games-claimer/blob/main/unrealengine.js): `unrealengine.js`

### Shared runtime

- [Configuration](https://github.com/vogler/free-games-claimer/blob/main/src/config.js): `src/config.js`
- [Browser utilities](https://github.com/vogler/free-games-claimer/blob/main/src/util.js): `src/util.js`

### Runtime state

- **Claim records**
- **Browser profile**

### External services

- **Epic Games Store**
- **Prime Gaming**
- **GOG**
- **Unreal Marketplace**
- **Apprise services**

### Other components

- **Operator**

## Connections

- Operator → Epic claims: runs
- Operator → Prime claims: runs
- Operator → GOG claims: runs
- Operator → UE assets: runs
- Epic claims → Configuration: reads
- Prime claims → Configuration: reads
- GOG claims → Configuration: reads
- UE assets → Configuration: reads
- Epic claims → Browser utilities: uses
- Prime claims → Browser utilities: uses
- GOG claims → Browser utilities: uses
- UE assets → Browser utilities: uses
- Epic claims → Browser profile: opens session
- Prime claims → Browser profile: opens session
- GOG claims → Browser profile: opens session
- UE assets → Browser profile: opens session
- Epic claims → Epic Games Store: signs in, claims
- Prime claims → Prime Gaming: signs in, claims
- GOG claims → GOG: signs in, claims
- UE assets → Unreal Marketplace: signs in, claims
- Epic claims → Claim records: reads, writes
- Prime claims → Claim records: reads, writes
- GOG claims → Claim records: reads, writes
- UE assets → Claim records: reads, writes
- Epic claims → Apprise services: notifies
- Prime claims → Apprise services: notifies
- GOG claims → Apprise services: notifies
- UE assets → Apprise services: notifies
