A CLI tool to browse and download games from your GOG.com library. Built because GOG Galaxy doesn't always work.
Requires Go 1.26+.
go install github.com/j05h/goggle@latestOr build from source:
git clone https://github.com/j05h/goggle.git
cd goggle
go build -o goggle .Authenticate with your GOG account. This opens a Chromium window for you to sign in:
goggle loginYour token is saved to ~/.config/goggle/token.json and auto-refreshes on expiry.
Browse your library with an interactive searchable list. Selecting a game shows its metadata:
goggle listType to search/filter by title.
Pick a game from your library and download it to ~/Downloads/:
goggle downloadBy default it downloads installers for your current OS. Override with --os:
goggle download --os windows
goggle download --os mac
goggle download --os linuxOn macOS, if the download is a .pkg file, you'll be prompted to install it.
goggle/
├── cmd/
│ ├── root.go # Cobra root command
│ ├── login.go # OAuth login command
│ ├── list.go # Library browser with metadata display
│ └── download.go # Game downloader with install prompt
├── pkg/gog/
│ ├── client.go # HTTP client, token storage, auth header injection
│ ├── auth.go # OAuth flow via go-rod (browser automation)
│ ├── library.go # Library listing, product details
│ └── download.go # Download URL resolution, file download with progress
├── main.go
└── go.mod
- cobra - CLI framework
- promptui - Interactive terminal prompts
- go-rod - Browser automation for OAuth (uses Chromium)
go build -o goggle .This tool uses the undocumented GOG API. Key endpoints:
auth.gog.com/auth- OAuth authorizationauth.gog.com/token- Token exchange/refreshembed.gog.com/user/data/games- List owned game IDsapi.gog.com/products?ids=...- Batch product infoapi.gog.com/products/{id}?expand=description- Product detailsembed.gog.com/account/gameDetails/{id}.json- Download infoembed.gog.com/downlink/...- Download URL resolution