To get more information on how TG Pro works, the available features and how to use them, see our in-depth app tutorial. Or download the free 14-day trial and give it a try.
It’s fully compatible with macOS 10.13 High Sierra to macOS 15 Sequoia, and runs natively on both Intel and Apple Silicon (M1, M2, M3 and M4 series).
This will guide through the steps to remotely install, license and setup custom preferences for TG Pro. This is especially useful for enterprise environments where a system administrator will want to install TG Pro on multiple computers with a remote deployment tool. Just follow the steps below and if there are any issues, please feel free to reach out to us via email or Twitter.
Save 50% - was $20.
One-time payment.
Requires macOS 10.13 or later
Supported macOS versions:
macOS 10.13 High Sierra - macOS 15 Sequoia
Latest Version:
TG Pro 2.94
Release Date:
January 14, 2025
This is a fairly simple step as all that's necessary is to copy the TG Pro app bundle (.app) to the Applications folder on the remote Mac, or whichever folder is required.
One of the best parts of TG Pro is how the features can be customized, such as email notifications, Auto Boost fan control rules, what's shown in the menu bar icon, logging, etc. All of these are controlled by the preferences. As part of a remote deploy, the preferences need to be setup. The preferences will be installed from a plist file, which is a common format for them on macOS. A plist file can easily be edited by Xcode (free) or view the list of plist editors (paid) from the App Store.
Here's what it will look like when opened in Xcode:
Download the plist file below, which contains all available preferences, to get started:
Open the plist file (it may need to be unzipped depending on the browser used) and edit the key/value pairs to suit the requirements of the install. Below is a table of the available key/value pairs grouped by section, along with a description and possible values:
Key | Type | Values | Default Value | Description |
---|---|---|---|---|
launchOnLogin | Boolean | Yes / No | Yes | If the app will be automatically launched on user login. |
appMode (deprecated - do not use) | Number | 0 - Normal app 1 - Background only app (menubar and dock icon are hidden) |
1 | Which style the app will run as. |
updateIntervalSecs | Number | 1-60 | 2 | In seconds, how often the temperatures and fan speeds are updated, as well as the Auto Boost rules (when in Auto Boost fan control mode). |
enableDebugOutput | Boolean | Yes / No | No | If extra logging, which can help to debug certain issues, will be written to the system console. |
hideTutorialAlert | Boolean | Yes / No | No | If the alert to view the app tutorial will be shown or not. This alert will appear when opening the main window (and has an option to suppress future showings). |
didSignupForNewsletter | Boolean | Yes / No | No | If the user has consented and added their email to the Tunabelly Software newsletter. |
didPromptSignupForNewsletter | Boolean | Yes / No | Yes - for the downloaded plist above. No - for fresh installs not remotely deployed. |
If the app has prompted the user to sign up for the newsletter. |
useGenericMode | Boolean | Yes / No | No | If the app should use the generic mode for finding and determining which temperature sensors to display. This is usually only used for Hackintosh (home made Macs) models. |
Key | Type | Values | Default Value | Description |
---|---|---|---|---|
showTempInMenuBar | Boolean | Yes / No | Yes | If the first temperature will be shown. |
menuBarTempSensorIndex | Number | (All are temperatures) 0 - Computer average 1 - Highest 3 - Average CPU 4 - Highest CPU 6 and up - Each temperature sensor in sequence. These are specific to the Mac model the app is running on. |
1 | The first temperature that will be shown in the menubar icon. |
showTemp2InMenuBar | Boolean | Yes / No | No | If the second temperature will be shown. |
menuBarTemp2SensorIndex | Number | (All are temperatures) 0 - Computer average 1 - Highest 3 - Average CPU 4 - Highest CPU 6 and up - Each temperature sensor in sequence. These are specific to the Mac model the app is running on. |
4 | The second temperature that will be shown in the menubar icon. |
showFanInMenuBar | Boolean | Yes / No | Yes | If the fan speed will be shown. |
menuBarFanSensorIndex | Number | (All are in RPM) 0 - Fan averages 2 and up - Each fan in sequence. These are specific to the Mac model the app is running on. |
0 | The fan RPM that will be shown in the menubar icon. |
menuBarStackOrder | Number | 0 - Horizontal 1 - Vertical |
1 | The orientation of the menubar info. |
useSmallerMenuFont | Boolean | Yes / No | Yes | If a smaller font size should be used when the menubar stack order is horizontal. |
useShorterTitles | Boolean | Yes / No | Yes | If only numbers should be shown. Ex: 95 / 2000 instead of 95℃ / 2000 RPM |
useColorInMenu | Boolean | Yes / No | Yes | If the temperatures should be color-coded. Higher temperatures will be orange or red. |
useColorForOverrideSymbol | Boolean | Yes / No | Yes | If the override system symbol shown in the menubar will be colored. |
showAppIcon | Boolean | Yes / No | No | If an icon will be shown to the left of the temperature / fan speed information. Note: If no temperatures or fan speeds are enabled, this option will automatically be turned on. |
isFanControlAtTopOfStatusMenu | Boolean | Yes / No | Yes | If the fan controls should be at the top of the drop down menu. |
isCommonSectionAtTopOfStatusMenu | Boolean | Yes / No | No | If the "Show Main Window" and "Preferences" menu items should be at the top of the drop down menu. |
showActiveGPUInStatusMenu | Boolean | Yes / No | Yes | If the active GPU should be shown in the drop down menu (only applies to Macs that have two ore more GPUs). |
showStatusItemHiddenAlert | Boolean | Yes / No | Yes | If an alert should be shown when the TG Pro menu bar item becomes hidden. This can occur if there isn't enough space to display it or it becomes obscured by the screen notch on Macs that have this. |
Key | Type | Values | Default Value | Description |
---|---|---|---|---|
tempUnit | Number | 0 - Celsius 1 - Fahrenheit |
0 | Which temperature units to use. |
checkDriveTemps | Boolean | Yes / No | No | If the hard drive temperatures should be polled and shown, using SMART. |
Key | Type | Values | Default Value | Description |
---|---|---|---|---|
useLocalNotifications | Boolean | Yes / No | Yes | If high temperature notifications should be shown. They will be displayed via the macOS Notification Center. These are triggered by the limit preferences further down the list. |
useEmailNotifications | Boolean | Yes / No | No | If an email should be sent when there's a high temperature. These are triggered by the limit preferences further down the list. |
emailUsername | String | Empty | The username of the email account the notifications will be sent from. | |
silentSetup_emailPassword | String | Yes / No | Empty | The password of the email account the notifications will be sent from. Note: This will be securely stored in the user's Keychain (and not saved in the normal preferences). |
emailAllowEmptyPassword | Boolean | Yes / No | No | If an empty password for the email account is allowed. |
emailOutgoingServer | String | Server | Empty | The outgoing mail server to use. |
emailSMTPPort | Number | Usually 25, 465 or 587 | Empty | The port to use for the outgoing mail server. |
emailSMTPEncryptionType | Number | 1 - None 2 - Start TLS 4 - TLS / SSL |
1 | The type of encryption to use when communicating with the outgoing mail server. |
emailSendTo | String | Empty | The email address the notifications should be sent to. | |
limitForSpecificArea | Number | 40-110℃ Note: The prefs are always stored in Celsius. |
100 | The limit at which local or email notifications will be triggered. This can be for any temperature sensor. |
limitForHighestCPU | Number | 40-110℃ Note: The prefs are always stored in Celsius. |
100 | The limit at which local or email notifications will be triggered. This is only used for CPU temperature sensors. |
showAutoBoostAlerts | Boolean | Yes / No | No | If a local notification / email should be triggered when Auto Boost rules are activated / deactivated. |
showLastShutdownAlerts | Boolean | Yes / No | Yes | If a local notification / email should be triggered if the last shutdown reason is not normal. |
showBatteryHealthAlerts | Boolean | Yes / No | Yes | If a local notification / email should be triggered if the battery health is not normal. |
playSoundForNotifications | Boolean | Yes / No | No | If a sound should be played when a local notification is shown. |
soundForNotifications | String | Name of sound to play | Empty | The name of the sound to play for the local notifications. |
showSpecificAreaAlerts | Boolean | Yes / No | Yes | If a local notification / email should be triggered if any temperature is above the "limitForSpecificArea" preference. |
showHighestCPUAlerts | Boolean | Yes / No | No | If a local notification / email should be triggered if any temperature is above the "limitForHighestCPU" preference. |
Key | Type | Values | Default Value | Description |
---|---|---|---|---|
logToFile | Boolean | Yes / No | No | If the app will log temperatures, fan speeds, temperature alerts and diagnostic information. |
logTemperatures | Boolean | Yes / No | Yes | If temperature will be logged. |
logFanSpeeds | Boolean | Yes / No | Yes | If fan speeds will be logged. |
logAlerts | Boolean | Yes / No | Yes | If temperature alerts, triggered by the limit values in the Notification preferences will be logged. |
logDiagnostics | Boolean | Yes / No | Yes | If hardware diagnostics will be logged. |
useISO8601DatesForLogs | Boolean | Yes / No | Yes | If the log file names (for startNewLogFileMode 1 or 2) use ISO 8601 formatted dates. |
startNewLogFileMode | Number | When to create a new log file: 0 - Never 1 - On app startup 2 - Everyday at midnight |
1 | When a new log file should be created. |
logFileFolderPath | String | Path to log file. Example: "/Users/macuser/Desktop/TG Pro Log.csv" |
~/Documents/TG Pro Log.csv | The path to where the log file will be created and written. |
Key | Type | Values | Default Value | Description |
---|---|---|---|---|
silentSetup_autoBoostConfigsBattery | Array of Dictionaries | Each dictionary is one Auto Boost rule that will be created and stored. View the key/value pairs to use below. |
Empty | The array of key value pairs for each Auto Boost rule that will be used when the Mac is running on battery power. |
silentSetup_autoBoostConfigsPowerSupply | Array of Dictionaries | Each dictionary is one Auto Boost rule that will be created and stored. View the key/value pairs to use below. |
Empty | The array of key value pairs for each Auto Boost rule that will be used when the Mac is running on a power supply. |
fanControlType | Number | 0 - System 1 - Manual 1 - Max for T2 Macs 2 - Auto Boost 2 - Auto Max for T2 Macs |
0 | Which fan control mode is active. |
autoBoostGradualTime | Number | In seconds: 5 - 60 |
10 | The time in seconds that the Auto Boost rule will take to complete the change in fan speed. |
turnOffFanControlForSleep | Boolean | Yes / No | Yes | If the fan control will be reverted back to System when the Mac goes to sleep. |
enableSystemOverrides (For older non-T2 Macs) |
Array | Array of values of 0 (off) or 1 (on). Each value corresponds to the associated fan number. | Empty | Sets if the app has full control over the fan speeds, including lowering them. |
useManualInsteadOfMax (For newer T2 Macs) |
Boolean | Yes / No | No | If the app should use full control where the fan speeds can be adjusted, or always use maximum rpm. |
useAutoBoostInsteadOfAutoMax (For newer T2 Macs) |
Boolean | Yes / No | No | If the app should use full control where the fan speeds can be adjusted, or always use maximum rpm for all Auto Boost rules. |
linkFanSpeeds | Boolean | Yes / No | Yes | For Macs that have multiple fans, whether or not the speeds are linked together when using the Manual mode sliders. |
enableOverrideCPUFix | Boolean | Yes / No | No | If the feature to try and keep the CPU from throttling when TG Pro has full control should be enabled. |
Auto Boost rules are stored in a proprietary format, so it's not easy possible to add them to the plist file. To resolve this, the rules can be described in the plist, and TG Pro will parse them, create the rules and store them.
When using Auto Boost rules, make sure the fan control mode is set to "Auto Boost" to enable this feature. Also worth noting is for Mac's that have the T2 chip (2018-2020 MacBook Pro, MacBook Air, Mac Mini & iMac Pro), the option to override system control and use Auto Boost instead of Max Boost is necessary, otherwise the app will treat each rule as 100% fan speed. For more detail on why this is, please see this section in the app tutorial.
An example of what they look like in the plist:
The key/value pairs to use along with all the possible options:
Key | Type | Values | Description |
---|---|---|---|
trigger | String | "Any" - Any sensor "Average CPU" - The average temperature of all CPU sensors "Highest CPU" - The highest temperature of all CPU sensors "Always" - Always set the fan to the percent specified and does not use any sensors. |
That will trigger the rule to activate. |
fanName | String | "All" - Rule applies to all fans "Insert fan name here" - If the rule should apply to a specific fan, the name of it can be used. Note that the fan names can be different depending on the Mac model the app is running on. |
Which fans the rule will apply to. |
fanPercent | Number | This is the percent that the fan speed should be set to. 0% = Minimum RPM 100% = Maximum RPM Available values are between 0-100. |
The fan speed that should be used. |
tempThreshold | Number | The temperature that the rule gets triggered at. Available values are between 40-110℃. |
The temperature threshold that the rule will be activated. |
Key | Type | Values | Default Value | Description |
---|---|---|---|---|
automaticallyCheckForUpdates | Boolean | Yes / No | Yes | If the app will be periodically check for updates. |
For this step, all that's required is to copy the preferences plist file that's been setup to the remote Mac. For this example, the path chosen will be:
/tmp/var/TG Pro/prefs to install.plist
Note: It is possible to have the plist file on a network share instead of copying it to the remote Mac, as described in the step below.
TG Pro will be launched in a special mode that does not display any UI and silently installs the fan helper, licenses the app and installs the preferences.
The following table describes the available options:
Option | Value | Is Required | Description |
---|---|---|---|
-silentSetup | None | Yes | Tells TG Pro to launch in a special mode to silently install and setup everything. |
-licenseKey | String in the format: XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX |
Yes | The license key to use to activate the app. |
-licenseEmail | String | Yes | The email that the license will be activated with. This is not tied to the license key and can be any valid email address. |
-prefsFilePath | String in the format: A fully qualified fie path |
No / Yes if custom preferences are needed. | The path to the plist file that contains the preferences and Auto Boost rules to install. This can be a local or network path. This allows the plist file to be located on a network share and re-used for all installations. |
-prefsUsername | String | Yes | The macOS username that the license will be installed for as well as the optional preferences. |
Note: The command must be run as root to be able to install the fan helper.
Assuming that TG Pro is located in the top level Applications folder, here is an example that includes custom preferences:
sudo "/Applications/TG Pro.app/Contents/MacOS/TG Pro" -silentSetup -licenseKey XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXX -licenseEmail user@example.org -prefsFilePath "/var/tmp/TG Pro/prefs to install.plist" -prefsUsername macuser
Here is another example that will install everything without changing the default preferences:
sudo "/Applications/TG Pro.app/Contents/MacOS/TG Pro" -silentSetup -licenseKey XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX -licenseEmail user@example.org -prefsUsername macuser
TG Pro will now be setup with the provided preferences, licensed (trial dialog will not appear on launch) and full fan control. For fan control, a special helper app is installed in the following locations:
• /Library/PrivilegedHelperTools/com.tunabellysoftware.TGFanHelper
• /Library/LaunchDaemons/com.tunabellysoftware.TGFanHelper.plist