04/13/11 21:23:36

Getting Things Done with Hazel

I figured I should mention Hazel at least here on this blog, because occasionally I get people asking “We want a Hazel Screencast!”
You really didn’t think this isn’t planned already, did you? I made plans for this, such a long time ago…, but I want this screencast to be really, really good. What basically means I need to sit on it for a bit longer.

However, I didn’t want to leave Hazel unmentioned. Hazel is one of my favorite tools. When I bought it a long, long time ago1, I set it up so it keeps my file structure sane. How? Here’s how.


First, I have a folder in my Home that is named Current in there I got 5 more folders named:

The idea was inspired by the Kinkless GTD approach. Unfortunately this fantastic screencast series is not online anymore. (Am I really such an old Mac guy? Ten years now on a Mac,huh?) Anyway, using numbers to sort the folder makes it also very easy to navigate in there. I just press key 1 through 5 followed by ⌘↓ to get to where I want. Easy.

Hazel also watches a couple of other folders, and executes some actions accordingly. I explain the easier ones first:

  1. ~/Downloads 2: If a file has been downloaded and I didn’t take care of it within one day, Hazel will move this file/folder to 4 - junk.
  2. ~/Desktop: If I have something on there untouched for 4 days it will also be moved to the junk folder.

After a while junk will get quite big. This will annoy me so much that I go clean the mess and delete stuff I probably didn’t want to have in the first place. Not as drastic as deleting the files immediately (as Kinkless suggested). I know.

Are you still following? Good, because this was the easy part. Let’s get to Getting Things Done.


New projects usually start on my desktop. I use my Template Folder Maker Automator script that I call from Keyboard Maestro to create a couple of folders, copy some template files, as well as create an empty MindNode file to get me started. (Markus, if you read this: Yes, MindNode is really that essential.)
Then I go ahead and plan this new screencast (or whatever project I have). I collect material, I create reference stuff, I create a DEVONthink database. In short: I work.
When I finally realize “This is a project” all I have to do is tag it either with a Spotlight comment or OpenMeta named simply "pending".
When Hazel sees folders on my Desktop tagged like that, it automatically moves that folder into 1 - pending and send a Growl notification.

The Current folders are really the heart of this whole operation. When I got something that I realize that it won’t lead me anywhere I tag it procrastinate or idea.
When Hazel sees the changed tag and it will move the tagged folder to, who’d have known, 2 - procrastinate.
Or, when tagged idea go to 3 - idea. You get it….

If you tried doing something similar already, you may (very well and unfortunately) be aware of how vexing getting this set up is. Frankly, it took me a while to figure it out, but finally I did it!

The trick is: Hazel is able to run actions on folders subsequently. So you can set it to look for a folder and only operate on subfolders. All I have is Hazel watching Current. Using "Run on subfolder contents" Hazel will only work on subfolders, but I also don’t want to go any deeper, so I also limit this action to subfolder depth 0. This way Hazel will only mess about with items that are one folder level deeper from Current - not more.

Here’s the Run on subfolder contents rule:

This is the “Tagged as pending” rule. (Change other rules accordingly):

Hazel will give you erros with this, but it will do what I describe here.
I know one can nerd everything to death. Actually, I would have preferred the title “Nerding things do death with Hazel” for this posting, but I figured it would attract more people with the GTD thing. Oh, well…

  1. August 28th, 2007 

  2. Actually there are more actions attached to Downloads. One that unquarantines downloaded files, so I get rid of the annoying “Has been downloaded from Internet”-warning. One that opens downloaded disk images in the background, which also approves any “confirmation” dialogs. And one that unarchives files.