id = "littlesnitch" name = "Little Snitch" homepage = "https://www.obdev.at/products/littlesnitch/index.html" description = "Shows you where your Mac connects to on the Internet. You decide what you want to allow or deny." # The Little Snitch app icon from Objective Development's product page. icon = "https://www.obdev.at/Images/product-icons/littlesnitch_256.png" # No command line ships with it. The Homebrew cask's uninstall stanza names the # identifier the platform reports — `quit "at.obdev.littlesnitch"` # (https://formulae.brew.sh/api/cask/little-snitch.json). executables = [] platforms = ["macos"] [installation] macos_bundle_ids = ["at.obdev.littlesnitch"] [dotfiles] # What is in scope here is only Little Snitch's *user-level* preferences. The # rule set itself is not: the same cask's `zap trash:` list puts it at # /Library/Application Support/Objective Development/Little Snitch — a # system-wide location shared by every account on the Mac, outside the home # directory this catalog describes — and obdev documents moving it only through # the application's own command, "Rules > Backup…", which writes "the current # rule set for all users, all profiles, all known networks and most preference # settings" (https://help.obdev.at/littlesnitch5/adv-backup). The same page # warns against restoring a configuration.user.xpl by hand, so a file-level # sync of the rules is exactly what obdev tells users not to do. # # The three domains below are the per-user preferences the settings window # writes — https://help.obdev.at/littlesnitch5/lsc-preferences groups them as # General, Alert, Network Monitor, Automatic Profile Switching, Security, # Advanced — and all three appear in the cask's `zap trash:` list: # ~/Library/Preferences/at.obdev.LittleSnitchAgent.plist # ~/Library/Preferences/at.obdev.LittleSnitchConfiguration.plist # ~/Library/Preferences/at.obdev.LittleSnitchNetworkMonitor.plist paths = [ "[preferences]/at.obdev.LittleSnitchAgent.plist", "[preferences]/at.obdev.LittleSnitchConfiguration.plist", "[preferences]/at.obdev.LittleSnitchNetworkMonitor.plist", ] # The cask's list also has at.obdev.LittleSnitchInstaller.plist and # at.obdev.LittleSnitchSoftwareUpdate.plist — installer and Sparkle-style update # bookkeeping, not settings — plus the caches under ~/Library/Caches and the # logs under ~/Library/Logs. None of them is named above, and none is below # anything that is, so there is nothing to carve out; they are simply left out. exclude = [] # Little Snitch is licensed rather than account-based, and the licence is # entered in the Configuration app's Registration pane, which belongs to the # system-wide configuration this entry does not touch. Nothing among the three # preference domains is a credential end to end. secret = [] # No machine_lines: these are property lists, and `match` reads only # line-oriented files, TOML, YAML and JSON. The machine-local parts of these # domains are the saved window frames and the Network Monitor's capacity and # location settings; a consumer that can read plists should drop those itself.