Taskwarrior – An easy way to manage TODO list from the command line
Taskwarrior is a Free, Open Source, and powerful command line task manager that manages our TODO list in the well organized format, which automatically improve our productive. It is flexible, fast, and unobtrusive. It does its job then gets out of your way.
Taskwarrior is simple and highly customizable utility. It supports, tasks addition, shows you the list with colorful tabbed output, tags, statistics, removes tasks from that list, and captures tasks. Taskwarrior is an active development and adding new features every day. It also have the option to set Due Dates for tasks and has feature rich search function.
Taskwarrior is one of the important utility for NIX admin & Developers. It doesn’t mean, only applicable for them. I mean whoever spending hell lots of time in terminal, they might have use this utility to improve their productive.
Installing Taskwarrior in Linux
All the major Linux distributions has included the Taskwarrior package in default repository, we can easily install Taskwarrior with help of distribution package manager.
$ sudo apt-get install taskwarrior
$ sudo apt-get install task
For openSUSE users, use Zypper Package Manager to install Taskwarrior.
$ sudo zypper install taskwarrior
For Fedora users, use dnf Package Manager to install Taskwarrior.
$ sudo dnf install taskwarrior
For Arch Linux users, use pacman Package Manager to install Taskwarrior.
$ pacman -S task
$ sudo yum install taskwarrior
After successful installation, run
task once to create a configuration file and a data directory in your home directory by inputting
$ task A configuration file could not be found in Would you like a sample /home/magi/.taskrc created, so Taskwarrior can proceed? (yes/no) yes [task next] No matches.
How to use Taskwarrior ?
Taskwarrior is a simple and powerful user friendly utility offers wide range of options to manage TODO list in command line. To become a legend of taskwarrior, I would advise you to populate Taskwarrior with below examples.
Creating Tasks :
Taskwarrior uses a natural and expressive command line syntax. So, just input your task information followed by task add command.
Adding tasks without any option:
$ task add Want to speak with mum Created task 1.
$ task list ID Age Description Urg 1 20s Want to speak with mum 0 1 task
Create multi-line task: Create a task with a multi-line description.
$ task add "I have a meeting at 7.00 pm I have a training session at 7.30 pm Dinner at 9.00 pm" Created task 2.
$ task list ID Age Description Urg 1 1min Want to speak with mum 0 2 5s I have a meeting at 7.00 pm 0 I have a training session at 7.30 pm Dinner at 9.00 pm 2 tasks
We have successfully added few tasks and want to view, how it looks?. To view tasks, taskwarrior application offers verity of options. The
task ls command generate the output in short form, which give you a quick overview of the each tasks, including Tasks ID, and description. For detailed output, use the
task long command, which shows all the possible information about the tasks, including
Tasks short view:
$ task ls ID Project Tags R Description 1 I have a meeting at 7.00 pm I have a training session at 7.30 pm Dinner at 9.00 pm 8 R Pay Mobile bills 2 Pay the rent 4 Server Reconfigure Easyapache4 6 Linux Reconfigure Easyapache4 3 Reconfigure Easyapache4 in cPanel server 5 Server Reconfigure Multiple PHP 10 R Renew 2daygeek Cloud Server 8 tasks
Tasks detailed view:
$ task long ID Created Mod P Project Tags Recur Due Until Description 6 2017-04-05 17min Linux Reconfigure Easyapache4 4 2017-04-05 18min Server Reconfigure Easyapache4 3 2017-04-05 25min H 2017-04-30 Reconfigure Easyapache4 in cPanel server 10 2017-04-05 27min P30D 2017-04-30 2017-12-31 Renew 2daygeek Cloud Server 8 2017-04-05 29min P30D 2017-04-30 Pay Mobile bills 5 2017-04-05 48min Server Reconfigure Multiple PHP 2 2017-04-05 53min 2017-04-12 Pay the rent 1 2017-04-05 58min I have a meeting at 7.00 pm I have a training session at 7.30 pm Dinner at 9.00 pm 8 tasks
Adding Tasks with due date: Taskwarrior supports date and time values. It used to track task creation, due date, scheduled date, and end date. Also support different date formats.
$ task add Call to Bank due:tomorrow Created task 3.
$ task list ID Age Due Description Urg 3 5s 2017-04-06 Call to Bank 8.6 1 4min Want to speak with mum 0 2 3min I have a meeting at 7.00 pm 0 I have a training session at 7.30 pm Dinner at 9.00 pm 3 tasks
Adding Tasks with due date: By default, it uses
Y-M-D, to read the date from the command line.
$ task add Pay the rent due:2017-04-12 Created task 4.
$ task list ID Age Due Description Urg 3 2min 2017-04-06 Call to Bank 8.6 4 4s 2017-04-12 Pay the rent 5.86 1 7min Want to speak with mum 0 2 5min I have a meeting at 7.00 pm 0 I have a training session at 7.30 pm Dinner at 9.00 pm 4 tasks