This is a workflow for Alfred that performs free text searches on OmniFocus data
npm install alfred-search-omnifocusThis is a workflow for Alfred that performs free text searches
on OmniFocus data.
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.
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
.
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
> 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
4. 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.
This workflow only works with OmniFocus 3 and OmniFocus 4.
* Search for all tasks within OmniFocus (irrespective of status) with .s:

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

* Search for all tasks within OmniFocus (whether you've processed them or not) with .se.
* Search the OmniFocus inbox with .i:

or just list all tasks in the inbox with .li.
* Search for projects with .p:

* Search for a specific tag with .t or context with .c:


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

* Search for a specific context with .c:
* Search for a specific perspective with .v:

or just list all perspectives with .lv:

* Search for a specific folder with .f:

or just list all folders with .lf:

* Search for a specific note in a task or project with .n:

* Search for a specific note in a flagged task .ng
* Search for a specific note in active task .na
Search just for active* tasks with .sa:

or just for active projects with .pa:

Search all flagged* tasks with .g:

or for flagged and active tasks with .ga:

* Not supported yet Show the 10 most recently modified tasks with .r:

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

* Not supported yet Show overdue or due items with .d:

* Sindre Sorhus: for
providing Alfy, the JS library for Alfred workflows
* Marko Kaestner: I used
the in-depth workflow to provide some insight into how to search
Omnifocus.
* Danny Smith: for providing a new, and quite frankly, much improved workflow icon.
* Font Awesome: for the other icons used in this workflow