Uninstall Blowhorn
Remove the app, the service, the extension host and the checkout's build products. macOS only.
Uninstall Blowhorn
Remove Blowhorn from your Mac: the background service, the Chrome native host, the launchers, the desktop app and the checkout's build products. Your data stays unless you ask for it to go, and the shared store is never touched.
macOS only. On Linux the command is refused by name and nothing is read or removed.
See what would be removed
Always start with the dry run. It lists everything the installer, the app, the service and the extension install can leave on this machine, says whether each is present, and removes nothing:
blowhorn uninstall --dry-run
Each line carries one result, would remove, not present, not checked,
kept, not unregistered, or never touched for the shared store, with the
path. not checked means the item's state could not be read, with the reason;
nothing is done to it, and it is never reported as absent.
Remove Blowhorn and keep your data
blowhorn uninstall
The command removes, in order, reporting each item as removed, not present, not unregistered or failed:
- The background service. Each loaded label is booted out and waited for,
then its file under
~/Library/LaunchAgentsis removed. A label the app registered as its login item is booted out the same way; its Login Items entry is unregistered by the app itself in step 5. - The Chrome native host. The manifests under Chrome's
NativeMessagingHosts, the launchers and the bridge socket beside them. - The every-profile install entries. The external-extensions file and Blowhorn's own entry in the managed policy, removed with the same administrator prompt that wrote them; other keys in that file stay.
- The launchers.
~/.local/bin/blowhornand the pre-rename shim, when they carry the installer's marker. A file there thatinstall.shdid not write is kept and says so. Pass--bin-dirif you installed elsewhere. - The desktop app. Each bundle first unregisters its own Login Items
entries, then is removed. A bundle too old to unregister itself is reported
not unregistered, naming the step left to you under System Settings > General > Login Items. - The checkout's build products. The virtualenv (removed only when it
holds
pyvenv.cfg),node_modules/,desktop/node_modules/andlogs/.
A failed item does not stop the run: everything else is still removed, and the command exits 1.
Kept at the end, and named: the store connection file, the app's preferences
and engine record, Blowhorn's own Chrome trees, the per-user Library state,
the checkout's cache/, and the scheduler pause file.
Remove the local data too
blowhorn uninstall --purge
--purge removes the kept list above as well. It shows what it is about to
remove and asks you to type purge; anything else cancels and removes
nothing. From a script with no terminal, pass --yes. --json needs --yes
too, because the prompt would otherwise land in the JSON output.
The shared store, the content queue, the schedule, the profiles and the ledgers on it, is not local data and is never touched, under any flag. Other machines keep using it.
When the venv is already gone
uninstall.sh at the checkout root runs the same code with the system Python
and takes the same flags:
./uninstall.sh --dry-run
./uninstall.sh
./uninstall.sh --purge
When it refuses
The command removes nothing, in a dry run too, while any of these is running, and names it: a scheduler tick, a pass of the background service, a run holding the extension bridge, the desktop app, or run records still waiting in the local spool for the store. Send those records first:
blowhorn store --replay-spool --log-dir <log-dir>
blowhorn uninstall
When the store will never be reachable again from this machine, give the
records up instead with blowhorn uninstall --discard-unsynced-runs, which
asks you to type discard. Quit the app or wait for the run to finish, then
run the command again. blowhorn service status and blowhorn chrome extension-status show what is running.
Reinstalling afterwards
A fresh ./install.sh from the same checkout produces a working install.
Your kept store connection file is picked up as it was.
Related
- Keep posting when the app is closed - stop the service before removing it
- Fix the Chrome extension connection - check what is running first
- Change your defaults - log directories the dry run reports on