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.

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.2.tar.gz (37.5 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.2-py3-none-any.whl (42.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mangohudpy-1.0.2.tar.gz
  • Upload date:
  • Size: 37.5 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.2.tar.gz
Algorithm Hash digest
SHA256 ded52d9c636946c06d964858e2bedf7dcede2bbcb0d4fed0825b1e15b820047b
MD5 7fb85ead9ec350ddeb5c5b6a23aecd6d
BLAKE2b-256 5c9e0b922215a51aa4a37b3e0a6080924ee1bf8bb69e03d7443bb779fda9eafd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mangohudpy-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 42.5 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 dc4efc24c04770e3b6e0656616878764a7594c519c528dd50e4b23612d18f138
MD5 f542fdd338006a71f5b9bac64860ee27
BLAKE2b-256 6d35db98b6690fc6435a2415a68e4af925db9dd07ba2520c082a87cf6d991e92

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