Integrating Obsidian and OmniFocus

I am interested in integrating Obsidian and OmniFocus. I am pretty new to this so I thought I’d make a brainstorming post to see if people are interested and get some feedback on my thoughts.

Preliminary Goals:

  1. A little button either in the ribbon or placeable inside the notes to add actions to the inbox.
  2. Integrating perspectives, or projects, or tags into the note like the Todoist plug in, with a refresh button.
  3. Automatically creating a list of tasks accomplished so far today.


To minimize friction in my workflow (and that of others) when using these two excellent tools together. Adding a capture button inside of Obsidian allows you to quickly add thoughts to your inbox (goal 1). Integrating an arbitrary perspective into Obsidian allows you to see at a glance what goal you should schedule next (goal 2), and finally seeing what you’ve already accomplished today is always nice (goal 3).


I don’t know JS… yet. I know quite a few programming languages, so it shouldn’t be hard to pick up, but I’m posting here to get some of your thoughts on this plugin idea before I embark on that journey.


Omni Focus has these very powerful “Omni Automations” written in JS which allow you to do pretty much anything programmatically. There is no web API. Since this is a Mac (and iOS/iPad OS) only application, whatever plug in I write will be restricted to Mac.

It also has an extensive URL scheme that even allows you to add tasks.

Thoughts and Questions:

Since I know nothing about JS, here are my thoughts and questions. There are three options here.

Option 1: Stick to the URL scheme and add the URLs to perspectives of interest to your daily note template. This is not frictionless, doesn’t allow you to add tasks (goal 1), doesn’t achieve goal 3, but it is dead simple.

Option 2: Write some JavaScript to implement goals 2 and 3 using KeyboardMaestro. I have already done this by hacking together and modifying some snippets I found on the web and achieved goal 3. It works! Downsides is that it isn’t refreshable. I want something I can stick in my tasks and hit a button to refresh it when Omnifocus is updated externally.

Option 3: This is why I’m here. Write a plug in that achieves goals 1, 2 and 3. I can totally see that being doable without being too difficult, but I am not sure an Obsidian plugin can control other Mac Apps using JS.

I am also looking for any other thoughts, comments, or feedback.