3 to-do list managers for the Linux command line

Learn to manage your tasks with these simple terminal tools.
311 readers like this.
A desk illustration in grass


There are dozens, if not more, tools out there that can help you manage your ever-expanding lists of tasks and to-dos. If you want to manage your tasks like a techie, or just feel like going back to basics, the best way to do that is to turn to the command line.

With the software choices that are available, there's no reason why you can't effectively manage your tasks from the command line. You don't need to worry about sacrificing features and functions, either. The three task management tools I look at in this article have something for everyone.


iKog is a Python script that's a fully-featured task manager. When you run the script, it fires up a Python shell. That shell is iKog's working environment, and it displays all of your uncompleted tasks.

If you don't have any tasks, you can add them by typing ADD followed by a description of the task—for example, ADD Write task managers article for Opensource.com. You're not limited to adding only a description to a task. You can include notes with your tasks, add due dates, and add a context. A context is a tag that identifies a location or a project the task is related to, like @office or @blogging.


Out of the box, iKog saves your tasks within the script itself. You also have the option of saving your tasks in a data file outside of the script. Either way, iKog is very portable. You can drop the script or the data file on a flash drive or sync it with web-based storage software like ownCloud or Nextcloud so you have your task list wherever you go.


When Grant Ammons created Todolist, his goal was to implement the 30% of features in a popular web-based task list called Wunderlist. He succeeded. Todolist is the simplest of the three tools I look at in this article, but that doesn't mean it's not both useful and flexible.

You use natural language to work with your tasks. To add a task, you'd type todolist add, followed by the description of the task. Todolist's other options are just as easy to use and remember. Like iKog, you can add due dates and contexts to tasks that you create with Todolist. You can also edit due dates and filter task by those dates or by their context.


Todolist stores your task list in a hidden file called .todos.json in your home directory. That makes it easy to backup your task list or move it to another computer.


Yokadi packs enough features to keep even the most discerning geek happy, but it's also easy enough to use if your tasks management needs are simple.

he best way to describe Yokadi is project based— when creating a task, you need to include a keyword, which indicates the project or the action the task is associated with. For example, when I created the task for writing this article, I typed t_add Opensource.com Write the task managers article. *Opensource.com is the project. That seems like a bit of extra work when working with tasks, but you can type the first couple of letters of a project then press tab to complete it. Yokadi also groups your tasks by their projects when you view them.


You can add due dates, create recurring tasks, and even encrypt individual tasks. Yokadi also has a command that fires up your default text editor so you can add a note or additional information to a task. There are a number of other options, too, which will please even the most discerning geek.

Yokadi stores your tasks in a SQLite database. If you're upgrading the application, be aware that you might also have to update the database. Luckily, Yokadi's developer has written some documentation to help you with that.

Other task management tools

Here is a quick peek at a few other command line task management tools you might be interested in:

  • Two of the most popular task managers for the command line are Taskwarrior and Todo.txt. Both are fast, configurable, and store your tasks in text files.
  • If you're looking for a simple task management tool, check out Fin is a 38-line shell script that's "minimalist, extensible, and reasonably future proof."
  • todo packs a few more features than Fin. Those include filtering tasks, the ability to hide certain tasks, and to add a priority to your tasks.
  • MyTodo is about as simple as Fin, and has many of the features of todo. MyTodo also has a simple graphical user interface (GUI) that you can trigger from the command line. The GUI can make working with your tasks easier.

Do you have a favorite way of managing your tasks from the command line? Feel free to share it with our community by leaving a comment.

That idiot Scott Nesbitt ...
I'm a long-time user of free/open source software, and write various things for both fun and profit. I don't take myself all that seriously and I do all of my own stunts.


Taskwarrior is my personal use and favorite.


I created a terminal to-do list app named todx check it at todx.tk hope you like it.... It was actually a school project...

It would be pretty straightforward to set up a postgresql database for this. As a physician, my "todo" list was my hospital census that I made with psql and which was much more convenient than accessing the lumbering giant of the hospital's software just for a patient list.

I wrote topydo, a powerful todo application on the commandline, positioned between todo.txt CLI and TaskWarrior. Features due dates, dependencies, recurrence and alternative user interfaces.

Creative Commons LicenseThis work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License.