Integrating Ulysses and Agenda with DEVONthink Pro makes for a perfect long-document management system

DEVONthink Pro 3 is a content management tool. It’s what we used to call a freeform database which means its databases will store anything from images and sounds to text files. It also lets you create files, including markdown, RTF, plain text, HTML, columnar datasheets… Ulysses is one of the best text editors on the market today, extremely easy to use and very powerful when you publish to Medium, or Ghost. And Agenda is a journal app that lets you create and edit calendar events and reminders. All three have one thing in common besides the quality of the software itself: they can communicate with each other through links – x-callback links to be exact – on Mac and iOS devices.

When you think of research and writing long documents, you inevitably think of Scrivener, a text editor that does double-duty as a research tool with a database-alike environment in that you can collect organise and refer to biographical links and data right within the Scrivener document. In short, Scrivener delivers a unified approach to writing complex documents. But, depending on your workflow and habits, it can have a few shortcomings that quickly become apparent when you use it for a long-read project like my paper on the Minamata mercury ban.

One example of what was a shortcoming in my workflow is the lack of a direct export functionality to and Medium, both of which are provided for by Ulysses.

Now, this isn’t a piece pitting Scrivener against the others. It’s a piece meant to see if it’s possible to set up a system using DEVONthink Pro 3, Ulysses and Agenda in tandem that offers an alternative to Scrivener with some unique capabilities that many people have perhaps never thought about.

Tying DEVONthink and Ulysses together

Ulysses can handle long documents because it enables you to manage your sheets in groups. It’s fair to say that, unlike Scrivener’s compiling feature, however, you can’t create complex chapter numbering without further scripting and/or editing in a different app.

Because Ulysses also doesn’t just import a web page to your local workstation, quote part of it at a later date and reference the live page on the web, we’re going to use DEVONthink Pro 3 for that and other purposes.

Ulysses supports the x-callback-url system that is available on iOS and macOS devices. It looks like this: ulysses://x-callback-url/open-favorites. This callback will open your favourite sheets group. You can also link to individual sheets, of course. When you know the sheet’s callback URL (on macOS Option-Control-Click the sheet’s name and select “Copy CallBack URL”), you can copy it and paste it in a new document you create (e.g. a formatted note) inside DEVONthink Pro 3. In DEVONthink, you can insert the URL into the document’s URL field and clicking that later on will automatically take you to the corresponding Ulysses sheet.

Now, the DEVONthink document won’t duplicate the Ulysses sheet – if you want that, you can share the sheet with DEVONthink and then add the URL to the URL field later. So, initially, the document will be empty, which is kind of interesting and useful in its own right. For example, you can add your thoughts to it, or web page links, or other links, or any sort of text or images you want to associate with the Ulysses sheet.

That document can also have a considerable amount of metadata created for it – including a star rating, flag, colour code, custom metadata you define like a barcode or anything else you can think of, etc. Even more interesting is that you can attach a reminder to the document so that, if you need to finish writing that specific sheet, DEVONthink Pro will alert you – but there is an even better, more fine-tuned way to do that as we shall see later on.

Finally, in DEVONthink Pro, you can also add an annotation to a document, including a backlink or a quote. And to fully associate the DEVONthink document with the Ulysses one, you can copy that backlink or quote and paste it in the Ulysses sheet.

Quotes, in particular, are useful. Suppose you find a web page that contains one paragraph that you would perhaps like to quote from in Ulysses. You can use DEVONthink Pro 3’s capture menu applet to catch the entire web page as an RTF document (the live link to the web page is stored with that document and readily available), select the paragraph and create the quote in DEVONthink, then copy the quote link — which looks like this: x-devonthink-item://21496507-8C58-44C5-BB30-6D1E1ABFEBDC?line=14 – and paste it in your Ulysses sheet where you want it to appear in full, later on. Needless to say, backlinks and quotes are useful when you’re writing a report with references to external material that you deliver with the report as well.

The third association: Agenda

You’re already more than halfway with Ulysses and DEVONthink Pro having a system that comes close to Scrivener while offering an alternative approach that perhaps feels more comfortable.

Strictly speaking, therefore, you don’t need to also use Agenda, but it might make things even more efficient as Agenda offers a note-based journaling system that works identically on iOS and macOS and that offers finer reminder/event management.

Agenda has callback functionality as well. Right-click on a note and select Copy As > Agenda Link and you’ll find you can paste this link inside DEVONthink as well as Ulysses to create an association between the three apps.

While you can use DEVONthink as a journaling app to a certain extent, Agenda is really made for it, complete with macOS Calendar and Reminders support, as well as support for people and tags.

Even better is that Agenda syncs its data with your iOS devices so that all data is replicated across devices and that allows you to create notes wherever and whenever required.

So, now you can plan – and/or create documentation after the facts, for example for auditing purposes – your work with note creation dates and flexible reminders or calendar events of future and past project tasks.


By using the x-callback system, you can create an ecosystem for creating, managing and maintaining content of alls kinds, types and complexity with maximum flexibility.

Using the three apps together does not confuse because you’ll actually be using DEVONthink Pro as your central hub that holds the most information about your documents and content from where you create the new content and plan and follow-up your activities.

It does require jumping from one app to the other, but that never confuses, at least not as far as I have experienced so far.

Do leave behind your thoughts on this workflow; I’m very interested to know what you think of it and how you organise your workflow.