VimOutliner-based master todo list
TKDO - GTD - Screenshots - Development


TKDO is a CLI, Curses, and PyGTK program designed to work with VimOutliner files. It takes all your todo.otl outlines, merges them into a single flat list, auto-sorts them, filters them, and adds support for things like contexts and recurring events. It also has one somewhat unusual feature -- a snooze button. It's easy to mark tasks as "don't bug me about this for a while".

The entire system is based on plain text files, with a GUI to make certain tasks easier and faster. Due to its plain text nature, it's easy to extend or customize the system with short scripts.

If you have a lot of todo lists scattered across many directories or even multiple computers, TKDO is useful as a "master list" to access all your lists at once. I like to keep a todo list in each project directory, and TKDO makes it easier for me to track all my projects from a single place. Otherwise, there would simply be too many lists to check.

A lot more details are in the README.


I recommend using the latest version directly from Launchpad, because TKDO uses a development model where every trunk-level commit is considered stable. The code on Launchpad is often quite a bit newer than the latest release tarball. To get the Launchpad version, use bzr: bzr branch lp:tkdo

This will get you the most recent code, and you can then update it at any time by running: cd tkdo ; bzr pull

The latest release is tkdo-0.7.tar.gz.

Older versions are also available: all versions


TKDO development is hosted on Launchpad.

Using TKDO for Getting Things Done (GTD)

This has moved to its own page: Using TKDO for Getting Things Done (GTD)

Task File Suggestions

Some lists are useful to almost everyone. Here are a few you might want:
  • One task file per project, stored as "todo.otl" in that project's directory. The name is just a convention, but it can make integration with other tools easier. For example, I have a shell hook which automatically displays the top 10 todo items whenever I enter a directory with a todo.otl file.
  • Bills to pay. If you have any bills you need to pay regularly, this will give you reminders at the appropriate times.
  • Birthdays. Don't want to forget those.
  • Holidays. Okay, so TKDO doesn't automatically handle things like "first sunday after a full moon in May", but it's usually close enough to remind me that I need to do some gift shopping or put together a costume. Remember to set lead times long enough (or short enough) for each holiday, especially if that holiday's date moves around each year.
  • Gifts. Every time you think of something someone might like, write it down! Then when a birthday or holiday comes up, you won't have to wrack your brain trying to think of a gift.
  • Books to read, movies to watch, etc. This both helps remind you of things you might be interested in, and can let you know later if you saw a particular movie (and even what you thought of it, if you assigned it a rating or wrote any notes about it).
  • Affirmations. If you want to remind yourself of something each day, make a task or task file for it, and make it a recurring event. Then, after you have read it each day, mark it as completed and move on with the rest of your tasks. (hint: this is also useful for reviewing lecture notes so you'll remember them for a test!)
  • Borrowed stuff. This can help remind you to get/give things back later.
  • People to keep in touch with. This is how I remember to call Mom, or ping friends who I don't see very often.
  • Buckets. Maybe this is the GTD equivalent of dividing by zero, but I seem to need a reminder to empty my GTD buckets. So, I have recurring tasks for things like "empty papers from wallet" and "sync new items from palm pilot". And, of course, reminders to empty my snailmail box and clean papers out of any other places they collect.
For task files containing only recurring or due tasks, I recommend setting a default lead time at the task file level, to avoid having to specify it for each task within. For example, if you want a month's notice for all birthdays, that's easy to do. And if one particular birthday requires three months notice, it can be configured without affecting the rest.
TKDO - GTD - Screenshots - Development
Last modified: July 13, 2012 @ 4:18 MDT
Copyright (C) 1996-2024 Selene ToyKeeper