done -- a simple, elegant command line todo list tool
done is a todo list tool designed for me. You might enjoy it, as well.
It was inspired by:
the darcs UI
timebook.py
todo.sh
remember the milk
kOrganizer
and aims to distill my favorite aspects of each of these tools into one, useful tool.
It was initially written in Haskell as a pedagogical exercise. I found that I was beginning to rely on it but was having trouble getting into Haskell enough to really make it code I was proud of. So I rewrote it in Python.
It uses sqlite3.
NOTES:
Design notes:
Usage:
d a [-d due] task
add a task, optional natural language due date
d l [-s (due|created)] [filter...]
list out tasks, optional sort, optional filters
d d [filter...]
go through tasks to mark finished ones, optional filters
d b
launch sqlite3 backend
###
$: d a '7708 check logs again' -d tomorrow
$: d a '7848 write trigger'
$: d a '7848 write function'
$: d l
7708 check logs again (due 17 Feb 2010)
7848 write trigger
7848 write function
$: d l -s name
7708 check logs again (due 17 Feb 2010)
7848 write function
7848 write trigger
$: d l 7848
7848 write trigger
7848 write function
$: d l 'due:tomorrow'
7708 check logs again (due 17 Feb 2010)
$: d d 7708
finished with...
7708 check logs again (due 17 Feb 2010)? [y/N]:y
X 7708 check logs again (due 17 Feb 2010)
$: d d 7848
finished with...
7848 write trigger? [y/N]:y
7848 write function? [y/N]:n
X 7848 write trigger
$: d l
7848 write function
$: d b
quit and spawn sqlite3 instance
$: d h
Usage: ...
###
DB schema:
tasks
id primary key
desc text
due integer
created integer
done boolean default 0