Taskmate ... the missing GTD tool for your editor: now out!
posted: November 24th, 2007 · by: Sven
“Because home is where my editor is.” — ember
Taskmate is a small tool written in Ruby that enhances your text editor with some really simple yet powerful todolist’ish features.
You can read about my motivation to implement Taskmate here. And you can you can download and learn how it works here.

Taskmate is currently available as a TextMate bundle only. But as it’s a pure Ruby implementation it will as well be capable to pimp up any other scriptable editor. As I’m currently using (almost) only TextMate I don’t want to integrate Taskmate with other editors myself. But if you want to give it a try, I’ll happily help you with that.
I highly appreciate suggestions, feedback, criticism … and of course help and participation.
By the way the TextMate integration of this bundle is based on Henrik’s bundle which was inspired by Taskpaper by Jesse Grosjean. Therefor the same licensing applies to it, i.e. you are free to modify and redistribute it non-commercially, though I would appreciate due credit.
Go ahead and try it out! It’s cool :-)
Jeremy said November 26th, 2007 at 05:41 PM ¶
Amazing stuff. Thanks, man!
Tyson said January 25th, 2008 at 05:34 AM ¶
Pretty cool, but it looks like forcing the files to be named .todo breaks the ability to quickly append text to them through quicksilver…
and won’t that also stop you from being able to transfer and edit them on mobile devices?
I like using text files, but this seems to cut down on the benefits of using text.
Sven said January 25th, 2008 at 01:59 PM ¶
Hi Tyson!
Wow, you have some pretty awesome clips on your website! Blew my away.
The reason why I’ve used .todo rather than .txt is that I personally have hundreds of .txt files with only some .todo list files and I definitely want to keep them in the same directory tree. So using .txt files by default wouldn’t work for me.
You might be right regarding the mobile devices though and I’m considering to just allow to set the extensions through an ENV variable like TM_TASKMATE_FILE_EXT.
Would that make sense?
Regarding Quicksilver you should be able to work around this by creating a hard link for your inbox.txt like:
ln ~/inbox.txt /path/to/inbox.todo
Please tell me what you think. I’m definitely keen to make this thing more useful for other setups/usecases than just my own special case.
Thanks!
Tyson said January 31st, 2008 at 01:09 AM ¶
Thanks for checking out my site :)
Ya even if it were just .todo.txt or something similar I think that would work better for me. I’m having a hard time finding a text editor on my phone that will open any type of file, and I’d like to be able to use Quicksilver to call up any project as well.
I don’t know what setting an ENV would change, I’m new to this stuff.
Sven said February 16th, 2008 at 02:32 PM ¶
Hi Tyson,
this stuff is now on my todo list for Taskmate, it will be in the next Taskmate version that I’m planning to work on in the next few weeks.
As for the ENV vars: when you have a TextMate project open you can click on the (i) Icon on the project drawer in the bottom right corner. When you do that without having any folder or file selected you will get a window where you can set variables that will be specific to this project.
I think there should be another way though to also configure stuff like file extensions for all TextMate projects at once.
Boone said April 13th, 2008 at 10:06 PM ¶
Hi Sven!
Excellent bundle. As I was playing around with it, my newness with the bundle’s expectations caused me to pop a ruby error doing nil.strip while hitting option-enter to mark the task completed. Somewhere around item.rb:22 is a line:
@text = $1.strip
If you have a blank task anywhere in your file – the dash exists, but no text follows it – then there’s no match and therefore $1 is nil. As a quick hack I appended “if not $1.nil?” to the line, resulting in:
@text = $1.strip if not $1.nil?
This allows me to mark a task @completed, even if it (or any other task in the file) is nil.
Again, thank you for a great bundle.
Sven said May 11th, 2008 at 06:36 PM ¶
Hi Boone!
That looks like an obvious bug :) Thanks for the catch! I’ll change that line in the next version of the bundle.