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.