3 To-do List Managers for the Linux Command Line

1 October, 2019

This post was first published, in a slightly different form, at Opensource.com and appears here via a Creative Commons license.

There are dozens, if not more, tools out there that can help you manage your ever-expanding task list. 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 that’s 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 post 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.

iKog in action

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 post, 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.

Viewing a list in Todolist

Todolist stores your task list in a hidden file called .todos.json in your /home directory. That makes it easy to back up 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.

The 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 post, 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.

Tasks in Yokadi

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 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 too, 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.

Scott Nesbitt