{"id":21108041,"url":"https://github.com/jaybrown/xprotectupdates","last_synced_at":"2026-04-27T17:02:27.229Z","repository":{"id":134387605,"uuid":"125216012","full_name":"JayBrown/XProtectUpdates","owner":"JayBrown","description":"Notifies the user of macOS XProtect updates","archived":false,"fork":false,"pushed_at":"2018-03-16T17:40:28.000Z","size":142,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-31T05:24:29.028Z","etag":null,"topics":["antivirus","digitasecurity","launchagent","launchd","macos","malware","osx","protection","security","xplorer","xprotect","yara"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JayBrown.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-03-14T13:23:23.000Z","updated_at":"2022-04-15T07:42:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"3a3613f9-3d3b-4457-8fb8-01902ac3bd65","html_url":"https://github.com/JayBrown/XProtectUpdates","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/JayBrown/XProtectUpdates","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JayBrown%2FXProtectUpdates","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JayBrown%2FXProtectUpdates/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JayBrown%2FXProtectUpdates/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JayBrown%2FXProtectUpdates/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JayBrown","download_url":"https://codeload.github.com/JayBrown/XProtectUpdates/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JayBrown%2FXProtectUpdates/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32345816,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T23:26:28.701Z","status":"online","status_checked_at":"2026-04-27T02:00:06.769Z","response_time":128,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["antivirus","digitasecurity","launchagent","launchd","macos","malware","osx","protection","security","xplorer","xprotect","yara"],"created_at":"2024-11-20T00:44:37.628Z","updated_at":"2026-04-27T17:02:27.224Z","avatar_url":"https://github.com/JayBrown.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"![xpu-platform-macos](https://img.shields.io/badge/platform-macOS-lightgrey.svg)\n![xpu-code-shell](https://img.shields.io/badge/code-shell-yellow.svg)\n[![xpu-license](http://img.shields.io/badge/license-MIT+-blue.svg)](https://github.com/JayBrown/XProtectUpdates/blob/master/LICENSE)\n\n# XProtectUpdates (XPU) \u003cimg src=\"https://github.com/JayBrown/XProtectUpdates/blob/master/img/jb-img.png\" height=\"20px\"/\u003e\n\n**XProtectUpdates (XPU) is a LaunchAgent and shell script. It will run a scan every four hours and notify the user if macOS XProtect has been updated.**\n\n**XPU also tries to get more information on the update from Digita Security's [Xplorer](https://digitasecurity.com/xplorer/).**\n\n**Note: XPU is not an XProtect management solution; for that you might also want to check out [UXProtect](https://digitasecurity.com/product/uxprotect/) by Digita Security.**\n\n**If you want to receive update notifications on every relevant macOS Security component, you should use [macOS Security Updates](https://github.com/JayBrown/macOS-Security-Updates) instead.**\n\n![screengrab](https://github.com/JayBrown/XProtectUpdates/blob/master/img/screengrab.jpg)\n\n## Installation\n* clone repo\n* `chmod +x xprotectupdates.sh \u0026\u0026 ln -s xprotectupdates.sh /usr/local/bin/xprotectupdates.sh`\n* `cp local.lcars.XProtectUpdates.plist $HOME/Library/LaunchAgents/local.lcars.XProtectUpdates.plist`\n* `launchctl load $HOME/Library/LaunchAgents/local.lcars.XProtectUpdates.plist`\n* optional: install **[terminal-notifier](https://github.com/julienXX/terminal-notifier)**\n\n### Testing\nAfter running the LaunchAgent at least once, e.g. with `launchctl start local.lcars.XProtectUpdates`, you can test the XProtect update notification functionality by entering the following command sequence:\n\n`plutil -replace Version -integer 2098 \"$HOME/.cache/xpu/XProtect.meta.plist\" \u0026\u0026 launchctl start local.lcars.XProtectUpdates`\n\n### Notes\n* The agent (and thereby the script) will run every 4 hours. If there has been an XProtect update, it's possible that Digita's **Xplorer** hasn't been updated yet, i.e. **XPU** will not return any useful information on the contents of the update. This obviously still needs some testing, but if you want to be on the safe side, you can change the agent's frequency by editing the plist key `StartInterval`, e.g. from 4 to 8 hours.\n* **XPU** has only been tested on El Capitan (OS X 10.11).\n* **XPU** uses the macOS Notification Center, so the **minimum system requirement is OS X 10.8**.\n\n## Uninstall\n* `launchctl unload $HOME/Library/LaunchAgents/local.lcars.XProtectUpdates.plist`\n* remove the cloned XProtectUpdates GitHub repository\n* `rm -f /usr/local/bin/xprotectupdates.sh`\n* `rm -rf $HOME/.cache/xpu`\n* `rm -f $HOME/Library/Logs/local.lcars.XProtectUpdates.log`\n* `rm -f /tmp/local.lcars.XProtectUpdates.stdout`\n* `rm -f /tmp/local.lcars.XProtectUpdates.stderr`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaybrown%2Fxprotectupdates","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjaybrown%2Fxprotectupdates","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaybrown%2Fxprotectupdates/lists"}