Open source · GPL-3.0-or-later

Diagnose Linux gaming problems.

GameDiag scans your local Steam and Proton setup and shows what may be preventing a game from working correctly.

Current stable version: checking…

Example output

ELDEN RING AppID 1245620
  • PASSSteam installation
  • PASSProton prefix
  • PASSVulkan
  • WARNINGNTFS library
  • PASSPrefix permissions
4 passed 1 warning 0 failed

Features

GameDiag focuses on one job: finding out why a game does not run correctly.

Steam Discovery

Finds installed Steam games across multiple libraries, including drives that are currently unmounted.

Proton Diagnostics

Checks Proton prefixes for structure, permissions, ownership and drive symlinks.

Graphics and Vulkan

Reports the GPU, the active graphics driver, and 64-bit and 32-bit Vulkan availability.

Filesystem Checks

Detects the filesystem a game and its Proton prefix live on, including mount options like noexec.

System Diagnostics

Reads distribution, kernel, CPU and desktop session information relevant to gaming.

Readable Reports

Exports JSON and Markdown reports with the full check results and system context.

How it works

01

Scan

GameDiag finds installed Steam games and libraries.

02

Diagnose

GameDiag checks the selected game, its Proton environment and the Linux system.

03

Understand

Results explain what was tested, what was found, and why it matters.

Terminal

The terminal interface is a complete way to use GameDiag, not a fallback.

$ gamediag list
1245620  Elden Ring  [Proton data]  66.2 GiB
1091500  Cyberpunk 2077  [Proton data]  58.9 GiB

$ gamediag scan 1245620

Elden Ring [1245620]
5 passed  1 warning  0 failed

PASS     Steam manifest
PASS     Game directory
PASS     Proton prefix
PASS     Prefix permissions
WARN     NTFS filesystem
PASS     Vulkan

Graphical interface

GameDiag also has a graphical interface built with PySide6, for anyone who prefers not to use the terminal. It lists installed games, runs the same checks as the CLI, and can scan every installed game or export a report without leaving the window. Scans run in the background, so the window stays responsive.

GameDiag asks once, on first run, whether the graphical or terminal interface should be the default. Either one is always available with gamediag gui or gamediag terminal.

Install

GameDiag is currently installed from source.

$ git clone https://github.com/lucahmb/GameDiag.git
$ cd GameDiag
$ ./install.sh
$ gamediag

Arch package repository support is planned. GameDiag is not yet available via pacman.

Commands

gamediag gui gamediag terminal gamediag scan gamediag system

Open source

GPL-3.0-or-later. Source available on GitHub.

View source