tlpctl(1)

πŸ“¦
version 1.10.2 Β· 3 versions
, in arch rolling, fedora 44, nixpkgs unstable, ubuntu stonking

πŸ’– NAME πŸ’–

tlpctl β€” the little command-line bestie that controls your TLP profiles. That's it, that's the whole name, we're already slaying. (This is page tlpctl(1), sitting in the Power Management corner of the manual, and honestly it's giving main character energy.)


🌸 SYNOPSIS 🌸

tlpctl [-h] command [options] [args]

✨ DESCRIPTION ✨

tlpctl is a command-line utility to control TLP profiles. It lets you switch between profiles, list available profiles, and launch applications with specific profiles. It offers a subset of powerprofilesctl's commands, supplemented by some TLP-specific shortcuts β€” so if you already know powerprofilesctl, hi bestie, you're basically home already. πŸ’…

tlpctl communicates with the TLP Profiles Daemon (tlp-pd), which implements the org.freedesktop.UPower.PowerProfiles D-Bus interface, similar to power-profiles-daemon. So it's not doing the power management itself, it's talking to the daemon that is. iykyk. πŸ¦‹


πŸ‘‘ COMMANDS πŸ‘‘

⚑ Profile Shortcuts

These are the "just do it for me" buttons, no cap:

  • performance β€” Switch to the performance profile. It's a shortcut for tlpctl set performance. ✨
  • balanced β€” Switch to the balanced profile. Shortcut for tlpctl set balanced. 🌈
  • power-saver β€” Switch to the power-saver profile. Shortcut for tlpctl set power-saver. πŸ“

πŸŽ€ Profile Management

  • list β€” List available TLP profiles. The active profile is marked with an asterisk (*), like a lil crown. πŸ‘‘
  • get β€” Print the currently active TLP profile.
  • set profile β€” Set the active TLP profile. Valid profiles are: performance, balanced and power-saver. Heads up: this will release all active profile holds. Like, all of them. Gone. πŸ’€
  • launch command [options] β€” Run a command and request a specific TLP profile for it. This is called a "profile hold". Cute, right?
    • -p, --profile profile β€” Profile to hold while running the command (default: performance).
    • -r, --reason reason β€” Reason for the profile hold (default: second and remaining words of the command).
    • -i, --appid appid β€” Application identifier for the hold (default: first word of command).

Holds are automatically released β€” returning you to the user's selected profile β€” when:

  • The holding command exits
  • The user manually changes the profile (with tlpctl set)
  • The application explicitly releases the hold

Multiple holds can be active simultaneously. Yes, they can coexist, they're not jealous. 🫢

  • list-holds β€” List current TLP profile holds (from launch command), showing the profile name, application ID, and reason for each hold. Receipts! 🧾

πŸ” Diagnostics and Debugging

  • loglevel level β€” Set the loglevel of the TLP Profiles Daemon (tlp-pd). Valid levels are: info and debug.

⭐ Information

  • version, --version β€” Display version information for both the tlpctl client and the TLP Profiles Daemon. Two for the price of one, we love a bundle. 🎁

πŸ’… OPTIONS πŸ’…

  • -h, --help β€” Show a help message and exit. You can use it with any command to show command-specific help, so when you're lost, just ask. No shame in it. πŸ™ˆ

πŸ”’ AUTHORIZATION πŸ”’

An active, unlocked session is required to perform actions.

Changing the loglevel requires root privilege. So, you know, sudo it or don't do it at all. πŸ‘‘

🌈 POWER PROFILES 🌈

  • performance β€” Optimizes the system for maximum performance at the cost of higher power consumption. Recommended for demanding workloads. This is the TLP default when running on AC power. Plugged in = unhinged. πŸ”₯
  • balanced β€” Provides a balance between performance and power consumption. Suitable for general-purpose use. This is the TLP default when running on battery power. The chill one. ✨
  • power-saver β€” Optimizes the system for maximum battery life at the cost of reduced performance. Recommended for maximizing battery runtime. Your battery's emotional support profile. πŸ”‹πŸ’–

πŸ¦‹ EXAMPLES πŸ¦‹

List available profiles:

$ tlpctl list

Switch to the power-saver profile:

$ tlpctl power-saver

Get the currently active TLP profile:

$ tlpctl get

Launch a game with the performance profile:

$ tlpctl launch --profile performance --reason "Gaming" steam

Launch a command with default performance hold:

$ tlpctl launch make -j8

List current TLP profile holds:

$ tlpctl list-holds

πŸ“ EXIT STATUS πŸ“

  • 0 β€” Success. We ate. πŸŽ‰
  • 1 β€” General error (Invalid arguments, tlp-pd refuses the operation, D-Bus communication failure). It's giving "something went wrong bestie". 😭
  • Other β€” When using launch, the exit status of the launched command is returned.

🧚 SEE ALSO 🧚

tlp(8), tlp-stat(8), tlp-pd(8).

TLP documentation: <https://linrunner.de/tlp>


πŸ’€ BUGS πŸ’€

Report bugs to: <https://github.com/linrunner/TLP/issues>.


🌸 AUTHOR 🌸

(c) 2026 Thomas Koch <linrunner at gmx.net>


And that's the whole page, bestie β€” TLP 1.10.2, dated 2026-07-06, straight out of the tlpctl(1) manual. Go forth and profile responsibly. πŸ’–βœ¨

πŸ“¦ where this page comes from