Indexing content from OmniFocus, Bear, Day One, and/or Agenda

Does anyone have recommended approaches to index content from apps like these?

I’m interested in finding connections across all of this content, and I’d like to have DEVONthink as a way to discover content, keywords, sentiments, etc in common.

I’m comfortable writing AppleScript, KM macros, etc to have ways for reading data from these apps. Any tips in the regard? Is there a way to write custom indexing plugins?

Less favorably, I could be willing to export the content to the filesystem for indexing, so if there is a way to understand the manner by which DEVONthink will initially index and then update the index on changes, I’ll take that, too.

2 Likes

Interesting idea. The best thing I can imagine is a macro that regularly exports content out into a indexed folder, perhaps with some scripting to fine tune the export. I don’t think you’ll get a two-way index for any app with proprietary data structures (like the four you named) sadly.

The OmniGroup have developed Omni Automation, that might be up to the task. It uses Javascript and is documented over here.

Perhaps taskpaper export could be used to create relations in DT somehow?

Edit: they’ve also got discourse running. It appears your question was addressed years ago. Search for ‘devonthink’ there: discourse.omnigroup.com

Interesting idea.

Thanks! :slight_smile:

That’s what I was assuming I’d have to do. I was hoping for something that would require one less step as well as less exposure of data on the file system.

I don’t need a two-way sync, because I have no intention to edit the material from within DEVONthink. Each of these apps has data elements attached on a UUID and distinct URL scheme, which is how I would assume I could create the unique filename per application.

That said, I’d love to be able to link back to the original item in the database, so if there is a way to do that, I’d like to know. I assume that an unsophisticated version of this would be to stuff a link to the original item somewhere in the exported content.

I’d also welcome suggestions on file naming and formatting to make for effective indexing as well as how to take advantage of item metadata.

For Bear and Day One and Agenda, the content structures are basic note structures (title and text content), so I’m assuming that would be relatively straightforward to index once it’s been exported. That said, extracting information from each of those isn’t terribly scriptable at the moment without using AppleScript’s System Events, so I figure there might be some kludges necessary to get the data available from those.

OmniFocus is much more scriptable, yet the object schema is more complex. Tasks, Projects, Folders, and Tags are their own types of objects, and while they each have a notes field, they have varying degrees of additional and useful metadata to include as well.

Another thing I’ve considered is skipping the indexing and adding these items as Bookmarks, assuming DEVONthink indexes bookmarked content from regular URLs. That said and as far as I can tell, there’s no way to read the content from URLs that aren’t http-/https-based. A workaround could be to create a custom web server on my computer to mimic/expose read-only x-callback-urls via a custom web server which would handle the web request for the resource then call the x-callback-urls locally and send back the content in the http response. That seems like its own kind of Rube Goldberg machine / security nightmare, so I’d like to avoid that for now. :slight_smile:

I’ve edited my comment while you were typing. Did you search the OmniGroup discourse?

I looked at the the OmniGroup forums before posting here, and the implementations are not matching what I am seeking. The threads I found in that forum seemed focused on the following:

  1. Linking OmniFocus tasks to reference content in DEVONthink
  2. Creating reference support structure in DEVONthink, with as one person described it, “the verbs in OmniFocus and the nouns in DEVONthink”
  3. Creating tasks in OmniFocus to review DEVONthink content

None of the above really capture what I’m trying to do, which is analyze the content of my OmniFocus database for common themes or keywords in the names, notes, and metadata of the Tasks, Folders, Projects, and Tags inside of it, treating the content of the OmniFocus database itself as the basis for analysis.

If you’re aware of a specific thread that does seem to meet my aims above, I would appreciate a link over a general recommendation to search.

I’m also already familiar with OmniAutomation. While there may be aspects of it that suit my needs, the key knowledge gap I am trying to address is with DEVONthink indexing, not OmniFocus.

I have walked this path before. “Abandon all hope” and so on.

In particular, I have spent far too much time on getting something to work perfectly only to switch workflows soon afterward, making these hacked-together processes useless. I recognize that this is a common productivity pitfall, but it is still a difficult one to avoid.

I don’t really regret any of the time spent, though, as the work advanced my thinking in terms of productivity and knowledge management. I also got better at AppleScript…?

All that said, I think you’re approaching it roughly how I would. I like the rough-and-tumble of Keyboard Maestro, especially Select Menu Item actions, so I think I’d start there for a minimum viable process.

You also might want to construct a data model of each app you want to excerpt: what info can you extract and collect? How should that be organized? What might you use it for?

Keep us posted!

assuming DEVONthink indexes bookmarked content from regular URLs.

It does not. A bookmark doesn’t contain the data of the item it’s pointing to. It just acts as the pointer.

Also a URL scheme isn’t really “a bookmark” since it’s provides a function from the application whose scheme it is. This is different than a static URL.

I can confirm that it’s possible to set an OF URL-scheme as a bookmark in DTTG, that will create a new OF task when pressed.

I’ve tried creating DTTG bookmarks containing OF URL-schemes with Shortcuts, but that only seems to work partially. Still debugging it though.

But this obviously is different from what @rigorjunky is trying to do, i.e. analyzing the OF data with DT.

I wanted to index Omnifocus tasks into Devonthink and came across your post.

I agree the best thing might be exporting and then index. So I made a script that export Omnifocus projects into markdown files, which can be directly imported or indexed into Devonthink.

It is quite simple as it only includes task name, url and notes, and separated tasks into different projects. But since I just want my tasks searchable within Devonthink, these are all I needed.

2 Likes