An app you opened once can keep running forever. The Background Task Management audit lists everything a bundle registered to start on its own:
  • Login items — launched when you log in.
  • Launch agents — run in your user session, on a schedule or a trigger.
  • Launch daemons — run as root, before anybody logs in.
  • Helper tools and XPC services — embedded binaries the app can start.

How it’s collected

privacycommand reads this through the privileged helper, which runs sfltool dumpBTM on your behalf.
Doing this through the helper means no admin prompt mid-audit. Without the helper installed, privacycommand asks before triggering the prompt itself, so the audit is never the thing that surprises you with an authentication dialog.

What to look for

Daemons over agents. A launch daemon runs as root and starts before login. The bar for one should be high — a bundled updater or a VPN helper is reasonable; a note-taking app is not. Items with no visible feature behind them. If an app registered three helpers and you can only account for one, that’s the question to chase. Persistence that outlives the app. Login items and launch agents commonly survive dragging the app to the Trash. This audit is often the fastest way to find leftovers from software you removed months ago. Helpers signed by someone else. Every embedded binary is analysed too, so check the signing identity matches the app’s.

Acting on it

privacycommand reports; it doesn’t remove things. It shows the identifier and the command behind each entry, so you can inspect or unload it yourself:
Removing persistence properly means the vendor’s own uninstaller, or unloading the job and deleting its plist — which is deliberately outside what a read-only forensic tool will do for you.