OmniFocus to Mind Map using OPML (A Geeky Cry For Help)

I love visuals… they often help me see obvious things I’m missing. And whenever I’m working on a particularly meaty project, mind maps tend to be my tool of choice for expanding and structuring my ideas. Many of my writing projects start as mind maps in iThoughts HD and eventually work their way into Scrivener (using the OPML dance that David Sparks was kind enough to share with us). If I’m working on a freeform piece, I’ll often break my text up in Scrivener and then do a reverse dance to flesh my thoughts out back in iThoughts HD.

Wasn’t this supposed to be about OmniFocus?

Now, at this point you’re probably wondering what this has to do with OmniFocus… Fair question. You see, I’m not the best at reviews. They’re great for eliminating excess, but they’ve never really helped me identify the holes. For some reason, the folder structures in OmniFocus or even something like OmniOutliner just haven’t worked for me. For a while now, I’ve wanted the ability to take my entire OmniFocus library and really look at it in a visual manner. I’ve wanted the same experience I get with my writing projects with my task list. I’ve wanted to take my entire OmniFocus library, folder structure and all, drop it into iThoughts and look at it from 30,000 feet.

I’ve had a pretty good feeling that OPML was going to be the best way possible, but I lack the skills to actually make it happen. Every now and again, I’ll throw the request out on Twitter (and now and this week, I was finally shown a way.

An Ugly Solution

For those of you who are excited by the prospect, I have to warn you, the process is clunky (stay tuned for a plea for help to make it better). It also requires both OmniFocus and OmniPlanner Pro, so beyond the 14-day free trial, you’re going to have to think long and hard if you will want to spend the additional $70 for the OmniGroup’s outliner program. Last but not least, you have to make sure that you’ve archived all of your old, completed and dropped projects (completed tasks are omitted).

Still with me? Here’s what you do once you have OmniOutliner Pro installed (I’m betting if you’re geeky enough to have read to this point, you can figure this part out on your own):

  1. Download this script
  2. Run it
  3. Take the OPML file off your desktop and send it to your iPad (you can either email it to yourself or just throw it in Dropbox)
  4. Import the OPML into iThoughts HD

A bit hat tip and thank you to Jason Verly for pointing me in this direction.

The Ugly Means Justify The Beautiful Ends

The end result doesn’t look great when you first import the OPML into iThoughts, but it’s easy enough to clean up. iThoughts makes it very easy to add colors to break up your Library, Folders, Sub-Folders, Projects, Tasks and Single-Action Lists (I used red, orange, yellow, green, blue and purple respectively).

OmniFocus Library to Mind Map using OPML and iThoughts HD

From here, I collapse everything and go section by section, expanding everything, looking over my areas of focus, projects and tasks. I can’t quite put my finger on why, but I find this style of review fits my mindset. I find far more holes and once everything’s expanded often get a very realistic look at just how much I’m trying to tackle.

Calling All Nerds

I know this can be better, I just don’t know how to get there, so I’m hoping that some mind-map loving, code-slinging member of the OmniFocus community can help improve things. While I’m sure that there’s plenty I’m not thinking of, there are three main things I’m trying to improve:

  1. How to get around the need for OmniOutliner Pro.
  2. How to eliminate dropped projects and completed projects without the user having to manually archive first.
  3. How to get it to look better initially when importing the OPML into iThoughts HD.

For the last one, I’d be great if the Inbox was omitted and that the Library was on the right side rather than the left (the additional OF_ALL node in the center is also superfluous, but easily removed), it would also be amazing if Folders, Projects and Tasks some how imported with different colors for easy identification. Right now that’s a timely, manual process.

In the meantime, I’m really enjoying having this. So much so, that I’m probably going to dive in at some point and pick up a copy of OmniOutliner Pro at some point just so I can have this for my monthly reviews. That is unless one of you smart and lovely folks out there can offer up a better way to make this little bit of OPML magic happen. I’ll be sure to update with any refinements that come my way.

Update: Looks like we have our first suggestion for getting around OmniOutliner Pro from Rhyd Lewis, but you’ll need to be familiar with Ruby.

Update 2: Rob Trew is getting in on the fun. His script already has eliminated the need for OmniOutliner and eliminates completed or dropped projects. I had a few minor requests (i.e. the ability to opt to eliminate projects with no tasks or items with future start dates), but it has already made things far easier.

Update: Rob Trew, the creator of the original script has created one hell of an update for it. You can find details on how to best use it here.

  • Philip Davis

    For what it is worth I find OmniOutliner Pro to be a lot more useful than just as a tool to generate an OPML file. OOP is my go-to app when I’m starting any new project, tutorial, presentation, etc. With it I can brainstorm (with myself), not worry about where ideas go at first, then make sense of things by moving them around in the outline. OOP gives me a lot of export options (OPML, Keynote, HTML, and Markdown, and more). I’ve tried other tools, but keep coming back to OOP. I’m looking forward to trying your technique of OOP > OPML > iThoughts HD.

    • MSchechter

      Oh, I’ve heard nothing but great things about OOP, I’ve just never quite managed to make outlines work with the way I work.

  • Sean Korzdorfer

    Rob Trew has an AppleScript that will [export OmniFocus straight to OPML] ((, but I wouldn’t recommend it for exporting your entire library – The OmniGroup implements their own text styling and formatting system, so writing directly to OPML means the script must check every character to find and encode XML special characters. It took over five minutes to export my small to moderate size database.

    As far as I can tell, iThoughts displays the top level nodes in clockwise order. It is possible to programmatically move nodes in OmniOutliner with AppleScript, but a general solution would be difficult since every user’s folder hierarchy is unique. You could also edit Trew’s script to prevent the inbox from exporting, but it’s probably easier to delete it from the OmniOutliner document.

    Also: The OmniFocus AppleScript Dictionary has a project status enumeration for dropped projects, and a project property for completed projects, so I assume it is possible to test these values … But Trew is pretty damn good at AppleScript, and his solution for completed projects is to test for the existence of child tasks. I’m going to guess they are not easy to use.

    Sorry to leave such a bummer comment. Hopefully OmniFocus 2 will make exporting data easier.

  • macdrifter

    I Do have to say Michael, I like your moxie, but I use this conduit the other way around. For me, the value is in mapping out a large project in iThoughts and creating an OF structure from it. For what it’s worth, I haven’t found a better way since OF will only import OO files.

    • MSchechter

      Thanks man, I do enjoy my moxie!

      I’ve definiately done the reverse in the past, but since I never took to OO, I would manually create the map and then manually reenter it (I know, I know, I live in the 50′s). The problem for me is that while this is great for creating and structuring a project, it really helping me with the real problem: seeing just how unweildy my life had gotten. Ten seconds after exporting this OPML, the problem areas and underdeveloped projects were just obvious.

  • Klaus Mueller

    I haven’t had much time to play with this yet, but here are a couple things I tried that don’t require OmniOutliner and should be adaptable.

    The following AppleScript will generate OPML directly of any projects selected in OF. The issue I see so far is that I have things nested several layers, and I’m not sure it goes down all of them. But otherwise I can take the OPML and open directly in iThoughts (after transferring to the iPad).

    I also tried Chris Brogan and Rob Trew’s Weekly Report Generator at It outputs the report in Markdown, which can then be converted into OPML using the MM2OPML command line tool in Fletcher Penney’s MultiMarkdown tools.

    Hope this helps.

    • Klaus @klauster
    • MSchechter

      Thanks Klaus, I ran into similar issues with Trew’s script, but Justin from Veritrope is seeing what can be done to improve. Hopefully we will have some news soon! Especially now that I promised him Scotch :)

  • Peter

    Don’t you think maybe Omni should be making this integrated directly with OmniGraffle? And OmniPlan? You shouldn’t have to jump through hoops to communicate between apps made by the same company.

    • MSchechter

      I think better OPML is in order, but I don’t think this is what I would call an obvious feature. Just a useful one. I’d much prefer a quick solution here and more work in other pain areas.