Developer Aspirations

YAPB - Yet Another Programming Blog



April 2014

Upgrade Your Command-Line - Part 5: TaskWarrior

by Colin Miller, on command-line, bash, taskwarrior

Coming to the end of this series, I'd like to mention a tool that you can use in the terminal, but isn't directly related to using a terminal. It's a tool to keep you organized and on-task right in the terminal without having to switch to a browser or external app. It's a powerful ToDo and Task management application called TaskWarrior.

After installing TaskWarrior you interact with it with the task command. You can add a new task using task add:

$ task add proj:command-line Install bashmarks
Created task 1.
The project 'command-line' has changed.  Project 'command-line' is 0% complete (1 of 1 tasks remaining).
$ task
[task next]

ID Proj         Age Urg  Description
 1 command-line 1s     1 Install Bashmarks

1 task

You can assign tasks to projects by using project:<name of project> which can be shortened to just proj:<name of project>. You can also add other flags like Priority (H, M, or L), or a due date. You can add generic tags by using + before typing the description. You can also modify any existing tasks using the modify command.

task 1 modify proj:command-line +important

When you're ready to start working on a task you can use task <ID> start. This will let you track time spent on tasks for later reporting, and also serves as a reminder for what you're doing when you look at your lists of tasks.

TaskWarrior is quite powerful for tracking tasks, and even more so in it's reporting capabilities. You can view graphical (yes, even in the command-line) burndown charts or graphical reports of task history using burndown or ghistory. You can filter and display on project, tag, date, or a variety of other things. You can even set up a server to synchronize TaskWarrior among multiple machines.

I would highly recommend checking out the variety of tutorials hosted on TaskWarrior's website. It's in active development and quite useful for command-line geeks.

This ends my 5 part series on upgrading your command-line. If you missed any of the previous parts, here's a rundown of what was covered:

  • Part 1 covered Bashmarks which are bookmarks for bash.
  • Part 2 improved the cd .. command to allow additional dots.
  • Part 3 introduced tmux for multi-tasking with virtual terminals
  • Part 4 improves the information you view on the command-line by powering up your prompt to include more useful information like git branches.
  • Part 5 (this page) discussed TaskWarrior for creating and managing task lists to stay organized in your terminal.

Look forward to a future series where I'll talk about various ways of improving vim to make it your go-to text editor (really!)

comments powered by Disqus