This app is not sandboxed because it can terminate and relaunch other apps and services.
Project website: https://owenzhao.github.io/App-Helper/
App Helper is a small, open-source macOS utility for the recurring maintenance tasks that are easy to forget: cleaning up helper processes after an app quits, watching for problematic developer-tool activity, keeping companion apps available, and providing a few useful display and sleep controls. It can run quietly from the menu bar while applying only the rules that you enable.
- Rule-based app cleanup. Listen for app termination events and, after a short delay, restart selected helpers or clean up processes left behind by Xcode, Safari, and other applications. The built-in rules include SourceKitService, Open and Save Panel Service, QuickLookUIService, Web Content, and Safari-related processes.
- Xcode monitoring. Watch for sustained high CPU usage by Xcode and record the event or send a local notification when it needs attention. App Helper can also clean up SourceKitService after Xcode exits.
- Auto-start companion apps. Add applications from the Applications folder, enable or disable them individually, and let App Helper reopen an enabled app when it is no longer running. Duplicate entries are avoided by bundle identifier or application path.
- Display and sleep tools. Toggle the system color theme, inspect HDR status, prevent the display from sleeping, hide or show the desktop, and configure a keyboard shortcut for sleep monitoring.
- Menu bar background mode. Run without keeping a normal Dock presence, open the main window when needed, and access common display actions from the menu bar.
- Notifications and logs. Optionally receive a local notification when a rule matches. Actions are also recorded in the in-app logs so it is possible to see what was started, restarted, terminated, or could not be completed.
App Helper is intentionally focused on local macOS automation. It does not require a server or an account. Because it manages other applications and system services, the app is not sandboxed and some actions may require the relevant macOS permissions.
- Enable the rules you want to apply.
- Click "Run in Background".
That's all.
The direct-download macOS build checks for updates automatically. Users can also choose Check for Updates… from the menu bar icon.
Updates are published through the Sparkle appcast
at https://owenzhao.github.io/App-Helper/appcast.xml. The app only accepts
updates signed with App Helper's EdDSA key, in addition to normal macOS code
signing validation.
To publish a new direct-download build:
-
Archive, Developer ID sign, and notarize the release build. Increase
CURRENT_PROJECT_VERSIONfor every update. -
Create a
.dmgor.zipcontaining onlyApp Helper.app, then use Sparkle'sgenerate_appcasttool to sign the archive and updatewebsite/public/appcast.xml. Keep the archive filenames in a local release directory so Sparkle can retain prior update entries and generate deltas:generate_appcast \ --account com.parussoft.app-helper.sparkle \ --download-url-prefix "https://github.com/owenzhao/App-Helper/releases/download/vX.Y.Z/" \ --link "https://owenzhao.github.io/App-Helper/" \ /path/to/app-helper-release-archives
Copy the generated
appcast.xmltowebsite/public/appcast.xml. -
Upload the signed archive to the matching GitHub Release and commit the generated
appcast.xml. The existing GitHub Pages workflow publishes the feed.
The matching private EdDSA key is stored only in the login Keychain under the
account com.parussoft.app-helper.sparkle; never commit or upload it.
If you have other rules you want to apply, please file them on Github issues.
Lion icons created by justicon - Flaticon Lion icons created by Freepik - Flaticon