Command line todo list manager-- Taskwarrior
What is Taskwarrior?
Taskwarrior is a task management tool in a terminal environment, it has powerful functions. Here is a short description about it from its official website:
It maintains a task list, allowing you to add/remove, and otherwise manipulate your tasks. Task has a rich set of subcommands that allow you to do sophisticated things. You'll find it has customizable reports, charts, GTD features, device synching, documentation, extensions, themes, holiday files and much more.
sudo apt-get install task
Mac with brew
brew install task
Add a new task
It's easy to add a new task, use task add and following by task description.
$ task add Buy a vps! $ task list ID Project Pri Due Active Age Description 1 3s Buy a vps! 1 task
Delete a task
You need to run task delete to delete a task. Here can be treated as the task ID, we will cover the use of in detail later.
$ task [task next] ID Project Pri Due A Age Urgency Description 1 29s 0 Buy a vps! 1 task $ task 1 delete Permanently delete task 1 'Buy a vps!'? (yes/no) yes Deleting task 1 'Buy a vps!'. Deleted 1 task.
Mark task as completed
Run task done to mark the task as completed.
$ task add Buy a vps! Created task 2. $ task [task next] ID Project Pri Due A Age Urgency Description 1 1s 0 Buy a vps! 1 task $ task 1 done Completed task 1 'Buy a vps!'. Completed 1 task.
Add task to a project
You can create a project for each task and it's easy to create and modify project of a task.
Can specify project of a task when adding the task
$ task add project:company Fix a bug $ task add proj:company Fix a bug $ task add pro:company Fix a bug $ task add project:company.server Fix a bug
Use task modify proj:xx to add or modify project of an existing task
$ task 2 modify proj:company
Check tasks in a specified directory
$ task proj:company list
Delete project of a task
$ task 1 modify proj:
Taskwarrior can specify priority of a task. The different priorities are : L(low),M(Middle) and H(High).
It's not easy to understand priority if you understand project above
$ task add project:Home priority:H Find the adjustable wrench $ task 1 modify priority:M $ task 1 modify pri:L $ task 1 modify pri:
$ task pri.below:H # Taks with high priority $ task pri.over:L $ task pri.not:M
As a task manager, it has to provide due. Taskwarrior also provides this command
Add due for a task
$ task add This is an urgent task due:tomorrow # Set the due to tomorrow $ task 1 modify due:tomorrow # Set the due to tomorrow $ task 1 modify due:2013-03-12 # Set the due to a specified date $ task 1 modify due:eom # Set the due date as （end-of-mouth） $ task 1 modify due:eoy # Set the due date as the （end-of-year） $ task 1 modify due: # Delete due date
$ task due:tomorrow //Tasks overdue tomorrow $ task due:eom $ task due.before:today $ task overdue # Out dated tasks
$ task add Create a blog. $ task 1 annotate I need a linux server $ task 1 annotate I gotta learn php $ task 1 [task next 1] ID Project Pri Due A Age Urgency Description 1 15s 0.9 Create a blog. 8/8/2013 I need a linux server 8/8/2013 I gotta learn php 1 task
$ task add Create a blog. $ task 1 modify +blog # Add tag to a task $ task +blog list # Tag filter $ task 1 modify -blog # Delete a tag of a task
Sometimes you want to append some description to a task and don't want to repeat the existing description again. You can use prepend and append.
$ task add music $ task 1 prepend Download some $ task 1 append into my iPod $ task 1 [task next 1] ID Project Pri Due A Age Urgency Description 1 13s 0 Download some music into my iPod 1 task
$ task 1 modify due:eom recur:monthly $ task 2 modify due:eom recur:yearly $ task 3 modify due:eom recur:monthly until:eoy $ task recurring
$ task cal
If you want to know more about this powerful tool. You can check its manual.
$ man task $ man task-tutorial