Todo.txt, a command line todo list

Todo.txt is a shell based todo list manager. It reads and writes to text files, which makes it portable and easy to edit with other tools. I run a copy on my Mac, but you can run it anywhere you have a shell, for example on a VPS that you can access remotely.

On my Mac, I also have GeekTool installed, which among other things, will display the contents of a text file on my desktop. I can have my todo list on screen all the time.

The list looks like this if you include the date

$t list
1 2010-07-25 setup todo.txt
2 2010-08-01 update website
--
TODO: 2 of 2 tasks shown

I can’t possibly cover all the features here, but todo.txt is simple yet very powerful. Here’s the help:

strongbad:~ jlewis$ todo.sh -h
Usage: todo.sh [-fhpantvV] [-d todo_config] action [task_number] [task_description]

Actions:
add|a "THING I NEED TO DO +project @context"
addto DEST "TEXT TO ADD"
addm "THINGS I NEED TO DO
MORE THINGS I NEED TO DO"
append|app NUMBER "TEXT TO APPEND"
archive
command [ACTIONS]
del|rm NUMBER [TERM]
dp|depri NUMBER
do NUMBER
help
list|ls [TERM...]
listall|lsa [TERM...]
listcon|lsc
listfile|lf SRC [TERM...]
listpri|lsp [PRIORITY]
listproj|lsprj
move|mv NUMBER DEST [SRC]
prepend|prep NUMBER "TEXT TO PREPEND"
pri|p NUMBER PRIORITY
replace NUMBER "UPDATED TODO"
report

See "help" for more details.

To make it even better, you can alias commands to make it even quicker to type. Here is my alias:
alias t='todo.sh -d $HOME/.todo.cfg -t'

I just have to type t list to show all my tasks. I maintain multiple lists so I can easily track work and personal related todo items. My personal list uses another alias and another config file.
alias personal='todo.sh -d $HOME/.personal.cfg -t'

You can even alias the command to add items.
alias ta='t add'

strongbad:~ jlewis$ ta test
TODO: '2010-08-15 test' added on line 3.

When you’ve completed an item, you can remove it from the list.

t list
1 2010-07-25 setup todo.txt
2 2010-08-01 update website
3 2010-08-15 2010-08-15 test

t do 3
3: x 2010-08-15 2010-08-15 test
TODO: 3 marked as done.
x 2010-08-15 2010-08-15 test
TODO: /Users/jlewis/todo/todo.txt archived.

t list
1 2010-07-25 setup todo.txt
2 2010-08-01 update website

When you complete a task, it is move to another file, done.txt.
cat ~/todo/done.txt
x 2010-08-15 2010-08-15 test

The possibilities are endless with todo.txt. There are addons available and it’s easy to create your own addons. There is an add-on for http://www.rememberthemilk.com/, which has phone apps and integration with gmail tasks and twitter.

You can get todo.txt here: http://ginatrapani.github.com/todo.txt-cli/

Get GeekTool here: http://projects.tynsoe.org/en/geektool/

GeekTool scripts here: http://www.macosxtips.co.uk/geeklets/

This entry was posted in Tools and tagged , , , , , . Bookmark the permalink.

Leave a Reply