Managing tasks from the terminal with Taskwarrior ================================================= Adam Thompson 2021-04-16 19:02:38 ------------------------------------------------- If you've read my previous post you'll know that I signed off with a statement about working through my todo list. Well... that hasn't really happened yet. However, as part of starting my new job I've been trying to better organise things so it might. One of the things I've been thinking about for a while is how to manage a todo list. I've tried a text file before, even hooking it up to my shell profile so that it printed my todo items when I logged in. Unfortunately, this became annoying and got ignored and, eventually, abandoned. Then the day job and life in general got in the way and, like a lot of people, my todo list ended up as just a set of things I'd mention in conversations and then forget about. As part of starting a new job etc I decided it was time to finally look into a proper solution. I contemplated writing something but thought that I should first see if something existed. It turns out that there're a number of pieces of software out there to do this, some of which work from the command line. One of the most popular, and most mature, of these is Taskwarrior [1]. This is a very powerful open source program which is also relatively simple to use. It's available for a wide variety of systems which is nice since it means I can have the same utility on Mac, Linux and NetBSD. In addition, as well as basic task management it supports synchronising task lists between devices (via a specially designed server) as well as a host of other useful features. Creating a task is as simple as running: `task add 'Do important thing'` This will also create a default ~/.taskrc file which will configure Taskwarrior to store tasks in the ~/.task directory. To view the most urgent (next) tasks you can either run: `task next` or just: `task` You can also add tags to tasks and filter based on these as well as putting tasks into projects and defining dependencies between tasks. All of this is well documented in the manual and on the website. [1]: https://taskwarrior.org/