May 2, 2007

iKog: The tiny to-do manager that could

Author: Dmitri Popov

iKog is a text-based to-do manager that can help you to keep tabs on your tasks from the command line. Although it lacks all the bells and whistles of a full-blown GUI task manager, it's one of those tools that make a virtue of doing a limited range of tasks well. iKog is written in Python, and since most Linux distributions come with Python installed by default, iKog will run on them right out of the box.

The entire application consists of just one .py file, so there is nothing to install and configure. Simply download the latest zip or gz archive, unpack it, and start iKog using the command python path/to/

When iKog is up and running, you can start adding tasks to it by entering the name of a task preceded by a plus-sign and space:

+ Finish the iKog article

This adds the specified task using the default priority, context, and date. You can, of course, specify these values when adding a task. For example, you can assign a task a priority from 1 to 10:

+ Install Ubuntu Feisty Fawn #1

Take iKog with you
Since iKog consists of just one file, it makes a great portable application that you can carry with you on a USB stick. But what if you have to use it on a Windows machine without Python installed on it? In that case, you might want to install Portable Python on your USB stick. Launch Portable Python by running the PortablePython.bat file, and you can then use iKog (or any Python-based application for that matter).

In a similar manner, you can specify a due date for the task:

+ Read a book :d2007-05-30

iKog uses the ISO data format, so the task above is scheduled for May 30, 2007. Since iKog is loosely based on the GTD method, it allows you to assign a context to a task. For example, you can assign an @computer context to all computer-related tasks:

  + Buy more RAM @computer
  + Install iKog on the laptop @computer

iKog makes it even easier to assign a context by specifying abbreviations. For example, instead of typing @writing every time you add a writing-related task, you can specify an abbreviation:

ABBREV @Wr @Writing

iKog comes with a few default abbreviations, which you can view by using the ABBREV ? command.

iKog also allows you to specify projects and assign them to tasks. Suppose your iKog article is intended to be a part of a book about task managers. In that case, you might want to create a Book project and assign it to the task:

+ Finish the iKog article :pBook

Note that the name of the project is always preceded by :p. Of course, you can combine all the described values when adding a tasks:

+ Finish the iKog article @Wr :pBook #1 :d2007-05-30

Managing existing tasks in iKog is straightforward. To view a list of all your tasks in iKog, use the LIST command. You can use the NEXT and PREV (or N and P) commands to navigate between tasks. The TOP (or T) command allows you to jump to the top of the task list, while the GO (or G) command can be used to go to a specific task -- for example, GO 7. To view all the tasks in the @Writing context, use the LIST @Writing command. Similarly, you can list all the tasks in a particular project with, for example, LIST :pBook.

iKog allows you to delete a task with the KILL command followed by the task number. If you want to delete all the tasks in iKog at once, you can use the CLEAR command. And iKog also offers a few commands that you can use to modify (MOD), replace (REP), and substitute (SUB) tasks. The online documentation provides detailed descriptions of these and other commands.

Besides tasks, iKog can handle notes. You can use the NOTE command to add tasks with a priority of 0 and a context of @Notes, which are perfect for storing small text snippets. Moreover, iKog allows you to encrypt and hide confidential information in both notes and tasks. To encrypt some text in the note or task, you can use the <private> tag; for example:

note password <private> monkey

iKog then prompts you to specify a master password, and encrypts the text after the <private> tag. To view the encrypted text, enter the SHOW (or SH) command followed by the task or note number, then type the master password, and iKog displays the decrypted text.

These are just a few of iKog's features, but there is one more thing that deserves a special mention. iKog comes with a well-written and detailed manual that covers all of iKog's features. The documentation is a pleasure to read, and it's available as an easy-to-navigate online version, a PDF file, and even as a CHM Windows help file.

Dmitri Popov is a freelance writer whose articles have appeared in Russian, British, US, German, and Danish computer magazines.

Click Here!