How to uninstall LuLu on Mac
LuLu is a free, open-source firewall from Objective-See that blocks outgoing connections you have not approved. Once you approve its system extension and network filter, it is more than an app in Applications, so remove it with LuLu's own uninstall command rather than by dragging it to the Trash, and export your rules first if you want to keep them. This guide covers the official download and the Homebrew cask lulu.
Export your rules
Objective-See's LuLu page says rules can be exported and imported from the Rules menu, and that each profile keeps its own rules and settings. Export from every profile you want to keep before you uninstall.
Uninstall through LuLu
- Click LuLu's icon in the menu bar and choose its uninstall option. The same page says quitting or uninstalling asks you to authenticate.
- If you only copied LuLu into Applications and never approved its extension, quitting it from the menu bar icon and moving it to the Trash is enough.
Where its data lives
| Location | What it holds | What to do |
|---|---|---|
| LuLu's system extension and network filter | The running firewall, approved in System Settings | Not a file to trash. Remove it with LuLu's own uninstall command. |
Files filed under com.objective-see.lulu.app, LuLu's bundle ID |
Preferences and caches, if present | Selected by default |
| ~/Library/Caches/com.objective-see.lulu and ~/Library/Caches/com.objective-see.lulu.helper | Caches named in the Homebrew zap list | Listed but not selected |
| ~/Library/Preferences/com.objective-see.lulu.plist and ~/Library/Preferences/com.objective-see.lulu.helper.plist | Preferences named in the Homebrew zap list | Listed but not selected |
Check the result
pgrep -il lulu
systemextensionsctl list | grep -i lulu
ls -ld ~/Library/Preferences/com.objective-see.lulu*
- No output from
pgrepmeans LuLu is not running. - No output from
systemextensionsctl listmeans no LuLu system extension is registered. A line for LuLu means the extension is still installed; run LuLu's own uninstall command, or reinstall LuLu to reach it. ls -ldprinting "no matches found" or "No such file or directory" means no LuLu preferences file is left. A listed file means it is still there.
If you installed it with Homebrew
The lulu cask's zap list names four paths: caches and preferences under com.objective-see.lulu and com.objective-see.lulu.helper. None of them uses LuLu's bundle ID, so Mole can list them, taken from Homebrew's zap list for this app, but does not select them. When any of them exists and stays unticked, Mole leaves out --zap and still moves the rows you selected to the Trash itself. Neither the zap list nor Mole deactivates the system extension; that is LuLu's own uninstall command's job.
Running the zap step yourself removes those four paths whatever you ticked in Mole:
brew uninstall --cask --zap lulu
To remove only the app:
brew uninstall --cask lulu
What Mole lists
For LuLu installed from the official download:
- Files filed under LuLu's bundle ID
com.objective-see.lulu.appare selected by default. - Mole can also list the four
com.objective-see.luluandcom.objective-see.lulu.helpercache and preference paths, taken from Homebrew's zap list for this app, but does not select them. - LuLu's system extension and network filter are not listed.
What this test covered
On September 19, 2026, only LuLu.app was copied from the official download into Applications; its system extension and network filter were never approved. It ran as a menu bar app and was removed with a Preview build of Mole 1.15 (build 277); there was no Homebrew receipt. Mole's startup list showed LuLu's embedded login item as a confirm-only row, and that row was gone after the app was removed. An approved network extension, rules, profiles and the Homebrew cask were not tested, so the uninstall steps above come from Objective-See's page, not from this test.
