I’ve always been looking for the optimal way to sort through the trillion things I have to do. Long time ago I wrote notes to remind me of something, for example, to do things like to buy some groceries, e-mail someone, arrange a meeting. Such tasks found I repetitive in my digital life. Then, I discovered Wunderlist, which was wondeful. I was a happy user forever.
That fairy tale was later ruined after the purchase of Wunderlist by Microsoft. Basically, Microsoft killed Wunderlist, and reanimated its corpse into something called Microsoft ToDo. This “new” tool looks like Wunderlist, and does have some of the Wunderlist basic functionality. But a handful of features were added on top of that. None of the features made it really useful for my task workflow. I was not a regular user of Office365 suite, but to use Wunderlist I suddenly needed a Office365 account and some Office Apps to have access to it, and everything worked somewhat cumbersome and slow then.
When trying out another to-do apps, I couldn’t import my Wunderlists tasksinto another to-do apps. After this, I have been thinking how not be depending on other stuff to manage my own precious tasks. It would be possible, but how much time and energy would I be spending trying to maintain my task system rather than actually getting things done?
Then I discovered Taskwarrior, a command-line tool that does just the right thing without adding any fluff. How to get Taskwarrior can be found on their website.
How to use Taskwarrior
I’d briefly encountered Taskwarrior before in the past and have initially dismissed as “just another todo list app with small differences” then.
After the death of Wunderlist, I looked at Taskwarrior again. I didn’t want a tool that would simply keep track of a list of tasks and let me check them off when I have done them. This is the same as a traditional pen-and-paper todo lists. Why would I need a computer for that then? I would assign dates to remind me of some tasks, and filter out the fluff that aren’t yet ready for action. Then I would have a ‘empty list’ style of task management for tasks that needs iimmediate action. After giving Taskwarrior a try, it turned out to be what I needed. Adding and listing task is a breeze:
$ task Write post about Taskwarrior Created task 1. $ task Show how Taskwarrior works Created task 2. $ task ID Age Description 1 12s Write post about Taskwarrior 2 5s Show how Taskwarrior works 2 tasks
I like that the app is not getting in my way. You should spend little to no energy thinking about the tool itself after you have it set up. I realized that might be ironic when I’m now writing a long post about this tool anyway. Tasks can be modified in various ways. For example, I want to assign task 1 for my blog:
$ task 1 modify project:Blog Modifying task 1 'Write post about Taskwarrior'. Modified 1 task. The project 'Blog' has changed. Project 'Blog' is 0% complete (1 task remaining). $ task ID Age Project Description 1 2min Blog Write post about Taskwarrior 2 1min Show how Taskwarrior works 2 tasks
Projects and priority
To be organized, you could break tasks into categories. I could add tasks and assign it directly to project with this command:
$ task Assign task to something project:Blog Modified 1 task. The project 'Blog' has changed. Project 'Blog' is 0% complete (2 tasks remaining).
Perfectly. I’ve also marked this task as “active” by running
task 3 start. Then I want to see what my tasks are:
$ task ID Age Project Description 3 10s Blog Assign task to something 1 4min Blog Write post about Taskwarrior 2 3min Show how Taskwarrior works 3 tasks
Well, why is task 1 prioritized above task 2 (
Show how Taskwarrior works)? Because Taskwarrior considers a task to be higher priority if it is part of a project, which I think makes sense.
And why is task 3 placed on the top? I have marked this task as active, that makes it more urgent because, I guess, it’s easier to finish a task you’ve already started,
I could customize Taskwarrior that a task is more important, if it belongs to the “Work” project or something than “Blog” project. So work related tasks will be also prioritized above blog related tasks.
Not only does Taskwarrior organize, it also keeps track of how much time you’ve spent. You have read I marked the task 3 (
Assign task to something), then I mark it easily as done:
$ task 3 done
When you run task
burndown you’ll also see how many tasks are in progress. This is powerful when you’re managing various projects, like I have notice I spended 2 minutes for 1 task. Then I finished all tasks related to project blog:
$ task 1 done Modified 1 task. The project 'Blog' has changed. Project 'Blog' is 100% complete (0 tasks remaining).
Ok, let’s see which tasks are remaining:
$ task ID Age Description 2 5min Show how Taskwarrior works 1 task remaining
There is more!
For example, I could call Taskwarrior to show my tasks in the pasts, when I did them, or filter to project. With minimal effort, all of my tasks can be entered into Taskwarrior and tell them as belonging to projects, blocking other tasks, having scheduled dates and due dates, bill my clients for tracked time in a reliable way, reminders, etc., I can trust Taskwarrior to put them into the priority order. This tool makes sense to me.
The code of Taskwarrior is open-source. After compiling, it runs directly on my laptop, without being hosted by another third parties or someone else touching it. I don’t expect I will ever need to change this tool on my system. The data of the tasks are written into plain text files. That means those data is not married to anybody’s app, I can convert it into another systems anywhere.
So far, Taskwarrior is simple but powerful because all examples I’ve noted here are standard functions. It contains even more than hunderd functions. I have set up a sync environment to keep same tasks lists synced across all my devices; but it is a bit technical and out of the scope forthis post. But I like it so far. If you’ve considered to improve your task management, I recommend giving Taskwarrior a shot.