halton-meter uninstall removes the launchd supervisor, restores the
macOS system proxy from the snapshot init captured, and (optionally)
purges configuration and the SQLite database. The default invocation
preserves your captured data; you must opt in to delete it.
Synopsis
halton-meter uninstall [--purge] [--include-logs] [--yes] [--graceful] What gets removed at each level
$ halton-meter uninstall # default: remove plists, restore proxy, keep ~/.halton-meter
$ halton-meter uninstall --purge # also delete ~/.halton-meter EXCEPT db.sqlite
$ halton-meter uninstall --purge --include-logs # also delete db.sqlite (interactive confirmation)
$ halton-meter uninstall --purge --include-logs --yes # scripted / CI
$ halton-meter uninstall --graceful # leave edge running through next reboot What it actually does, in order
The reference is daemon/halton_meter/install/_macos.py:
launchctl bootoutforcom.haltonlabs.meter,com.haltonlabs.meter.watchdog,com.haltonlabs.meter.edge(unless--graceful), andcom.haltonlabs.meter.userenv.- Restore the macOS system proxy from
~/.halton-meter/system_state.json— the snapshotinitcaptured pre-install. If no snapshot exists, fall back to disabling the proxy on every active interface (the load-bearing recovery path). - Remove sentinel files (
proxy-managed,apps-managed,install-mode). - Delete the four plists from
~/Library/LaunchAgents/. - With
--purge: delete~/.halton-meter/exceptdb.sqlite{,-wal,-shm}. - With
--purge --include-logs: delete the SQLite database too (interactive confirmation required unless--yes).
The mitmproxy CA at ~/.mitmproxy/ is not removed by uninstall
— other tools may share that store. To remove it, see the Manual
cleanup checklist below.
--graceful — soft uninstall
Tools that have HTTPS_PROXY=http://127.0.0.1:8081 baked into their
environ will fail their next request when the edge stops. --graceful
keeps the edge running in pure-passthrough mode through the next
reboot, giving you time to restart your tools cleanly:
$ halton-meter uninstall --graceful
✓ daemon stopped
✓ watchdog stopped
edge left running 127.0.0.1:8081 (passthrough until next reboot)
✓ system proxy restored
✓ plists removed (daemon, watchdog, userenv)
edge plist preserved — bootout on next reboot Manual cleanup checklist
If halton-meter uninstall is unavailable (e.g. pipx already removed
the binary), here is the by-hand equivalent:
# 1. Stop and unload every plist
$ launchctl bootout "gui/$(id -u)/com.haltonlabs.meter" 2>/dev/null
$ launchctl bootout "gui/$(id -u)/com.haltonlabs.meter.watchdog" 2>/dev/null
$ launchctl bootout "gui/$(id -u)/com.haltonlabs.meter.edge" 2>/dev/null
$ launchctl bootout "gui/$(id -u)/com.haltonlabs.meter.userenv" 2>/dev/null
# 2. Disable system proxy on every active interface
$ for svc in $(networksetup -listallnetworkservices | tail -n +2); do
networksetup -setsecurewebproxystate "$svc" off
networksetup -setwebproxystate "$svc" off
done
# 3. Remove the trusted CA from the System keychain
$ sudo security delete-certificate -c mitmproxy /Library/Keychains/System.keychain
# 4. Remove plists and state
$ rm -f ~/Library/LaunchAgents/com.haltonlabs.meter*.plist
$ rm -rf ~/.halton-meter ~/.mitmproxy
# 5. Remove the package
$ pipx uninstall halton-meter After step 4, optionally undo shell-rc edits — look for blocks fenced
by # >>> halton-meter env / # <<< halton-meter env in ~/.zshrc,
~/.bashrc, and ~/.bash_profile.
What’s next
halton-meter stop— the soft alternative if you only want metering off temporarily- Troubleshooting — the full-uninstall-and-reinstall recipe when state has drifted past easy repair