When to do this
A clean reinstall is a debugging tool of last resort — useful when permissions are wedged, the daemon won't load, or you're handing the Mac to someone else. Most issues are solvable without nuking everything; try the targeted troubleshooting pages first.
Do NOT run this with an active block. The daemon's AppBundleProtector keeps a backup of the app at /Library/Application Support/FocusDragon/app-backup/ and refreshes it every 5 minutes. If a block is running and the bundle disappears, the protector restores it almost immediately — your uninstall will appear to silently fail.
Step-by-step
- 1. End any active blocks first. With no block active and the bundle missing, the daemon self-tears-down after a 30-second grace period.
- 2. Quit FocusDragon (Cmd-Q).
- 3. Drag /Applications/FocusDragon.app to the Trash, empty Trash.
- 4. Wait at least 30 seconds for the daemon's grace-period self-teardown.
- 5. Run the cleanup commands below in Terminal to remove anything the daemon didn't clean up itself.
Full cleanup commands
# Remove the LaunchDaemon plist (root-owned — needs sudo)
sudo launchctl unload /Library/LaunchDaemons/com.focusdragon.daemon.plist 2>/dev/null
sudo rm -f /Library/LaunchDaemons/com.focusdragon.daemon.plist
# Remove the daemon's config + bundle backup
sudo rm -rf "/Library/Application Support/FocusDragon"
# Remove the user-domain preferences (block lists, settings)
rm -f ~/Library/Preferences/com.focusdragon.*.plist
# Optional: also remove the user-domain Application Support data
rm -rf "$HOME/Library/Application Support/FocusDragon"These commands delete your block lists, statistics, and local task contexts. Your subscription and account survive (those live on our server). Re-sign-in after reinstall to recover entitlements.
Reinstall
Download the latest DMG from focusdragon.app, drag FocusDragon.app to /Applications, launch, sign in. Re-grant permissions when prompted. Your subscription is keyed to your account, not the install.
Recovery note: if you remove ~/Library/Preferences but leave the daemon's config.json in place, the app reseeds a single "Recovered" block from the daemon config so your enforcement and UI stay in sync. That's why the full cleanup above removes both.
Still stuck? Contact support at hi@focusdragon.app.