GOG Cleanup

Find GOG games installed but not played for 30+ days, email the list, and add Apple Reminders to consider uninstalling. One-command cleanup sweep for your backlog.

Audits

Pass

Install

openclaw skills install gog-cleanup

GOG Cleanup

Automated stale-game cleanup sweep: finds installed GOG games you haven't played in 30+ days, emails you a digest, and creates Apple Reminders so you can decide whether to uninstall.

What It Does

  1. Reads your GOG library from config/gog_library.json
  2. Filters for installed games whose last_played is 30+ days ago (or never played)
  3. Sends a formatted digest email via himalaya
  4. Adds each stale game to the Gaming list in Apple Reminders via remindctl

Prerequisites

ToolPurposeInstall
jqJSON parsingbrew install jq
himalayaSend emailbrew install himalaya
remindctlApple Remindersbrew install steipete/tap/remindctl
  • Himalaya must be configured with a personal account (see config/himalaya.toml)
  • Apple Reminders must have a Gaming list (auto-created if missing)

Usage

Run the full sweep (email + reminders)

bash scripts/gog-cleanup.sh

Email only (skip reminders)

SKIP_REMINDERS=1 bash scripts/gog-cleanup.sh

Reminders only (skip email)

SKIP_EMAIL=1 bash scripts/gog-cleanup.sh

Custom stale threshold (default 30 days)

STALE_DAYS=60 bash scripts/gog-cleanup.sh

Custom recipient (defaults to himalaya personal account email)

EMAIL_TO="other@example.com" bash scripts/gog-cleanup.sh

Configuration

The script reads from workspace config/:

FilePurpose
config/gog_library.jsonGOG game library with install status & last_played timestamps
config/himalaya.tomlHimalaya email account config (uses personal account)
config/reminders_lists.jsonReminders list structure (Gaming list)

Output

  • Email: HTML-formatted digest sent to your personal inbox
  • Reminders: One reminder per stale game in the Gaming list, prefixed with "🧹 Consider uninstalling:"
  • Console: Summary of games found and actions taken

Scheduling

To run weekly via cron:

# Add to crontab for Monday 9 AM
0 9 * * 1 /path/to/scripts/gog-cleanup.sh >> /tmp/gog-cleanup.log 2>&1

Or use OpenClaw's cron tool for agent-managed scheduling.

Notes

  • Games with last_played: null (never played) are always included
  • Uninstalled games are always skipped regardless of last_played
  • The script is idempotent — re-running won't duplicate reminders (existing reminders with the same title are skipped)