Seaglass

command module
v1.9.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 2, 2026 License: AGPL-3.0 Imports: 13 Imported by: 0

README

Seaglass

A Windows game launcher that finds the games installed on your PC on its own, from store launchers and other sources alike, and plays great with a DualSense.

Formerly WaterLauncher. WaterLauncher doesn't update to Seaglass on its own: install Seaglass over it, and it keeps your library and settings.


Download Seaglass for Windows 10 and 11 (64-bit). It installs for your account only, without administrator rights, and keeps itself up to date. Release notes are on the Releases page; the plan is in docs/PLAN.md.

  • Finds Steam, Epic, GOG, EA, Ubisoft, Battle.net and Xbox installs, plus games installed outside a store launcher (external copies, such as standalone and DRM-free installers, backups or games set up with a Steam API emulator) and plain game folders, and works out which game each one is.
  • Desktop mode for mouse and keyboard, and a big picture mode for controllers with three layouts to choose from (Deck, Console, Orbit).
  • Starts games and tracks playtime. While you play, the interface closes to free memory, and the PS button opens an overlay over the game.
  • DualSense first: native button glyphs, haptics, lightbar, and the PS button to open the launcher. Games without DualSense support start through Steam Input automatically.
  • Works with Syncer to keep saves in sync before and after you play. Settings → Saves installs Syncer with one click.
  • Hide whole libraries you don't want to see (Settings → Library), for example Xbox or external copies.

Intended use

Seaglass is a library manager. It indexes, identifies and launches games that are already installed on your PC. It does not download, distribute, unlock or modify games, and it contains no tools to bypass copy protection, license checks or DRM.

Recognising a game installed outside a store launcher is a compatibility feature, so that every game on the PC can be found in one place; it is not an endorsement of how a copy was obtained. You are responsible for making sure that the games you install and play, and how you use them, comply with their license terms and the laws that apply to you.

Seaglass is an independent project and is not affiliated with, endorsed by or sponsored by Valve, Epic Games, GOG, Electronic Arts, Ubisoft, Blizzard, Microsoft or Sony. Their names and trademarks are used only to describe compatibility.

Install and update

  • Installer: Seaglass-setup.exe installs to %LOCALAPPDATA%\Programs\Seaglass with Start menu and desktop shortcuts. Uninstall from Settings → Apps; it asks before deleting your library.
  • Without installing: Seaglass.exe from the same release runs from any folder.
  • Updates: checked on GitHub when Seaglass starts, or by hand (Settings → General). New versions download in the background and install the next time Seaglass starts, or straight away while it waits in the tray. Each one must be signed with a release key that never leaves the maintainer's PC (docs/RELEASING.md).
  • Start with Windows: Settings → General. Seaglass then waits in the tray.
  • Games started elsewhere: start a library game from Steam or a shortcut and Seaglass still counts its playtime and lets go of the controller (Settings → Big picture → While playing).
  • Command line: --play <id> starts a game without the interface (for shortcuts), --tray starts in the tray, --quit closes a running Seaglass, --diagnostics writes a report to the desktop.
  • Something wrong? Settings → About → Copy diagnostics, then Report a problem. If the interface won't open: Seaglass.exe --diagnostics.
  • Your data: %APPDATA%\Seaglass (library, settings, encrypted keys, log) and %LOCALAPPDATA%\Seaglass (art, the game database, updates).

Builds aren't code-signed yet, so SmartScreen may warn the first time: More info → Run anyway. See SECURITY.md for how Seaglass keeps you safe.

Develop

Requirements: Go 1.27+, Node 24+, Wails v3 (go install github.com/wailsapp/wails/v3/cmd/wails3@v3.0.0-beta.26).

wails3 build                              # bin/Seaglass.exe
wails3 task installer VERSION=v1.0.0 MAKENSIS="C:/Program Files (x86)/NSIS/makensis.exe"   # bin/Seaglass-setup.exe
go test ./...                             # backend tests
cd frontend && npm run check              # type-check the interface
cd frontend && npm run dev:mock           # interface in a browser with made-up games
WL_REAL_SCAN=1 go test -run RealScan -v ./internal/scan   # scan this PC and print what was found

The backend lives in internal/: scan (sources, external-copy detection, executable picking), identify (Ludusavi matching), library (the game library), settings, meta (metadata and art), pad (controllers through SDL3), launch (game sessions: hooks, process tracking, playtime), syncer (client for Syncer's launcher API), owned (owned games from Steam, GOG and Epic accounts), update (updates from GitHub releases), sqlite (read-only SQLite reader for GOG Galaxy), steaminput (Steam shortcuts for the Steam Input route), app (services the interface calls, windows and tray), plus small helpers (lnk, platform, logx). The installer is build/windows/nsis/project.nsi; signing is described in docs/SIGNING.md. Steam and game-database parsing comes from gamekit. The Svelte 5 interface is in frontend/src: desktop/ for desktop mode, bigpicture/ for the controller layouts, overlay/ for the in-game overlay.

The DLSS Updater add-on host lives on the feature/dlss-addon branch; docs/dlss-addon.md there has ideas for bringing it back.

License

GNU Affero General Public License v3.0. Releases up to 1.4 (as WaterLauncher) were MIT licensed.

Documentation

Overview

Seaglass is a Windows game launcher that finds every game on the PC on its own, store installs and external copies alike.

Directories

Path Synopsis
internal
achievements
Package achievements reads a game's achievements: what it has (the schema: names, descriptions, icons) and which the player unlocked.
Package achievements reads a game's achievements: what it has (the schema: names, descriptions, icons) and which the player unlocked.
app
Package app wires Seaglass together and holds the services the frontend calls.
Package app wires Seaglass together and holds the services the frontend calls.
identify
Package identify works out which game a scanned folder is: its proper title and Steam or GOG id, from the ids a copy carries or, failing that, its name, using the community Ludusavi manifest (PCGamingWiki data on ~50,000 games, with their Steam and GOG ids and install folder names).
Package identify works out which game a scanned folder is: its proper title and Steam or GOG id, from the ids a copy carries or, failing that, its name, using the community Ludusavi manifest (PCGamingWiki data on ~50,000 games, with their Steam and GOG ids and install folder names).
launch
Package launch starts games and follows them while they run: the hooks before launch and after exit, the game's processes, and playtime.
Package launch starts games and follows them while they run: the hooks before launch and after exit, the game's processes, and playtime.
library
Package library keeps Seaglass's game library: what scans found, merged with what the user set (favorites, hidden, titles, controller mode, playtime).
Package library keeps Seaglass's game library: what scans found, merged with what the user set (favorites, hidden, titles, controller mode, playtime).
lnk
Package lnk reads Windows shell links (.lnk files): the parts of the MS-SHLLINK format that give the target, arguments, working folder and icon.
Package lnk reads Windows shell links (.lnk files): the parts of the MS-SHLLINK format that give the target, arguments, working folder and icon.
logx
Package logx writes a small, self-rotating log to %APPDATA%\Seaglass\seaglass.log.
Package logx writes a small, self-rotating log to %APPDATA%\Seaglass\seaglass.log.
meta
Package meta fetches game metadata and art: descriptions, developers, genres, controller support, covers, hero banners, logos and icons, from Steam (no key needed), GOG and, with the user's key, SteamGridDB.
Package meta fetches game metadata and art: descriptions, developers, genres, controller support, covers, hero banners, logos and icons, from Steam (no key needed), GOG and, with the user's key, SteamGridDB.
owned
Package owned lists the games a user's store accounts own, installed or not: Steam (with the user's own Web API key), GOG (from GOG Galaxy's local database) and Epic (after a sign-in the user completes in the browser).
Package owned lists the games a user's store accounts own, installed or not: Steam (with the user's own Web API key), GOG (from GOG Galaxy's local database) and Epic (after a sign-in the user completes in the browser).
pad
Package pad reads game controllers through SDL3 and turns them into the few actions the big picture interface understands (move, confirm, back, menu, …), with key repeat for held directions.
Package pad reads game controllers through SDL3 and turns them into the few actions the big picture interface understands (move, confirm, back, menu, …), with key repeat for held directions.
platform
Package platform wraps the Windows specifics the rest of Seaglass needs: known folders, the app's own data folders, drives and path checks.
Package platform wraps the Windows specifics the rest of Seaglass needs: known folders, the app's own data folders, drives and path checks.
profile
Package profile keeps what goes with a person from PC to PC: playtime, achievements and settings.
Package profile keeps what goes with a person from PC to PC: playtime, achievements and settings.
scan
Package scan finds installed games on this PC: store installs, installer entries (repacks), shortcuts and plain game folders, and recognises external copies (games running on a Steam API emulator) and the Steam app they are.
Package scan finds installed games on this PC: store installs, installer entries (repacks), shortcuts and plain game folders, and recognises external copies (games running on a Steam API emulator) and the Steam app they are.
settings
Package settings stores Seaglass's preferences in %APPDATA%\Seaglass\settings.json.
Package settings stores Seaglass's preferences in %APPDATA%\Seaglass\settings.json.
sqlite
Package sqlite reads tables from an SQLite database file, read-only and without cgo: enough to list GOG Galaxy's library.
Package sqlite reads tables from an SQLite database file, read-only and without cgo: enough to list GOG Galaxy's library.
steaminput
Package steaminput routes games without DualSense support through Steam Input.
Package steaminput routes games without DualSense support through Steam Input.
syncer
Package syncer talks to Syncer (github.com/ApolloF/syncer), which keeps game saves in sync between PCs and backs them up.
Package syncer talks to Syncer (github.com/ApolloF/syncer), which keeps game saves in sync between PCs and backs them up.
update
Package update keeps Seaglass up to date from its GitHub releases.
Package update keeps Seaglass up to date from its GitHub releases.
tools
fakegame command
Command fakegame is a stand-in game for testing Seaglass's launch and tracking in the real app (tools/harness).
Command fakegame is a stand-in game for testing Seaglass's launch and tracking in the real app (tools/harness).
icon command
Command icon draws Seaglass's app icon (a water drop with a play triangle) into build/appicon.png and build/windows/icon.ico.
Command icon draws Seaglass's app icon (a water drop with a play triangle) into build/appicon.png and build/windows/icon.ico.
release command
Command release signs and publishes Seaglass releases with the offline release key (internal/update/signature.go).
Command release signs and publishes Seaglass releases with the offline release key (internal/update/signature.go).

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL