
OpenTamer is a local macOS menu bar utility for finding and controlling apps that are using too much CPU. It is a Go app with no third-party dependencies, using small C bindings for the macOS UI components.
This is useful for the annoying case where an app is still useful, but does not need to be working at full speed while it is in the background. A browser, indexer, downloader, editor helper, or background utility may be worth keeping open, but not worth letting it burn through battery or fan noise. OpenTamer can also be used to suppress system processes you are unable to disable due to system integrity protection but don't desire.
OpenTamer can track apps, lower their priority, limit their CPU usage, or pause them when they are in the background. It also tries to restore anything it changed when a rule is removed, management is disabled, or the app exits.
The menu bar item shows the current total system CPU. When management is disabled it shows Off, and when high CPU has
lasted longer than your configured alert duration the item is marked with !.
Tracked apps can also be shown as their own small menu bar items. This is useful when you have one or two apps that you always want to keep an eye on without opening the full panel.
Rules are saved per app and re-applied as OpenTamer refreshes its process list. OpenTamer groups processes by app name by default, which keeps helper processes together in a way that is usually more useful for menu bar monitoring.
Track only keeps an app visible without controlling it. You can track an app in the macOS menu bar, or in the "Tracked Processes" section of the OpenTamer menu. Use this for apps you want to watch before deciding whether they need a stronger rule or just apps you want to keep an eye on.
Lower Priority changes the process nice value to 20, which lets macOS give the app less CPU attention when other work
needs resources. This is the least aggressive control rule and is a good default for browsers, helpers, and apps that
should keep running but do not need to be fast in the background.
Two modes are available:
In Background - Lower priority only while the app is not frontmost.Always - Keep the lower priority even when the app is frontmost.Limit CPU caps an app to a target CPU percentage using a duty cycle. When an app is above the configured target, OpenTamer briefly pauses and resumes the process to keep the average closer to the limit. CPU limiting is more aggressive than lowering priority, but less disruptive than quitting the app. This is useful for apps that ignore normal priority pressure and keep consuming CPU anyway.
Choose a mode under Limit CPU..., then select a preset percentage or Custom...:
In Background - Limit CPU only while the app is not frontmost. OpenTamer releases the limit when you return to the app
and re-applies it as needed when the app returns to the background. Changes are detected on the next stats refresh.Always - Keep the CPU limit even when the app is frontmost. Existing CPU limits keep this behavior.Pause in Background stops an app when it is no longer frontmost and resumes it when you return to it. OpenTamer also hides the app when it is stopped, which keeps the desktop cleaner when the rule is active.
This is the most aggressive rule currently exposed in the UI. It is useful for apps that do not need to do any background work, but should still be available instantly when selected again.
OpenTamer's preferences are available from the ... button in the main panel.
General preferences control the shape of the app:
Stats and graph preferences control how often OpenTamer samples CPU and how much history is visible.
High CPU alerts notify you when an app stays above your configured system CPU threshold long enough to matter. The default
threshold is 75%, the default duration is 30 seconds, and the default cooldown is 10 minutes.
These alerts are meant to catch surprise CPU use without turning every short spike into a notification.
Policy guards can temporarily disable management when the system is in a state where control rules are more likely to be annoying than helpful.
When a policy guard disables management, OpenTamer restores OpenTamer-owned pauses, priority changes, and hidden apps.
OpenTamer is intentionally conservative about what it will control.
The app blocks known critical system processes, OpenTamer's own process, accessibility processes, and protected processes. Root-owned and unknown processes are treated as slow-only, meaning they may be eligible for lower priority behavior but not pausing.
Audio is also protected. If sound is currently playing, background control rules that could interrupt that work are blocked until the audio output is no longer active.
OpenTamer is local-only. It does not include telemetry, analytics, or outbound network client code in the current implementation. Process names, preferences, rules, runtime state, and stats stay on your Mac.
OpenTamer stores local JSON files in ~/Library/Application Support/OpenTamer.
config.json stores preferences and rules.runtime-state.json stores OpenTamer-owned control state so changes can be restored correctly.stats.json stores small local counters such as automatic pause totals.Download the latest version from the releases page.
Contributions are welcome! If you have any suggestions or encounter a bug, please open an issue or submit a pull request.
When contributing:
This project is licensed under the GNU Version 3 - see the LICENSE file for details.
7 commits
1 commits
Go
76.1%
Objective-C
22.4%
C
1.3%

OpenTamer is a local macOS menu bar utility for finding and controlling apps that are using too much CPU. It is a Go app with no third-party dependencies, using small C bindings for the macOS UI components.
This is useful for the annoying case where an app is still useful, but does not need to be working at full speed while it is in the background. A browser, indexer, downloader, editor helper, or background utility may be worth keeping open, but not worth letting it burn through battery or fan noise. OpenTamer can also be used to suppress system processes you are unable to disable due to system integrity protection but don't desire.
OpenTamer can track apps, lower their priority, limit their CPU usage, or pause them when they are in the background. It also tries to restore anything it changed when a rule is removed, management is disabled, or the app exits.
The menu bar item shows the current total system CPU. When management is disabled it shows Off, and when high CPU has
lasted longer than your configured alert duration the item is marked with !.
Tracked apps can also be shown as their own small menu bar items. This is useful when you have one or two apps that you always want to keep an eye on without opening the full panel.
Rules are saved per app and re-applied as OpenTamer refreshes its process list. OpenTamer groups processes by app name by default, which keeps helper processes together in a way that is usually more useful for menu bar monitoring.
Track only keeps an app visible without controlling it. You can track an app in the macOS menu bar, or in the "Tracked Processes" section of the OpenTamer menu. Use this for apps you want to watch before deciding whether they need a stronger rule or just apps you want to keep an eye on.
Lower Priority changes the process nice value to 20, which lets macOS give the app less CPU attention when other work
needs resources. This is the least aggressive control rule and is a good default for browsers, helpers, and apps that
should keep running but do not need to be fast in the background.
Two modes are available:
In Background - Lower priority only while the app is not frontmost.Always - Keep the lower priority even when the app is frontmost.Limit CPU caps an app to a target CPU percentage using a duty cycle. When an app is above the configured target, OpenTamer briefly pauses and resumes the process to keep the average closer to the limit. CPU limiting is more aggressive than lowering priority, but less disruptive than quitting the app. This is useful for apps that ignore normal priority pressure and keep consuming CPU anyway.
Choose a mode under Limit CPU..., then select a preset percentage or Custom...:
In Background - Limit CPU only while the app is not frontmost. OpenTamer releases the limit when you return to the app
and re-applies it as needed when the app returns to the background. Changes are detected on the next stats refresh.Always - Keep the CPU limit even when the app is frontmost. Existing CPU limits keep this behavior.Pause in Background stops an app when it is no longer frontmost and resumes it when you return to it. OpenTamer also hides the app when it is stopped, which keeps the desktop cleaner when the rule is active.
This is the most aggressive rule currently exposed in the UI. It is useful for apps that do not need to do any background work, but should still be available instantly when selected again.
OpenTamer's preferences are available from the ... button in the main panel.
General preferences control the shape of the app:
Stats and graph preferences control how often OpenTamer samples CPU and how much history is visible.
High CPU alerts notify you when an app stays above your configured system CPU threshold long enough to matter. The default
threshold is 75%, the default duration is 30 seconds, and the default cooldown is 10 minutes.
These alerts are meant to catch surprise CPU use without turning every short spike into a notification.
Policy guards can temporarily disable management when the system is in a state where control rules are more likely to be annoying than helpful.
When a policy guard disables management, OpenTamer restores OpenTamer-owned pauses, priority changes, and hidden apps.
OpenTamer is intentionally conservative about what it will control.
The app blocks known critical system processes, OpenTamer's own process, accessibility processes, and protected processes. Root-owned and unknown processes are treated as slow-only, meaning they may be eligible for lower priority behavior but not pausing.
Audio is also protected. If sound is currently playing, background control rules that could interrupt that work are blocked until the audio output is no longer active.
OpenTamer is local-only. It does not include telemetry, analytics, or outbound network client code in the current implementation. Process names, preferences, rules, runtime state, and stats stay on your Mac.
OpenTamer stores local JSON files in ~/Library/Application Support/OpenTamer.
config.json stores preferences and rules.runtime-state.json stores OpenTamer-owned control state so changes can be restored correctly.stats.json stores small local counters such as automatic pause totals.Download the latest version from the releases page.
Contributions are welcome! If you have any suggestions or encounter a bug, please open an issue or submit a pull request.
When contributing:
This project is licensed under the GNU Version 3 - see the LICENSE file for details.
7 commits
1 commits
Go
76.1%
Objective-C
22.4%
C
1.3%