Releases: objective-see/LuLu
Version 4.2.0
🆕 You can now sponsor LuLu/Objective-See Foundation:
LuLu v4.2.0
☑️ Fixed UI issues that could prevent profile creation (#801)
☑️ LuLu can now be installed within subfolders of /Applications (#805)
☑️ For bundled helper apps without an icon, the parent's icon is now shown
☑️ Rules can now be created with 0.0.0.0/ (IPv4) and ::/0 (IPv6) (#807)
🔐 Disk Image Hash (SHA256):
LuLu_4.2.0.dmg: 92516F945F681B37600D2649E5296BC48E2BABB8ADF3B8CC6274E95B382C87FA
Version 4.1.0
🆕 You can now sponsor LuLu/Objective-See Foundation:
LuLu v4.1.0
☑️ General UI improvements (#785)
☑️ Improved Turkish localization (#789)
☑️ Improved rule importing and cleanup (#795)
☑️ Improved handling bundles when hashing binary (#791)
☑️ Added support for 0.0.0.0/0 and ::/0 in allow/block list (#793)
🔐 Disk Image Hash (SHA256):
LuLu_4.1.0.dmg: A79AA1F793088FAFE1957461702456843D7BA75BBCC472476DF21E9F1D1D3791
Version 4.0.1
🆕 You can now sponsor LuLu/Objective-See Foundation:
LuLu v4.0.1
🔎 Improved Logging
Per request, added a dedicated debug log msg that shows: Process → Endpoint → Rule → Decision.
To filter on, from Terminal, run:
log stream --level debug --predicate 'subsystem == "com.objective-see.lulu" && composedMessage BEGINSWITH "[LULU]"'
🚮 Rules UI
Reverted logic that would hide HTTP/S ports for endpoint rules, as it was a bit confusing to determine whether rule was then for all ports, or just the HTTP/S ones.
🔐 Disk Image Hash (SHA256):
LuLu_4.0.1.dmg: BBA85CF9AA333CE2659AFAD8CC58F71B92CA082AC22FAB79DEB6D9B19E6CB16B
Version 4.0.0
🆕 You can now sponsor LuLu/Objective-See Foundation:
LuLu v4.0
👥 New Feature: Profiles (#574)
A profile defines a set of rules and settings. Once activated, the profile's settings apply LuLu-wide and can be modified via LuLu's Settings panes. Any changes to settings or rules (as well as any new rules) will apply only to that profile.
⏸️ New Feature: Disable Rules (#353)
Either individual rules, or all rules for an entire process can now be disabled
✅ macOS 26 Compatibility Improvements
🪟 Rule's Window Improvements
'Hamburger' menu added contain rule options, such as disable, delete, view paths, etc.
Hitting delete on your keyboard, on a selected rule, will also delete the rule. Also, default ports (80/443) are hidden in rules to make the UI cleaner.
🚮 Rule Cleanup
Expired and temporary rules now automatically cleaned up / removed
🇮🇹 Additional Localization(s)
Italian
✍🏼 Improved Passive Rule Creation (#782)
Passive mode rule creation now prioritizes domain names over IP addresses. Now, when passive mode creates rules automatically, they will show meaningful names like github.com instead of 140.82.112.3:443.
🔗 Changes to VirusTotal Integration
Due to an API key being deprecated, VirusTotal button now open's VirusTotal's report in default browser
🔐 Disk Image Hash (SHA256):
LuLu_4.0.0.dmg: DD55AE20D509BEAFDB6E8D82ACBF508608F56C05975DBA35AF303DF6F5FCBA18
🙏🏽 Note, to facilitate with testing/bug reports, you can stream debug log messages via:
log stream --level debug --predicate="subsystem='com.objective-see.lulu'"
(Note: Server-side JSON file will be updated in a few days, so that the update message from within LuLu is displayed. For now, you can manually update by downloading the attached disk image LuLu_4.0.0.dmg)
Version 3.9.1 (A 4.0 beta)
Support for disabling rules (#353)
Other UI improvements and minor bug fixes
ℹ️ As this is a pre-release, please report any issues/bugs.
Note, to facilitate with testing/bug reports, you can stream debug log messages via:
log stream --level debug --predicate="subsystem='com.objective-see.lulu'"
Version 3.9.0 (A 4.0 beta)
Initial support for profiles!
A profile defines a set of rules and settings.
Once created/activated, the profile's settings apply LuLu-wide and can be modified via LuLu's Settings panes.
Any changes to settings or rules — as well as any new rules — will apply only to that profile.
Learn more about LuLu's Profiles here.
ℹ️ As this is a pre-release, please report any issues/bugs.
Note, to facilitate with testing/bug reports, you can stream debug log messages via:
log stream --level debug --predicate="subsystem='com.objective-see.lulu'"
Version 3.1.5
🌍 Additional Localizations
#749, #753 Added Simplified Chinese (zh-Hans). Mahalo @d86e
⚙️ UI Fixes and Improvements:
#754 Name added to CFBundleDisplayName
#752 Clicking on the 'Rules' menu no longer dismisses the whole menu
#743 Improvement for Rules window
Disk Image Hash (SHA1)
LuLu_3.1.5.dmg: 518F9008FA529F00C2885FD0075FF98107CB6837
Version 3.1.4
🇫🇷 Improved French localizations
Thank you @benjaminach!
☑️ Improving rules view UI scrolling (#743)
☑️ Improved handling of "Cancel" buttons in various dialogues (#745)
☑️ Fixed bug that could prevent block lists from be correctly initialized (#729, #732)
Disk Image Hash (SHA1)
LuLu_3.1.4.dmg:70294494FFC72540FB46C219FF093F49FAE54729
Version 3.1.3
🇺🇦 Ukrainian Localization
Added Ukrainian localization (#722)
Thank you MacPaw / Oleksandr!
🇹🇼 Traditional Chinese (Taiwan) Localization
Added Chinese (Taiwan) localization (#726)
Thank you Ice1187!
☑️ Improved Block/Allow List Matching (#729)
Block/allow lists are now loaded into a sets (faster lookup) and all matching is done on lowercase strings.
Moreover, the based domain is also checked (e.g. www.google.com -> google.com)
🌍 Improved (existing) Localizations
Disk Image Hash (SHA1)
LuLu_3.1.3.dmg: 2422B0A2255DB17E6D181A8C975550EC95859849
Version 3.1.2
🇰🇷 Korean
Added (South) Korean localization (#722)
🌍 Improved Localization
Translations corrections and UI improvements (to avoid clipping of longer translations) (#710, #714, #719, etc.)
💾 Made user selections in alert persistence
For example, if user expands alert to view details, this "preference" will be now be persisted across reboots (#717)
Disk Image Hash (SHA1):
LuLu_3.1.2.dmg: 1ff00d934b365fe14e89b7ae9cedb0e8755a5f19

