← Back to docs
⚙️
Getting Started

Enabling the Background Service

Last verified: May 2026

What the background service does

FocusDragon's enforcement doesn't live in the app window — it lives in a separate background process (a LaunchDaemon at /Library/LaunchDaemons/com.focusdragon.daemon.plist) that runs as root and keeps blocking even when the FocusDragon app is quit. This is what makes "I closed the app to escape my block" a non-option. The daemon reads its config from /Library/Application Support/FocusDragon/config.json every 2 seconds and enforces independently.

First-launch registration

The first time you launch FocusDragon, it registers the daemon through the macOS Login Items system. macOS surfaces a one-time prompt asking you to approve the new login item. Click Allow and you're done — the daemon installs itself and starts running. From then on, it auto-starts at boot.

If you said "Don't Allow" by mistake

Easy to fix. Inside FocusDragon, go to Settings → Blocking → Background Service and click Enable. macOS will re-surface the approval prompt.

If the prompt doesn't appear (macOS sometimes remembers your earlier denial and silently suppresses re-prompts), go to System Settings → General → Login Items & Extensions. Look for FocusDragon under "Allow in the background" and toggle it on. The daemon will register the next time you click Enable in the app.

Verifying it's running

  • Settings → Blocking → Background Service — the status should read "Running" with a green dot.
  • If it reads "Stopped" or "Not registered", hit the Enable button and walk through the macOS prompt.
  • Once it's running, you can fully quit the FocusDragon app and any active block will keep enforcing — open a blocked site in a browser to confirm.
Without the background service, your blocks die the moment you Cmd+Q the FocusDragon app. That's the exact bail-out path FocusDragon exists to prevent — don't skip this.

It survives uninstalls (by design)

Dragging FocusDragon.app to the Trash does not stop the daemon. The plist and config live outside the app bundle on purpose, so a moment-of-weakness uninstall doesn't end an active block. To fully remove the daemon, use the in-app Uninstall flow (Settings → Advanced → Uninstall) or follow the manual uninstall doc.

Still stuck? Contact support