Hytale
The app checks Pictures/Hytale Screenshots on macOS and Linux. A custom folder works on all platforms. The source can save the included cover in the album.
Documentation
Install Gaming Memories, connect each source, and publish your library as a website.
Start
Use the package for your desktop platform. Each release includes a SHA256SUMS file for file checks.
The project can show the release page before the first public build exists.
gaming-memories-<version>-windows-x64.exe.The EXE opens from a temporary folder. The app removes that folder after you close the app.
You can also download the ZIP file. Extract it before you open gaming_memories.exe.
gaming-memories-<version>-macos-universal.dmg.The signed build supports Apple silicon and Intel. macOS can ask for folder access during the first scan.
Select the package for your distribution.
sudo apt install ./gaming-memories_<version>-1_amd64.debsudo dnf install ./gaming-memories-<version>-1.x86_64.rpmsudo pacman -U gaming-memories-<version>-1-x86_64.pkg.tar.zstThe packages require GTK 3, libmpv, and xdg-utils. Your package manager installs these dependencies.
Library
Select Settings at the bottom of the sidebar.
Select an empty folder or a folder that contains an existing Gaming Memories library.
Open a source card. Confirm its folder and options.
Select the disk arrow in the sidebar. Wait for the completion notice.
Allow access when macOS asks. The app keeps this access for later sessions.
Daily use
The scan action checks every enabled source. It copies new media into the library.
Supported PC sources add the matching bundled logo when they create a game album. They keep an existing cover.* file. A cover switch controls the logo for sources that have one.
The app watches the library after the first scan. New files appear without a full scan.
The app compares each file before a copy. A safe suffix protects different captures that use the same name.
Sources
Battle.net imports screenshots from game folders. Each game version gets its own album.
On Windows, Diablo IV screenshots are read from Pictures\Diablo IV and Documents\Diablo IV\Screenshots. On macOS, automatic World of Warcraft detection asks for access to its installation folder.
Version folders include _retail_, _classic_, _classic_era_, _anniversary_, _classic_beta_, and _forever_. On Windows and macOS, the source checks each version's Screenshots folder. On Linux, select each screenshot folder in Settings.
Windows checks Documents\Heroes of the Storm\Screenshots and Documents\Warcraft III\ScreenShots. macOS checks the Heroes of the Storm folder under Library/Application Support/Blizzard and the Warcraft III folder under Documents.
Legacy Overwatch checks Documents\Overwatch\ScreenShots\GameClientApp on Windows. Overwatch 2 checks the separate Overwatch folder. Select a custom folder if your captures use another path.
The source converts TGA screenshots to PNG. World of Warcraft and Warcraft III screenshots use the date in their file names. Other games use the file modification date.
Sources
Steam can find the local userdata folder. You can also select that folder yourself.
Every Steam import needs a Steam Web API key. Without it, albums keep their numeric app ID as a name and no online screenshot is imported.
The online gallery also requires a SteamID64 value.
An app ID in Ignored apps gets no album, and its screenshots are never copied. Use it for tools, launchers, or games you do not want in the library.
A name in Custom apps replaces the name Steam reports for an app ID. Non-Steam shortcuts, betas, and delisted games need one for a readable album title. The name applies to existing albums on the next import.
Do not share the key. Gaming Memories stores it in the local settings file.
Sources
The app checks Pictures/Hytale Screenshots on macOS and Linux. A custom folder works on all platforms. The source can save the included cover in the album.
The app checks common launcher folders. It also supports two common Flatpak folder layouts on Linux.
Select the game screenshot folder. The source uses each file date for the capture date.
Sources
Each console has its own source, and both work the same way. Use a copied album folder on every platform. Linux can also read the console through USB.
USB collection needs the mtp-folders, mtp-files, and mtp-connect commands. Only one program can use the console at a time. Collect from one console at a time, because the libmtp tools answer for the first console they open.
The source imports original _s.jpg and _s.mp4 files. It ignores duplicate _c files. You can exclude single album folders in Settings, including the folder for captures taken outside a game.
Copy each console export to your computer. Select the export folder in the related source settings.
With FFprobe, a PlayStation 5 clip is dated from its start. Without it, the clip uses the end time in its file name.
Publish
Gaming Memories can render your library as a static website and upload it to a host you control. Every album becomes one page, with folder tiles, a screenshot and clip filter, a sort control, and a lightbox.
On mobile, the site stays at its normal size. Pinch an image in the lightbox to zoom it. Drag the image to see more. Clips keep their normal playback controls.
Opening a capture shows the date it was taken, read from its file name where the source writes one there and from the file itself where it does not.
Every tile takes the shape of the image in it. A wide store banner, a square console cover, a 16:9 capture and a Game Boy's 10:9 one each appear whole, so nothing is cut off to fit a shape the page picked.
The pages are written to a folder of the app's own. Your library is never written to. The upload merges the two: captures and thumbnails from the library first, then the pages from that folder. A page never arrives before the media it links to, so the site stays usable during a publish.
Select Settings, then Publish. Enable Publish the library as a website.
Enter the site title, author, address, and footer text. The address is used for social card links.
Enter the host, port, user, and the remote folder your web server serves.
Select Publish in the sidebar, above Settings.
While a publish runs, the button becomes a progress panel with a stop control. Stopping ends the file in flight. Nothing is removed from the host after a stop.
| Choice | What it uses |
|---|---|
| Automatic key | What this computer already has, the same way ssh finds it. |
| Key file | One key you select, and only that key. |
| Password | The account password on the host. |
Automatic is the default and needs no setup. It reads ~/.ssh/config for the host and uses IdentityAgent, IdentityFile, and IdentitiesOnly. An agent set up that way is found even though a desktop app receives no SSH_AUTH_SOCK value from your shell. Without those, the app uses SSH_AUTH_SOCK and then the usual ~/.ssh/id_ed25519, id_ecdsa, id_rsa, and id_dsa files.
The app saves the path to a key file only. A passphrase or password is requested at publish time and kept in memory until the app closes.
The first publish to a host accepts its key and remembers it. A later change is refused and nothing is uploaded. A host that ~/.ssh/known_hosts already holds is accepted without a new record.
The server was rebuilt, or another machine answers for that name. Confirm the new fingerprint before you publish again.
Automatic uses rsync when this computer has version 3 or newer and no passphrase is required. Otherwise the upload uses SFTP, which needs no other program and works on every platform. A password always uses SFTP.
macOS ships openrsync. It accepts the options a mirrored publish needs and then ignores them, so Gaming Memories uses SFTP instead. Install rsync 3 with Homebrew for the faster path. Gaming Memories looks for /opt/homebrew/bin/rsync before the rsync on PATH.
File and folder permissions are applied during the upload. 644 and 755 match chmod -R u=rwX,go=rX.
The whole library is published, except the platforms and albums in Excluded albums. A path there is relative to the library folder, such as Steam or Steam/My Private Game.
With Mirror the library enabled, anything the gallery no longer holds is removed from the host as well.
Platform tiles use covers included with the app for Android, Game Boy, Game Boy Advance, Game Boy Color, Nintendo Switch, Nintendo Switch 2, PC, Pico-8, PlayStation 4, PlayStation 5, and Super Nintendo. A cover.* file in a platform folder replaces the included cover.
Each page carries a light and a dark theme and follows the reader's system setting. There is nothing to press.
The gallery also publishes gaming-memories.webp at its root, which is the logo the page footers show.
Reference
| Tool | Purpose | Result without the tool |
|---|---|---|
| FFmpeg | Create video thumbnails | The app uses existing thumbnail sidecar files. |
| FFprobe | Read video duration and clip start time | Videos still play, but some details can be absent. |
| libmtp tools | Read Nintendo Switch and Nintendo Switch 2 media through USB on Linux | Use a copied album folder. |
| rsync 3 or newer | Upload a published gallery faster | The upload uses SFTP, which needs no other program. |
Reference
The library uses normal folders. You can browse it without the app.
Gaming Memories/
├── PC/
│ └── Minecraft/
│ ├── cover.png
│ └── 2026-09-16_17-09-14.png
├── Steam/
│ └── Guild Wars 2/
└── PlayStation 5/
└── Horizon Forbidden West/
Do not change files during a scan. The library watcher will detect changes after the scan.
Help
Check these items:
Install FFmpeg. Start a new scan after the installation.
Install the libmtp tools. Close any file manager that uses the console.
The host answers with a different key than the one recorded on the first publish. Confirm the fingerprint with the server owner. The server was rebuilt, or another machine answers for that name.
Add the key to your SSH agent, name it with IdentityFile in ~/.ssh/config, or select Key file in the Publish settings.
The Windows build has no code signature. Select More info. Select Run anyway.
The app writes a local diagnostic log. Add the relevant part when you report an issue.
Open an issue on GitHub →Development
Install Flutter 3.47.0 or newer. Install FVM and the Flutter desktop tools for your platform.
git clone https://github.com/fmartingr/gaming-memories.git
cd gaming-memories
make setup
make runUse make check to run the format, analysis, and test checks.
Read the release guide for package details.