Beeminder Forum

Tech help beeminding OmniFocus


I’ve just started trying to Beemind my own OmniFocus usage and I think I’ve got a good basic approach sorted out:

  • Use Hazel to trigger sending datapoints when OmniFocus syncs.
  • Use JavaScript for Applications (JXA) to avoid the monstrosity of AppleScript.
  • Use Node and the osa2 module to wrap JXA calls with a more general programming environment.

So far, the only thing I’ve got automated is my inbox count, but I also intend to add some support to beemind-arbitrary-things (i.e. did I check off a task containing the words “gratitude journal”). You can see the work-in-progress at dehowell/beeminding-omnifocus.

This is the Hazel rule I’m using to trigger the script:

That rule runs in the folder ~/Library/Containers/com.omnigroup.OmniFocus3/Data/Library/Application Support. Note that I am using the OmniFocus 3 beta, so YMMV if you are using OmniFocus 2. Either way, you’ll need the Pro version for AppleScript support.

JXA can do almost everything AppleScript can do, but with JavaScript. Some things still look magical and weird, but getting the inbox count is at least straightforward:



I renamed the repo to omniminder and it is now much more likely to be usable by someone else, if anyone wants to give it a whirl. As of right now, it supports:

  • Beeminding size of OmniFocus inbox
  • Beeminding number of projects that are due for a review
  • Beeminding arbitrary daily tasks that match a pattern (somewhat like how Complice supports beeminding arbitrary things)


WARNING! I have a goal for tracking this and it is turned out to be vulnerable to spurious derails. OmniFocus projects become “due for review” at midnight, no matter what time of day they were last reviewed. So I’ve a had a couple of instances now where a critical mass of projects all went due for review at the same time at midnight, just in time for my goal to derail (but not in time for me to get get any notification that it’s going to happen!)

If you end up doing something similar, I highly suggest setting your goal deadline to sometime in the middle of the day, so that you have some lead time to deal with pending reviews.


Or perhaps even just at 23:59. I have many of my goals set to that simply because my brain isn’t very good at recognising the difference between 12:00 AM and 12:00 PM…