Taskwarrior: A Good Command Line Task Manager (To-Do List)

Are you looking for an efficient task management tool to organize your daily life?

Well, let’s dive in and give Taskwarrior a try! This command-line task manager allows you to capture, track, and manage your entire to-do list directly by interacting with your tasks through your terminal. It uses a simple syntax that is easy to grasp, even for beginners who might not be comfortable with the terminal.

To get started, it’s straightforward. Let’s add two tasks:

task add Read the Taskwarrior documentation later  
Created task 1.

task add priority:H Pay the bills  
Created task 2.

You’ll notice that the second task has a high priority (H). Next, to view your tasks, use the next command. The tasks are ordered by urgency.

task next

ID  Age   P  Description                         Urg  
--  ---  --  ---------------------------------  ----  
2   10s   H  Pay the bills                        6  
1   20s       Read the Taskwarrior doc later       0

Now, let’s assume you’ve paid the bills and want to mark task 2 as completed:

task 2 done  
Completed task 2 'Pay the bills'.  
Completed 1 task.

Since next is the default command, you can skip it and just use:

task
ID  Age  Description                         Urg  
--  ---  ---------------------------------  ----  
1   5m   Read the Taskwarrior doc later        0

Task 2 has disappeared. Since no visible task has a priority, the priority column is no longer displayed. You can delete the remaining task, as you’re already following this tutorial:

task 1 delete  
Permanently delete task 1 'Read the Taskwarrior doc later'? (yes/no) y  
Deleting task 1 'Read the Taskwarrior doc later'.  
Deleted 1 task.
task  
No matches.

And there you go! You now know how to use the basic commands (add, done, delete, next) to effectively manage your task list with Taskwarrior.

Once you’re comfortable with the basics, you can explore the many other features offered by Taskwarrior. In addition to priorities, as we just saw, you can also assign due dates, tags, and projects to better organize and filter your tasks. You can also use commands to display tasks based on various criteria, such as upcoming tasks, overdue tasks, or tasks belonging to a specific project.

Here’s an example that lists tasks related to a specific project that must be completed by today:

task list project:MyProject due.before:today

And just like that, you have all the urgent tasks for your project in front of you, sorted by priority. Thanks to its rich ecosystem, you can even extend its functionality with hooks, extensions, and complementary tools.

If you want to sync your tasks across multiple devices, no problem! Taskwarrior supports bidirectional synchronization via Taskserver servers. And if you prefer a graphical interface, there are many frontends like Vit or TaskWiki. Other tools, like BugWarrior, allow you to import your GitHub/Jira tickets and issues directly into Taskwarrior.

In short, the possibilities are vast, and this is what makes Taskwarrior so powerful. I really encourage you to give it a try and dive into the documentation to learn the simple syntax. Plus, it’s open source and available on all operating systems.

Mohamed SAKHRI
Mohamed SAKHRI

I'm the creator and editor-in-chief of Tech To Geek. Through this little blog, I share with you my passion for technology. I specialize in various operating systems such as Windows, Linux, macOS, and Android, focusing on providing practical and valuable guides.

Articles: 1725

Newsletter Updates

Enter your email address below and subscribe to our newsletter

Leave a Reply

Your email address will not be published. Required fields are marked *