Decky TDP Tuner is a new Decky Loader plugin for the Steam Deck that tries to answer a question I think a lot of us guess at: what is the lowest TDP a game can run at while still holding the framerate you want? Instead of moving the TDP slider by feel for every game, it measures it for you, with the aim of saving battery life without adding stutter.
The plugin was shared on r/SteamDeck by its developer, u/DragonfruitEvening69, in a post titled “I Built a Decky Loader Plugin that finds the lowest TDP that sustains the framerate you want“. The source code is on GitHub under the GPL-3.0 licence, and the first release, v0.0.1, is marked as a pre-release. Everything below comes from the developer’s post and the project’s README. I haven’t run it myself.
Why a lower TDP can mean better battery life
If you already cap your framerate, you might wonder why the TDP matters at all. Someone asked exactly that in the thread. The developer’s answer was that the Deck’s APU governor is “pretty aggressive”. Even with a fixed FPS limit, the chip will often boost its CPU and GPU clocks higher than needed to keep a buffer, drawing more power than the scene needs. Capping the TDP forces it lower on its voltage and frequency curve, which in their words “cuts out that wasted boost overhead and saves real battery”.
The README makes the same point: without a framerate limit, the APU will “happily use all 15W to render frames you’ll never see”. Battery isn’t the only possible benefit. u/NutsackEuphoria said in the comments that lowering the TDP while holding 30fps can bring the Deck’s temperatures down from the 80s (C) into the 70s or even 60s. That’s one user’s experience, but it fits with the idea.
How Decky TDP Tuner finds the lowest TDP
The basic idea is simple. You set Steam’s framerate limit, pick the same number as the target in the plugin, and press “Find lowest TDP” while you are somewhere in the game that is about as heavy as the rest of it. The README suggests a busy town, not a loading screen.
- It starts at 15W and checks the game can actually hold the target there.
- It then does a binary search downwards to find the lowest wattage where both the average framerate and the 5% lows stay above the target. Each step settles for 5 seconds and samples for 10.
- It also looks at frametime jitter. If the lowest passing wattage gives a jagged frametime graph, it keeps going up 1W at a time while each extra watt is at least 25% smoother.
- A full run takes a minute or two. The result is saved for that game and applied automatically every time you launch it.
If even 15W can’t hold your target, the panel tells you in big red letters, shows the best framerate it managed, saves nothing, and offers a button to drop the target to something that would have passed. The frametime data comes from mangoapp, the tool behind Steam’s performance overlay, so the overlay doesn’t need to be on screen.
Decky TDP Tuner extra features
- Adjust live: uses the tuned value as a starting point and keeps watching frametimes during your session. It raises the TDP by 2W when the framerate stays under 93% of the target for a couple of seconds (4W if it falls under 75%), but only lowers it 1W at a time after 15 seconds of steady frames.
- Full power on charger: when plugged in, it pushes the TDP to 15W and pins the GPU clock at 1600MHz by default, both adjustable. When you unplug, it eases back down rather than dropping all at once.
- Lowest TDP (Advanced): the floor for tuning and live mode. It defaults to 4W because some games crash or hang below that, and can be moved between what the driver allows and 10W.
Things to know before you install it
- Steam’s framerate limit must match the plugin’s target, and Steam’s own TDP limit slider needs to be off, or they will keep overwriting each other.
- Steam’s manual GPU clock setting and the charger mode will also fight each other.
- The plugin runs as root and writes to the amdgpu power limits. The developer says it stays within the range the driver reports, and a reboot puts everything back to stock if something goes wrong.
- Install the zip from the GitHub release by enabling developer mode in Decky’s settings and using “Install Plugin From ZIP”. It isn’t in the Decky store yet, but the developer plans to submit it once it has matured.
- It was written for the Steam Deck LCD and OLED. Other SteamOS handhelds might work, but it has only been tested on the Deck.
- If something goes wrong, the developer asks for an issue on GitHub with the tdptuner.log file from ~/homebrew/logs/ attached.
Not everyone in the thread was sold. u/EVPointMaster argued that the live mode is something the Steam Deck already does on its own, and noted that with frame generation you’ll want a fixed GPU clock anyway. Others asked for support for other handhelds, like a 40W maximum for the Legion Go S, which the developer said they would look into.
My thoughts
For battery life, this looks like a neat way to take the guesswork out of per-game TDP limits, as long as you’re happy using pre-release software that runs as root. If you’re into Decky plugins, my guides to Decky MultiFrameGen and LSFG-VK 2.0 are worth a look too. Just keep the frame generation caveat above in mind if you plan to combine them.








