Skip to content

mdeguzis/decky-proton-pulse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

328 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Decky Proton Pulse

OS Version Build Status Decky Latest
Ubuntu Ubuntu OS Ubuntu Build Decky Latest
Debian Debian OS Debian Build Decky Latest
Arch Linux Arch Linux OS Arch Linux Build Decky Latest
Fedora Fedora OS Fedora Build Decky Latest
Termux Termux OS Termux Build N/A
Windows Windows OS Windows Build N/A

Windows CI currently validates that the repo toolchain can install and build on a GitHub-hosted Windows runner. It is not a claim that the Decky plugin runtime or hardware-detection backend is fully supported on Windows.

Decky Latest builds against the current published versions of @decky/ui, @decky/api, and @decky/rollup on every commit and on a daily schedule to catch upstream breaks early. Termux and Windows show N/A because they are not Decky Loader targets.

Python Coverage TypeScript Coverage Pulse Reports Discord

A Decky Loader plugin for Steam Deck that pulls ProtonDB reports for the game in front of you, scores them against your hardware, and lets you apply useful launch options without typing them by hand.

Website: https://www.proton-pulse.com/ - the companion web app now lives on its own domain. If you had the old mdeguzis.github.io/proton-pulse-web/* URLs bookmarked, please update them. The plugin itself already points at the new host.

Browse community reports, Pulse configs, and per-game compatibility data on the Proton Pulse site - works on mobile with a collapsible left-side nav.

Coverage policy: overall Python and TypeScript coverage must stay at or above 90%, and pull requests must keep changed-line coverage at 95% or higher.


Installation -- Decky Loader Plugin Setup for Steam Deck

Requirements

  • Steam Deck with Decky Loader installed
  • Node.js 24 and pnpm v9+ (for building from source)
  • Python 3.x with uv

Install From Release ZIP

Use this route if you just want a published build and do not need the source tree.

  1. Download the latest plugin ZIP from the Releases page.
  2. Open Decky Loader on your Steam Deck.
  3. Use Decky Loader's manual ZIP install flow and select the downloaded release archive.
  4. Restart Decky Loader or Steam if the plugin does not appear immediately.

Install From Source

Use this route if you want to build locally, tweak the plugin, or deploy straight to your Steam Deck.

git clone https://github.com/mdeguzis/decky-proton-pulse.git
cd decky-proton-pulse
make setup
make build
DECK_IP=192.168.1.x make deploy

Useful variants:

make watch
DECK_IP=192.168.1.x make deploy-reload

See the Developer Guide for the full setup and deployment workflow.

Quick Start

git clone https://github.com/mdeguzis/decky-proton-pulse.git
cd decky-proton-pulse
bash scripts/dev-setup.sh

Versioning uses a single source of truth:

  • VERSION

Normal build and deploy commands sync that value into package.json and pyproject.toml automatically.

Updating the Plugin

Proton Pulse has a built-in updater on the About tab (the last tab in the plugin sidebar).

  1. Open the plugin and navigate to the About tab.
  2. Press Check for Updates -- the plugin queries the GitHub Releases API and shows the latest version.
  3. If an update is available, press Update to vX.Y.Z -- the ZIP downloads in the background, identical to the Proton-GE installer in the Compatibility Tools tab.
  4. When the download and extraction finish, press Reload Plugin -- the plugin attempts a hot-reload via Decky Loader first (no Steam restart needed); if that is unavailable it falls back to a full Steam restart.

Note: Because Proton Pulse is not in the Decky store, it cannot use the store's automatic update path. The built-in updater provides an equivalent experience from within the plugin itself.

Plugin Loader Compatibility

Proton Pulse is built for Decky Loader. Other plugin loaders for the Steam Deck ecosystem are listed below.

Loader Platform Status Notes
Decky Loader SteamOS / Linux Yes Primary target
Decky Loader for Windows Windows Yes (AFAIK) Community port; not officially tested
Condenser TBD WIP Plugin API not yet finalized
Millennium SteamOS / Windows No Different plugin model; not compatible

Features

  • ProtonDB report fetching - pulls from cached, mirrored, and live ProtonDB sources so the plugin still has something useful to show when one source comes up empty
  • Native Pulse reports - submit your own compatibility report directly from the plugin; hardware (CPU, GPU, RAM, VRAM, driver, kernel, OS, resolution) is captured automatically so you only need to pick a rating and Proton version
  • Dynamic ProtonDB hardware scoring & filtering - ranks reports by GPU vendor, driver version, Proton build, report age, and compatibility tier so results match your exact setup, not just the general tier
  • Steam Proton launch option management (no copy/paste) - apply, review, edit, and clear launch options directly from the Steam Deck UI without a keyboard
  • Saved configurations - keep reusable per-game setups with custom variables and a live launch preview
  • Compatibility tool management - browse, install, refresh, and manage Proton and GE versions without leaving the plugin
  • Detailed report browsing - open full report cards with filters, diagnostics, vote counts, and score breakdowns
  • ProtonDB contribution helpers - vote on reports and prep system info for ProtonDB submissions from inside the plugin
  • Game library badge - floating tier badge (PLATINUM/GOLD/etc.) injected into the game page header; for non-Steam games with a resolved Steam store match, shows the tier badge alongside the launcher source label (Heroic, Epic, GOG, etc.)
  • Store page badge - Proton Pulse icon badge injected into the Steam store page header when browsing a game's store page in the embedded browser
  • Search results hint - Y-button gamepad hint appears at the bottom of the screen when a search result tile is focused, letting you jump straight to Proton Pulse for that game without opening the library first
  • Non-Steam game support - resolves non-Steam shortcuts (Heroic, Lutris, Bottles, itch.io, etc.) to their matching Steam store app ID for accurate ProtonDB data and report lookup
  • Library guard - report action buttons (apply, edit, upload, clear, vote) are disabled for games not in the user's library, with a visible "Not in library" notice at the top of the manage-game tab
  • System detection - detects CPU, RAM, GPU, driver, kernel, distro, and custom Proton versions automatically
  • Sidebar tools - quick access to settings, logs, cache tools, and plugin controls from the Decky panel
  • Translations - interface support for 19 languages, with coverage tracked in generated build metrics
  • Diagnostics and logging - built-in logs, cache inspection, performance metrics, and backend troubleshooting support

Screenshots

see: UI screenshot gallery

How Proton Pulse Works -- Apply ProtonDB Launch Options Without Copy/Paste

Getting Proton launch options right usually means opening ProtonDB, reading a pile of reports, guessing which ones match your hardware, and then copying flags into Steam by hand. Proton Pulse handles that from the Steam Deck UI:

  1. Open the plugin from the Quick Access sidebar, navigate to a game in your library, or browse Steam search results -- a Y-button hint lets you jump straight to a game's Proton data without leaving search.
  2. The plugin fetches ProtonDB reports and scores them against your GPU, driver, and Proton version.
  3. Pick a report and press Apply. Proton Pulse writes the launch options straight to that game through Steam's CEF API.

Tier badges appear directly on game library pages and Steam store pages so you know compatibility at a glance. Non-Steam games (Heroic, Lutris, Epic, GOG, etc.) are resolved to their Steam store counterpart for accurate report data.

Optional Proton Pulse Account Link

Linking the Decky plugin to a Proton Pulse account is optional. The plugin works without it for local report browsing, scoring, and launch-option management.

  • On the website: Steam login is only the sign-in method for your Proton Pulse account.
  • In the Decky plugin: linking uses a Proton Pulse install ID plus a short link code.
  • Privacy boundary: the plugin does not upload Steam profile names or Steam usernames, and Steam auth is not used as the plugin identity.

After linking, uploads from that Decky install can show up as yours on the website, and the website can manage synced systems and reports for the same Proton Pulse user.

Proton Pulse account linking in Decky settings


How This Compares to Other Decky Plugins

Several Decky plugins cover subsets of what Proton Pulse does. The table below covers the most relevant ones.

Feature Proton Pulse ProtonDB Badges Proton Launch
ProtonDB tier badge on game page Yes -- Full/Compact/Minimal/Off styles, atom icon, Native Linux badge, non-Steam launcher badge Yes -- multiple sizes and positions No
Tier badges on library grid tiles Yes -- Full/Compact/Minimal/Off styles, persistent cache Yes -- small atom icons (green/red/gray) No
Launch option apply (no copy/paste) Yes -- ProtonDB-sourced, writes directly to Steam Clipboard copy only Yes -- preset-based (FSR, DLSS, DXVK, etc.), writes directly to Steam
Hardware-aware report scoring Yes -- GPU, driver, Proton version, age, tier No No
Report submission from plugin Yes -- full native Pulse report Opens ProtonDB website (not native) No
Companion website Yes -- proton-pulse.com Yes -- protondb.schelstraete.org No
Cloud sync (configs + reports) Yes -- Supabase No -- local cache only No
Saved per-game configurations Yes No Yes -- per-game profiles
Compatibility tool management Yes -- install/manage Proton/GE No No
Non-Steam game support (Heroic, GOG, etc.) Yes -- resolves to Steam store ID No No
Self-updater (built-in) Yes -- GitHub Releases No No
Decky store availability No Yes Yes
Translation support 19 languages (build-tracked) 32 languages --
Active maintenance Yes Yes Yes

Additional forks of these plugins exist outside the Decky store and may offer further variations. The table reflects the primary/canonical repo for each project.

For a deeper comparison of Proton Pulse vs ProtonDB (including the website, report ownership, open data, and hardware scoring), see the FAQ.

Documentation

  • Proton Pulse Site - browse community reports, Pulse configs, and per-game data
  • FAQ - common questions: how Proton Pulse compares to ProtonDB, report ownership, hardware scoring, privacy
  • Developer Guide - setup, build, deploy, testing, CEF debugging
  • Architecture - file-by-file code breakdown and ownership boundaries
  • System Design - end-to-end flow diagrams, data ownership, scoring model
  • Scoring Algorithm - how reports are weighted and ranked
  • API Reference - Python callables and TypeScript interfaces
  • ProtonDB Data Resolution - app ID resolution, mirror misses, and live fallback
  • Local dev notes - Node 24, CI, remote Deck helpers, and CEF captures

Translation Coverage

Generated from metrics/translation-coverage.json during pnpm run build.

Proton Pulse supports 29 languages. Translation coverage is measured during build and can be enforced with pnpm run check-translations (100% minimum).

Language Code Coverage Status
English en 100.0% (canonical) canonical
Deutsch de 99.0% fail
Español es 99.0% fail
Français fr 99.0% fail
Italiano it 98.9% fail
日本語 ja 99.0% fail
한국어 ko 99.0% fail
Nederlands nl 98.9% fail
Polski pl 98.9% fail
Português (BR) pt-BR 99.0% fail
Русский ru 99.0% fail
Türkçe tr 99.0% fail
Українська uk 98.9% fail
Svenska sv 98.9% fail
Čeština cs 98.9% fail
ภาษาไทย th 98.9% fail
Tiếng Việt vi 98.9% fail
简体中文 zh-CN 99.0% fail
繁體中文 zh-TW 98.9% fail
Български bg 98.9% fail
Dansk da 98.9% fail
Ελληνικά el 98.9% fail
Español (Latinoamérica) es-419 98.9% fail
Suomi fi 98.9% fail
Magyar hu 98.9% fail
Norsk no 98.9% fail
Português (PT) pt 98.9% fail
Română ro 98.9% fail
Slovenščina sl 98.9% fail

Want to help translate? See src/lib/translations/ for the translation files.

Troubleshooting

Connect To Steam CEF Remote Debugging

If you need to inspect Deck UI patches, injected buttons, or console errors live on the Deck, you can enable Steam's CEF remote debugger and connect from your desktop browser.

  1. Enable the remote debugger on the Deck:
DECK_IP=192.168.1.x make cef-debug-enable
  1. Open the debugger endpoint from your desktop browser:
http://192.168.1.x:8081
  1. If your browser does not auto-discover the targets, open:
http://192.168.1.x:8081/json

That page lists the active Steam CEF targets and their DevTools URLs.

Tips:

  • Keep make get-logs handy in another terminal so you can compare frontend console behavior with the plugin log.
  • If you are debugging a game page patch, open the game page first, then refresh the target list so the correct CEF view is visible.
  • Use the inspector console to confirm route changes, DOM anchor selection, and injected button state when UI patches do not show up where expected.

License

This project is licensed under the GNU General Public License v3.0 or later. Upstream license copies are in the LICENSES/ directory.

Acknowledgments & Credits

Proton Pulse would not exist without the open-source projects below. Many pieces of this project were inspired by their work.

Project Author License
ProtonDB Badges (protondb-decky) OMGDuke GPL-3.0
Decky Proton Launch moi952 BSD-3-Clause
Wine Cellar (decky-wine-cellar) FlashyReese MIT
SteamGridDB Decky Plugin (decky-steamgriddb) SteamGridDB GPL-3.0-or-later
Decky Plugin Template SteamDeckHomebrew BSD-3-Clause

If you find Proton Pulse useful, please consider starring or contributing to these upstream projects as well.

About

A Decky Loader plugin for Steam Deck to pull, hardware-score, and auto-apply Proton launch options directly within Game Mode.

Resources

License

Code of conduct

Contributing

Stars

12 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors