A vibecoded, controller-friendly fullscreen game library for Windows with a Steam Big Picture look, built on the same ideas as Playnite's fullscreen mode.
- You press Play → a "Launching…" screen shows while Steam / the exe starts up.
- Once the game's process is detected, the library hides to the system tray, drops to below-normal CPU priority, stops its timers and gamepad polling, frees its RAM, and pushes the game's window to the foreground (it keeps retrying for ~20 s, because many games open their real window late).
- When every process in the game's install folder has exited, it waits a second (the same fix Playnite uses) and comes back in fullscreen with focus, then shows how long you played.
Tray icon: double-click or Open library to bring it back mid-game. Resume on the game page sends you back to the game.
- Auto-imports installed Steam games (all library folders), with Steam cover and hero art from the local cache or Steam's CDN
- Reads Steam's own playtime / last played, and tracks playtime itself for non-Steam games
- Per-game Steam options (⋯ menu): pick which saved Steam account to switch to, and ☑ Launch in offline mode
- Find non-Steam games: scans Epic, GOG and Ubisoft Connect, or any folder you pick (e.g.
D:\Games). You get a checklist, so you can untick games you don't want; unticked games stay unticked in later scans. Epic and Ubisoft games launch through their launcher so their DRM keeps working. - Online metadata from the Steam store for non-Steam games: cover, background, description, developer, year and genres. It runs automatically, or use ⋯ › Find metadata online to choose the right match yourself
- Add any single .exe, with custom portrait covers
- Library manager (menu › Library manager): every game with a checkbox (ticked = visible). It can also add games from your desktop shortcuts (.lnk and launcher .url), launchers, folders or a single .exe
- IGDB metadata (same database as Playnite). You need a free Twitch developer app; set it up in menu › IGDB metadata settings. Picking a metadata result renames the game to the official name and replaces its cover/background for good
- Metadata sources (⋯ › Find metadata): IGDB, Steam, GOG (public catalog) and Epic (read offline from the Epic launcher's catalog of your games). After you pick a result, a cover chooser shows every cover found on IGDB, Steam, GOG, Epic and a web image search. ⋯ › Choose cover / Choose background open the chooser any time (with From file…)
- Local cache: each game has its own folder
cache\games\<id>\withcover.jpg,hero.jpg,icon.pngandmetadata.json. Art and info are downloaded once and then always load from disk. Use menu › Open / Move cache folder - Resolution-independent UI: always 8 games per row, sharp from 1080p up to 4K
- Tabs: All / Installed / Favorites / Recent, plus instant search
- Xbox / XInput controller support, or keyboard and mouse
- Single instance: launching it again while it's in the tray brings it back
| Controller | Keyboard | Action |
|---|---|---|
| A | Enter | Play / select |
| B | Esc | Back |
| X | Ctrl+F or / | Search |
| Y | F | Favorite |
| Start / View | M | Menu (add game, rescan, exit…) |
| LB / RB | Q / E | Switch tabs |
You need the .NET 8 SDK on Windows 10/11.
build.batThat publishes to publish\PConsoleLibrary.exe. Or open the folder in Visual Studio 2022 / Rider and press F5.
No SDK? Push this folder to a GitHub repo. The included workflow (.github/workflows/build.yml) builds it on Windows,
and you can download the exe from the run's Artifacts.
Tip: to use it as your "console mode", put a shortcut to the exe in shell:startup.
- Install Inno Setup 6 (free): https://jrsoftware.org/isdl.php, or run
winget install JRSoftware.InnoSetup - Double-click
build-installer.bat - Share
dist\PConsoleLibrary-Setup-1.0.0.exe. It's one file that includes everything, so other PCs don't need .NET.
For a new version, raise AppVersion in installer\PConsoleLibrary.iss (and <Version> in the .csproj) and rebuild.
Installing over an older version updates it and keeps the user's library.
Everything lives in %AppData%\PConsoleLibrary\:
library.json– your games (edit it to add launchArgumentsfor non-Steam games)settings.json– options, including IGDB keys and the cache locationcache\games\<id>\– per-game artwork + metadata (can be moved, e.g. to another drive)log.txt– launch/stop log, useful if a game isn't detected
Like Playnite's "directory" tracking mode: every 2 s it scans running processes and checks whether any of them runs from the
game's install folder (Steam games: steamapps\common\<game>; manual games: the exe's folder).
This handles Steam launches and launcher→game hand-offs. It counts the game as closed after 3 empty scans in a row.
Steam games get up to 4 minutes to start (for updates and shader compilation); other games get 45 seconds.
Known limits: games whose real exe sits outside their install folder (some anti-cheat bootstrappers or third-party launchers) may not be detected. Hidden Steam games can be brought back from the menu.
Inspired by and modeled on Playnite by Josef Nemec (MIT License). Not affiliated with Valve or Steam.