The Best Application for Command Line To-Do List Management
On my computer, the main application that is always running is the terminal emulator. Throughout my workflow, I always use console applications to perform various tasks. I want to talk about one simple but very functional utility that allows you to manage your tasks from the terminal emulator.
This utility is called Taskwarrior. This is an Open Source application and is available in the repositories of almost all Linux distributions, as well as in Homebrew for macOS. Information about the installation on your system can be found in the Downloads section on the utility’s website.
After installation, I recommend watching a simple video that shows the main features of the program.
You can view all added tasks with the
There’s nothing here right now, let’s add a task:
The task has been added, it has been assigned an
ID, time of adding and priority.
You can end a task with the
done command, specifying its
Tasks can be divided into projects:
You can view the tasks of a specific project by specifying its name:
For a simple to-do list, these commands are more than enough.
You can view detailed information about tasks using the
You can view detailed information about a task with the
Adding a task priority
Usually, tasks, if there are many of them, have a priority. Taskwarrior supports three priorities for tasks:
H— high priority;
M— medium priority;
L— low priority.
You can set the priority with the command
priority:<PIORITY>. For example:
The task will also change its color if your terminal emulator supports colors.
In addition to projects, tasks can be grouped by attaching appropriate tags to them. You can add multiple tags to one task. The following syntax is used for this:
You can add annotations to tasks. You can do this with the
Created tasks can be edited. There are two ways to do this:
task 2 edit— The task will open in the default text editor (mine is Vim).
task 2 modify priority:L— For quick editing of priorities or other parameters.
Current tasks can be tracked. To do this, simply start the one you need with the
The running task will also be highlighted. The Active column will show the time during which the task is being worked on.
You can stop a task with the
Deleting a task
Any task can be completely deleted. To do this, use the
Task execution time
For tasks, you can set a deadline when they must be completed. Taskwarrior supports several keywords, as well as specifying the date in a special format:
You can set the date with the following command:
You can also view all tasks by date in a calendar view. You can call it with the command of the same name:
The appearance of the application can be configured in its configuration file —
~/.taskrc. To select a theme, simply uncomment the desired line.
I prefer the
Synchronization of tasks between different machines
I have several computers, so it is useful to synchronize tasks between them. I use Git for this. I have a personal GitLab that stores my pet projects, configs, scripts, knowledge base, blog source codes, and other useful things.
Taskwarrior is a utility with roots in UNIX, so it stores all of its contents in text format in the user’s home directory. And text files are well versioned with Git.
I clone the repository with the contents of the utility in
~, and then override the location of the utility’s system files in its configuration file.
After the changes, it is enough to commit the changes, and all your tasks will be synchronized between all machines.
Taskwarrior has become an indispensable tool for me in my daily work. This simple application helps you quickly and efficiently manage tasks in your terminal. And synchronization with other machines allows you to quickly move from one computer to another without losing what you still need to do.