Taskwarrior

Taskwarrior () is a Article description::to-do list manager for the command line written in. It uses a simple human readable text file format to store to-do list items and associated metadata. Taskwarrior isn't tied to a specific school of thought on task organization. It's designed to be simple yet flexible and scalable. As such, Taskwarrior has a syntax that is simple and intuitive.

Notable features include:


 * Data is stored locally in JSON files, easing migration to and from Taskwarror.
 * Interactions can be scripted via Taskwarrior's Hooks API.
 * Multiple UI options are available as part of the Taskwarrior ecosystem.
 * When paired with, tasks can be shared with multiple remote client applications.

Environment variables

 * $TASKRC allows the user to relocate the configuration file to a desired directory.
 * $TASKDATA allows the user to relocate the data file to a desired directory.

Modifying these variables is not required to enforce XDG Base Directory Support. If you've installed task warrior and it's ignoring you XDG preferences see the troubleshooting section.

Files

 * — XDG local (per user) configuration file.
 * — XDG task list directory with tasks spread across multiple files.
 * — legacy local (per user) configuration file.
 * — legacy local (per user) task list directory with tasks spread across multiple files.

Service
By itself, Taskwarrior is a single device application allowing all users on the device to have their own personal tasks lists. However, the  daemon provides a backend task server which provides for multiuser and multiclient support. Some smartphone applications, notably Foreground for Android, have begun to support this.

Usage
Basic usage is fairly intuitive, to list your exiting to-do items:

To add a new task, simply type setting a due date and a project are optional but common for task organization purposes. Due dates do not necessarily require exact numeric dates. Taskwarrior has several human readable aliases such as eom for "end of month" and days of the week from which Taskwarrior can work out the date.

To complete a task you need to reference its task number:

Task completion and task deletion aren't the same thing. In the former case, the task is moved a "completed" state but a record of it remains. If a task is deleted it is removed from the database. To delete an erroneously created task:

To generate a simple report for all tasks associated with a specific project. So, if you have an existing project called  and you want a list of all the associated tasks the command and its output should look something like this:

Taskwarrior has many features burred below the surface. Numerous potential workflows are supported. The official Taskwarrior documentation is full of detail rich examples on how to get the most out of it.

Taskwarrior is not respecting the XDG Base Directory Specification
Taskwarrior defaults to unless it detects the presence of. If both are present it defaults to. So, you must first move the file:

Next, edit and uncomment the following lines:

Next, move your existing ~/.task/ directory:

Confirm the contents of the directory have been copied properly and then delete the original directory.

Next, copy the contents of to the  directory:

Finally, delete if present and the original  directory.