Skip to content

How to monitor Apple update releases

As the last step in bringing back my A Full History of macOS (OS X) release dates and rates post, I wanted a way to be notified of released updates. On the Macs I regularly use, of course, this happens automatically for the versions I'm using. But Apple updates the older OSes on a regular basis, and I don't see those releases.

Of late, Apple has been good about listing all their releases—even those without security-related components—on their Apple security releases page, so I though that'd be a good one to watch.

There are lots of tools and web sites out there that monitor pages for changes, but they all seemed overly complicated to me, or do way more than I need. I did mostly like urlwatch, but its output is just raw diff results. I wanted something a bit simpler to read.

I only want to watch one section of the Apple page—the table in the "Apple security updates" section of the page; any other changes are irrelevant. Given enough time, I probably could have muddled my way to an ugly solution that used page scraping and text comparisons, and which would work well some of the time :).

Instead, I chose to ask Claude Code to write me a script that would watch that section of the page for changes. Here's what it came up with, a few seconds later…

Warning: The following code was 100% AI-generated. Use at your own risk; it has not been audited for errors and may be capable of destroying the planet if used with the wrong parameters. Seriously, though, this is not code I wrote, and I can't vouch for it, but it is just a bunch of text manipulation functions.

Note: I was aware of an HTML parser for Python called Beautiful Soup, which makes HTML parsing a simple affair.

I asked Claude to modify the above to use Beautiful Soup; you can download that version of the script if you prefer. It's about 40 lines shorter, but (obviously) requires you install Beautiful Soup (pip3 install beautifulsoup4) to use it.

I chose to publish the long version, as it has no external dependencies.

The created files are all saved to /tmp, as I have no need to keep this data around, and it's not a big deal if it gets accidentally deleted one day, as it'll get recreated on the next run.

You can use this script as-is by saving it as a shell script then making it executable (chmod a+x /path/to/watcher.sh). To make it even simpler for me to use, though, I embedded it in a Keyboard Maestro macro, and set it to run twice a day.

The macro runs the script, then checks to see if the returned value includes "No changes detected." If so, it puts up a notification to that effect and quits. If there are changes, it displays the script's details on those changes in a new window. It's very basic, but if you want it, here it is.

I can't say how well this actually works yet, as there haven't been any updates released since I installed it. But in testing, it worked great!

Leave a Reply

Your email address will not be published. Required fields are marked *