Search and launch your Playnite library. Fully local, no Playnite extension required.
- Works out of the box. Reads
games.dbdirectly with litedb-py, no Playnite extension required. - Live results, optionally. Pair it with the playnite-library-server extension for live library data while Playnite runs.
- Fully local. No cloud services, no API keys.
- Fuzzy matching.
pn rdr2will match Red Dead Redemption 2. - Icons and cover art. Game icons in results, cover art on
F1. - All your sources. Every library Playnite knows about, in one search.
- Launch or open. Installed games launch directly; uninstalled games open their Playnite page.
- Rich context menu. Open install folder, jump to store links, copy the game id.
- Hidden games, opt-in. Include games hidden in Playnite via a setting.
Type pn followed by a game name:
pn cyber
In Flow Launcher, type:
pm install playnite
Download Playnite-Plugin-<version>.zip from the latest release and unzip it into
%appdata%\FlowLauncher\Plugins, then restart Flow Launcher.
By default the plugin reads games.db directly, which is a snapshot that can go stale while
Playnite is running (install status, newly added games, artwork). Installing the companion
playnite-library-server Playnite extension
lets the plugin pull live data from Playnite instead, including artwork, whenever it's running.
If the extension isn't installed, or the request fails for any reason, the plugin falls back to
reading games.db as before, no configuration needed.
To set it up, download PlayniteLibraryServer_<version>.pext from the extension's
latest release, open it with
Playnite (or drag it onto the Playnite window), and restart Playnite.
If you've changed the extension's port from its default (38217), set it in the plugin's
settings via library_server_port.
3.1.0 (2026-08-30)
- add Game.from_json_api for the live library server response (981bef2)
- add HTTP client for the live library server (a2a85c4)
- fall back to the file-based library when the server is unavailable (d338730)
- query the live library server before falling back to games.db (bae8b10)
- bump pyflowlauncher to 1.1.1 (#51) (abd849c)
- bump pyflowlauncher to 1.1.2 so builtin result actions dispatch (6b2544b)
- harden the live-server path against malformed responses (3d9f49e)
- serve last cached library snapshot when Playnite locks games.db (2b902ee)
- document the live library server integration (4623c73)
3.0.0 (2026-08-25)
- scaffold python_v2 plugin layout, drop FlowLauncherExporter dependency
- add Game model, playnite URIs, and subtitle formatting (5f5344c)
- build query results and rich conditional context menu (453d20a)
- locate Playnite library and cache a lock-free copy of games.db (cdaa9f7)
- read games and source names from the Playnite database (4850b7e)
- scaffold python_v2 plugin layout, drop FlowLauncherExporter dependency (c55e2f8)
- wire query and context menu into pyflowlauncher plugin (2bdac65)
- hide the install folder entry when the directory is missing (456d8bb)
- replace em dash in run.py comment (7b1a912)
- report an unreadable Playnite library instead of crashing (c8b7609)
- add flow-render screenshots to README (8f3097d)
- generate README with readwright (977d0ea)
- match usage example to the screenshot query (28acad5)
- name the versioned release archive in install instructions (0a5eb62)
See CHANGELOG.md for the full history.

