Skip to main content

Uninstall

OpenUsage is a single binary plus a few user-scoped files. This page covers everything to remove.

1. Remove integrations first

If you've installed any tool integrations, uninstall them so they don't leave dead hook scripts behind:

openusage integrations list # see what's installed
openusage integrations uninstall claude_code
openusage integrations uninstall codex
openusage integrations uninstall opencode

Each uninstall patches the target tool's config file to remove its registered hook entry, then deletes the hook script. A .bak of the previous tool config is preserved.

2. Stop and remove the daemon

openusage telemetry daemon uninstall

This unloads the launchd agent (macOS) or disables and removes the systemd user unit (Linux), and deletes the service file.

If the command fails (binary already gone), remove the service files manually:

macOS

launchctl bootout "gui/$(id -u)" ~/Library/LaunchAgents/com.openusage.telemetryd.plist 2>/dev/null
rm -f ~/Library/LaunchAgents/com.openusage.telemetryd.plist

Linux

systemctl --user disable --now openusage-telemetry.service 2>/dev/null
rm -f ~/.config/systemd/user/openusage-telemetry.service
systemctl --user daemon-reload

3. Remove the binary

Homebrew

brew uninstall openusage
brew untap janekbaraniewski/tap # optional

Manual

which openusage # find it
rm $(which openusage)

4. Remove user data (optional)

OpenUsage stores config, themes, hooks, and telemetry data in user directories. None of this is shared with other users on the system.

# Config
rm -rf ~/.config/openusage

# State (SQLite store, socket, logs, spool)
rm -rf ~/.local/state/openusage

On macOS, ~/.config and ~/.local/state are honored — OpenUsage uses XDG paths, not ~/Library/Application Support/.

On Windows:

Remove-Item -Recurse -Force "$env:APPDATA\openusage"

5. Confirm

which openusage # should be empty
ls ~/.config/openusage 2>&1 # should say "No such file"
ls ~/.local/state/openusage 2>&1

That's it. OpenUsage is fully removed.