Skip to main content

MangoHud Performance Profiler for Bazzite / SteamOS

Project description

MangoHudPy

A fully-featured MangoHud configurator, profiler, grapher, and log manager for SteamOS / Bazzite. Upload seamlessly to FlightlessSomething!

Features

  • configure — generate a MangoHud.conf from presets (logging, minimal, full, battery); injects logging keys into all 4 Valve overlay presets; fixes the Bazzite/SteamOS MANGOHUD_CONFIGFILE override via ~/.config/environment.d/
  • profile — launch any command under MangoHud for a timed session with automatic summary/graphs
  • graph — produce PNG/SVG charts from CSV logs (uses mangoplot when available, falls back to matplotlib)
  • summary — human-readable stats (avg, min, max, percentiles) with FPS stability score and frametime jitter
  • games — list unique game names found in your log files
  • organize — sort raw logs into ~/mangologs/<GameName>/ with rotation and current symlinks
  • bundle — zip logs for batch upload to FlightlessSomething
  • upload — push CSVs directly to FlightlessSomething via API (interactive TUI file picker included)
  • test — simulate the gamescope MANGOHUD_CONFIGFILE override and confirm logging works

Installation

pip install mangohudpy

With optional graph support (matplotlib):

pip install "mangohudpy[graphs]"

The mangohud-py command will be available immediately after install.

Local install from source

git clone https://github.com/mdeguzis/MangoHudPy.git
cd MangoHudPy
pip install -e .
pip install -e ".[graphs]"

Usage

mangohud-py --help
mangohud-py <subcommand> --help

Quick examples

# Generate a MangoHud config with full logging enabled
mangohud-py configure --preset logging

# Profile a game for 2 minutes
mangohud-py profile --command "game-binary" --duration 120

# Summarise the newest log
mangohud-py summary

# Summarise a specific log with JSON output
mangohud-py summary --input ~/mangologs/MyGame_2026-03-05.csv --json-output out.json

# Generate graphs (uses mangoplot if installed, otherwise matplotlib)
mangohud-py graph --input ~/mangologs/MyGame_2026-03-05.csv

# List games that have been profiled
mangohud-py games

# Organise raw logs into per-game folders
mangohud-py organize

# Bundle current logs into a zip for upload
mangohud-py bundle --game Cyberpunk2077

# Upload to FlightlessSomething (interactive TUI picker)
mangohud-py upload

# Append runs to an existing benchmark
mangohud-py upload --append

# Verify logging works on Bazzite/SteamOS
mangohud-py test

Config presets

Preset Description
logging Full CSV logging, minimal OSD — best for data collection
minimal Lightweight HUD — FPS + frametime only, no logging
full Everything on OSD and all logging enabled
battery Power / battery metrics — ideal for Steam Deck / handheld

Per-game configs

mangohud-py configure --game Cyberpunk2077 --preset logging
# writes ~/.config/MangoHud/wine-Cyberpunk2077.conf

FlightlessSomething upload

# Store your API token once (get it from the site's /api-tokens page)
echo YOUR_TOKEN > ~/.flightless-token
chmod 600 ~/.flightless-token

# Upload (interactive: TUI picker lets you select files)
mangohud-py upload

# Non-interactive upload for a specific game
mangohud-py upload --game Cyberpunk2077 -y

Bazzite / SteamOS note

On Bazzite, gamescope-session-plus sets MANGOHUD_CONFIGFILE to a temp file managed by mangoapp, which overrides MangoHud.conf and presets.conf. The configure command works around this by writing logging keys to ~/.config/environment.d/mangohud-logging.conf via MANGOHUD_CONFIG, which is applied on top of MANGOHUD_CONFIGFILE.

Re-login to your gamescope session after running configure for the changes to take effect.

Log locations

Path Description
~/mangologs/ Default log output and organised game folders
/tmp/MangoHud/ MangoHud default temp log location
~/.local/share/MangoHud/ XDG data dir fallback

Requirements

  • Python 3.9+
  • MangoHud installed (mangohud in PATH)
  • matplotlib — optional, for graph generation (pip install -e ".[graphs]")
  • mangoplot — optional, preferred for graphs (ships with MangoHud on Bazzite)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mangohudpy-1.0.4.tar.gz (37.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mangohudpy-1.0.4-py3-none-any.whl (42.6 kB view details)

Uploaded Python 3

File details

Details for the file mangohudpy-1.0.4.tar.gz.

File metadata

  • Download URL: mangohudpy-1.0.4.tar.gz
  • Upload date:
  • Size: 37.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for mangohudpy-1.0.4.tar.gz
Algorithm Hash digest
SHA256 5c2fe3e470b3d466b6a78d304bf4614f1540855a55d56cd34cc5c90cdb7d9dd4
MD5 5dd49055d952e79b57a38b8af6ab63be
BLAKE2b-256 3aa5105f4d0c499fc19f5a7d0dc61432b6dbb98b667f835aac205d933a00c819

See more details on using hashes here.

File details

Details for the file mangohudpy-1.0.4-py3-none-any.whl.

File metadata

  • Download URL: mangohudpy-1.0.4-py3-none-any.whl
  • Upload date:
  • Size: 42.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for mangohudpy-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 e187fd287dc3d419a80f98130e337e6bbc4dd2af3a89a2e7041c2acec20f359f
MD5 a38603ea75ceb5bb69916ba728fdf387
BLAKE2b-256 63cc5fab30962f239117d3ffec18754aa668922f6b906c0e7c23380ec1996c86

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page