What Is steamer?
steamer is a CLI tool built by kaezrr that fetches SteamGridDB artwork for non-Steam games. It downloads four asset types—icon, grid, hero, and logo—for each game, preserves existing files by default, and is aimed at Linux desktop users and game-library curators who want repeatable metadata cleanup without a GUI. steamer is one of the best CLI Tools for desktop power users managing non-Steam libraries.
The repo text says it was tested on Linux, and the default behavior is conservative: existing assets stay in place unless you pass --overwrite. That makes steamer a good fit for people who already have curated libraries and only want to fill the gaps.
Quick Overview
| Attribute | Details |
|---|---|
| Type | CLI Tools |
| Best For | Desktop power users managing non-Steam game libraries |
| Language/Stack | Rust, SteamGridDB API, Linux command-line workflows |
| License | N/A |
| GitHub Stars | N/A as of Aug 2025 |
| Pricing | Open-Source |
| Last Release | N/A |
Who Should Use steamer?
- Linux gamers with mixed libraries who want their non-Steam titles to look consistent inside Steam without manually downloading each banner and logo.
- Power users with large collections who need a terminal workflow that can be scripted, repeated, and version-controlled instead of clicking through a web UI.
- Indie hackers building game launchers who want a simple way to seed artwork metadata for custom launchers or local game catalogs.
- People who already use SteamGridDB and want to automate the exact asset types they download most often: icons, grids, heroes, and logos.
Not ideal for:
- Users who need a polished desktop app with account sync, bulk previewing, or drag-and-drop file management.
- Teams that require Windows/macOS validation today, because the repo only says it was tested on Linux.
- Anyone who does not want to create and store a SteamGridDB API key.
Key Features of steamer
- Automatic artwork fetching — steamer queries SteamGridDB and downloads matching assets for each non-Steam game. The output covers the common Steam library surfaces: icon, grid, hero, and logo.
- Non-destructive defaults — existing files are preserved unless you pass
--overwrite. That is the right default for curated libraries where a bad match can clobber custom art. - Interactive selection mode —
--interactivelets you choose which SteamGridDB match to use instead of always accepting the first result. That matters when multiple games share a title or when regional editions collide. - Simple Rust CLI distribution — the project ships as a Rust binary and can be installed with
cargo install --git ...or by downloading the latest GitHub release. That keeps the dependency chain short compared with Python-based wrappers. - API-key driven workflow — steamer uses a SteamGridDB API key, which makes the tool stateless and easy to run in scripts or scheduled jobs. You authenticate once per run and avoid browser sessions.
- Minimal surface area — the documented flags are small:
--api-key,--interactive,--overwrite, and--help. Fewer options mean fewer hidden code paths, which is exactly what you want from a shell utility. - Linux-first validation — the repo explicitly says it was tested on Linux. That is useful if your Steam library lives on a gaming PC, HTPC, or Linux desktop where command-line automation is the norm.
steamer vs Alternatives
| Tool | Best For | Key Differentiator | Pricing |
|---|---|---|---|
| steamer | Non-Steam artwork automation from the terminal | Focused on SteamGridDB assets with a conservative overwrite model | Open-Source |
| BoilR | Broader non-Steam game library integration | More established launcher-art workflow and wider community familiarity | Open-Source |
| Steam ROM Manager | Emulation and launcher metadata generation | Stronger fit for emulators and large curated ROM collections | Open-Source |
| Manual SteamGridDB workflow | One-off artwork edits | No tooling overhead, but every download is manual | Free |
Pick BoilR when you want a more established non-Steam launcher workflow and broader community examples. Pick browse all CLI Tools when you are comparing other terminal-first utilities that can be scripted into your setup.
Pick Steam ROM Manager when your library is mostly emulators, ROMs, or custom launch entries that need richer metadata generation. Pick browse all DevOps Automation tools if you are looking for adjacent automation patterns and want to compare how other command-line tools structure repeatable jobs.
Pick manual SteamGridDB downloads when you only update one or two games and do not want to install anything. Pick steamer when your collection changes often enough that repeating the same browser workflow becomes wasted time.
How steamer Works
steamer is a small Rust binary that wraps a predictable workflow: accept an API key, query SteamGridDB for matches, and write image assets to the locations expected by your non-Steam library setup. The design is intentionally narrow. There is no hidden daemon, no database, and no web UI; the tool is meant to be invoked from a shell, a script, or a package manager job.
The core abstraction is straightforward: each game gets a lookup against SteamGridDB, then the tool downloads the relevant artwork variants. By default it chooses the first match for icons, heroes, grids, and logos, which keeps the flow deterministic. When title collisions or alternate editions matter, --interactive switches the selection step from automatic to manual.
cargo install --git https://github.com/kaezrr/steamer.git
steamer --api-key "$STEAMGRIDDB_API_KEY" --interactive
The first command builds and installs the latest Git commit directly from the GitHub repository. The second command runs steamer with an API key and interactive selection enabled, so you can choose the correct SteamGridDB entry when multiple results exist.
If you want a hands-off pass, omit --interactive and keep --overwrite out of the command. That gives you the safest behavior for an existing library because steamer will fill missing assets without replacing custom art you already curated.
Pros and Cons of steamer
Pros:
- Fast, repeatable terminal workflow that replaces manual SteamGridDB browsing with one command per library pass.
- Preserves existing assets by default, which is safer than tools that assume every file should be replaced.
- Supports interactive matching, reducing bad art assignments when multiple games share similar names.
- Small dependency footprint thanks to the Rust binary and direct
cargo installpath. - Clear command surface with only a few documented flags, which lowers the chance of operator error.
- Good fit for scripting because the tool is API-key driven and does not require a browser session.
Cons:
- Linux-first validation only; the repo says other platforms are untested, so Windows and macOS users are taking a risk.
- No documented config file yet, so you need to pass the API key each time unless you wrap it yourself.
- No documented watch mode for background syncing, so ongoing automation still needs an external scheduler.
- No built-in support for normal Steam games in the current repo notes, even though that is listed as a possible improvement.
- Match quality depends on SteamGridDB metadata, so bad source data can still produce the wrong asset set.
Getting Started with steamer
Install steamer directly from GitHub, then run it with a SteamGridDB API key. The repository documents both a release download path and a Cargo install path, so the quickest terminal workflow is the Rust install route followed by one test run.
cargo install --git https://github.com/kaezrr/steamer.git
export STEAMGRIDDB_API_KEY="your_api_key_here"
steamer --api-key "$STEAMGRIDDB_API_KEY"
After the install finishes, steamer is available on your PATH as a standalone binary. The first run will query SteamGridDB using your API key and download missing artwork, while preserving any existing icons, grids, heroes, or logos unless you explicitly add --overwrite.
If you expect ambiguous matches, rerun the command with --interactive so you can pick the correct game entry manually. If you are embedding steamer into a larger shell workflow, store the API key in your environment or secret manager and keep the command itself short.
Verdict
steamer is the strongest option for automating non-Steam artwork imports when you want a terminal-first workflow and conservative file handling. Its best strength is the simple, repeatable Rust CLI design; its main caveat is that only Linux is explicitly tested. If your library lives on Linux and you want less manual SteamGridDB work, recommend it.



