Home

Awesome

alfred-search-omnifocus

What is this?

This is a workflow for Alfred that performs free text searches on OmniFocus data.

Doesn't something like this already exist?

Yes! This workflow is based on the Search Omnifocus workflow which no longer works with the latest version of macOS. This is a rewrite in Javascript and uses Alfy to do the heavy lifting.

Why would I want such a thing?

Well, I want it because I can't quickly search for, say, a task within OmniFocus using OmniFocus' search field. OmniFocus restricts search results to the current perspective or selection. Other people have noticed this too .

How to install

Pre-requisites

This workflow relies on Node.js. Follow these instructions to install.

  1. Install the workflow using npm

    npm install --global alfred-search-omnifocus

  2. Open Alfred Preferences (alf) and - if you have the old version of the workflow installed - disable the existing workflow "Search Omnifocus" by right clicking on it and unchecking Enabled

  3. Run Alfred command find-of-db to copy the path of the Omnifocus database to your clipboard. If you have both Omnifocus 3 and Omnifocus 4 installed you will get both paths on your clipboard, and you need to paste the paths somewhere and choose which one you want.

  4. Run Alfred command set-of-db and then paste (⌘-V) the database path as an argument

Note, if you're using zsh, fish or another shell, type bash before step 1 to ensure that you install the workflow using the system node.js installation

Troubleshooting

I'm seeing errors in the Alfred log related to NODE_MODULE_VERSION or better-sqlite3?

Yes, this has been a pain to resolve. Try this to fix:

  1. Open Alfred preferences
  2. Right click on the Search OmniFocus JS workflow and choose Open in Terminal
  3. Check that you're using the correct version of node as used by Alfred (as of writing v18.12.1) bash node -v
  4. In your Terminal app - in the Alfred workflow folder opened in the step before! - remove the node_modules folder then install the correct packages for your environment by following these commands: rm -rf node_modules/ npm install
  5. Then retry the worfklow

It has also been reported that installing Xcode can resolve this issue.

Hang on? Why do I have to type bash?

Alfred runs the workflow runs from the macOS installed version of bash (/bin/bash) so the workflow version of node.js expects packages that the workflow depends on to be built for the macOS version of node.

How to use

Note

This workflow only works with OmniFocus 3 and OmniFocus 4.

Searching for tasks

Note, use .sc to search for completed tasks only.

Searching for tasks in the Inbox and the Library

Searching the inbox

or just list all tasks in the inbox with .li.

Searching for projects

Searching for tags or contexts

or just list all tags with .lt or contexts with .lc:

Searching for perspectives

or just list all perspectives with .lv:

Searching for folders

or just list all folders with .lf:

Searching for task or projects notes

Narrowing results

or just for active projects with .pa:

or for flagged and active tasks with .ga:

or show the 10 most recently modfified and non-completed tasks or projects with .ra:

Thanks to...