nag
I know the last thing the world needs is another command line todo list thingy, but I read Learn Python the Hard Way recently and used my newfound knowledge to write one. It has very few features: just enough to be useful (to me, at least!).
It’s called nag, because it’s designed to nag you into doing the oldest item on your todo list.

Download & Requirements
The script lives on Github: you can download it directly here.
You’ll need a fairly recent version of Python installed: I’ve tested it with Python 2.6.1 on OS X, Python 2.6.3 on OpenBSD and Python 2.7.1 on Arch Linux1, so it’ll probably work on any reasonably up to date machine.
Installation
- Save the script as
nagsomewhere in your path—I suggest~/bin - Make it executable:
chmod a+x ~/bin/nag
Usage
If you run nag without any arguments, it’ll show you the oldest item on your todo list.
You can add and delete list items, display the entire list or clear all items with the following flags:
-a, --add add an item to your list
-c, --clear clear your list
-d [n], --delete [n] remove item [n] from your list
-l, --list show the contents of your list
nag stores your todo list as a plain text file, ~/.nag—you can create this yourself, or have nag create it for you when you add your first task.
You might also like to set up a bunch of aliases in your shell config. file to save a few keystrokes, like so:
# Nag
alias n='nag'
alias na='nag -a'
alias nl='nag -l'
alias nd='nag -d'
alias nc='nag -c'
-
There’s an Arch-specific version of nag, thanks to the distro’s—how to put this?—forward-thinking decision to make Python 3 the default. ↩