Script to keep OmniFocus 2 beta up to date

I created a shell script and launchd plist to keep OmniFocus 2 up to date:

How to keep your OmniFocus 2 beta up-to-date

Long story short: it checks for a new version every hour, and will download and install it if found.

If OmniFocus is running, it will quit and relaunch after the update. (Old versions of the app as well as the DMG of the new version are moved to ~/.Trash/)

Notifications are sent using terminal-notifier or growlnotify.

Feedback welcome!


Good job!
Thank you, your script will allow me to not try to update manually.

Just a question: How can I uninstall it? I say this in the sense that it will not be interesting to search an update every few hours when the OF2 final version will be available (Indeed, the updates will not be available over every few hours, as is it the case for the current betas).

Good question! All you have to do is run this command in Terminal:

launchctl unload ~/Library/LaunchAgents/com.tjluoma.keep-omnifocus2-beta-up-to-date.plist

and then delete these two files:

  • ~/Library/LaunchAgents/com.tjluoma.keep-omnifocus2-beta-up-to-date.plist
  • /usr/local/bin/

If you don’t want to be bothered running the Terminal command, just delete the two files and reboot your Mac.

Thanks for your reply !

Newbie question: Once the installer finishes, do I need to do anything else? The reason I ask is that I installed the script, then started OF which informed me there was an update. Wasn’t the script supposed to take care of that?

I have the same question, as I am seeing the same thing. Installed yesterday, yet several times have checked manually and OF2 had an update to install.

I am getting no Growl notifications of anything happening.

I simply ran the installer and restarted my computer. Is there a step I have missed?

Running 10.9.2 if that helps.


Just a minor suggestion for a correction; The “diskutil unmount” command seems to keep ahold of the dmg file (quite probably by design), so when you attempt to trash the dmg, Finder is unable to empty the trash. The “diskutil eject” command works the same, but “ejects” the whole dmg, so that it can be cleanly trashed.

The script only runs once an hour, so if it hadn’t run yet, it might not have caught one.

BAH! That’s what’s been going wrong. Thanks! I’ve updated the script.

On May 9th OmniGroup changed the filenames for OmniFocus betas.

Now instead of this

they are using this

This breaks my old script.

I have uploaded a new one to

You’ll need to replace your existing /usr/local/bin/ with the new one.

To do this in Terminal:

change directories:

cd /usr/local/bin/

delete the old one:

sudo rm -f

Note: you will be asked for your administrator password.

Download the new one. Note that this should be all one line:

curl -L -o

Once that is done, make sure it is executable:

chmod 755

That should do it.