Simple command line todo list
They say pen and paper is the best way to manage a todo list. Following the popular norm, I also started tracking my todos with pen and paper. But after several unsuccessful attempts of finding a pen or deciphering tasks from torn or soaked paper, I felt keyboard and the pixel-screen would be more accessible than the traditional method. Without relying on any sophisticated applications I relied on the most simple form - plain-text. It was better, but after being inspired from efforts like todo.sh and todo.pl, I thought of coming up with a small command line utility of my own.
Enter todo gem!
This resulted in coding my first ruby gem - todo. It is just a simple command line utility for managing todos. I didn’t want to loose the flexibility offered by plain-text lists, hence it will use human readable YAML form, to store the lists. This enables you to use your favorite text editor to edit these todo lists.
Further it supports tags. You could list the tasks by tags, thus making things smart and easy.
Todo gem will run specific to a directory. This enables to keep different task lists in each directory. For example, I keep a todo list in my ‘home’ directory which holds all my housekeeping stuff and then I have separate lists for each project I work on in their respective directories. This separation allows better organization of the things to be done.
Example
Here is a basic example of how todo gem works:
#visit your project folder cd projects/newapp #create a new todo list for the project todo create #add a new task todo add "write the specs" - add tags : important, due:24/08/2008 #listing all tasks todo list --all #listing tasks tagged 'important' todo list --tag important #removing a task by name todo remove "write the specs" #removing a task by index todo remove -i 1
Get it!
To install todo gem in your machine simply run;
sudo gem install todo
Also the code of the gem is hosted in github, so you could fork and flip it in the way you want (and don’t forget to send me a pull request)





Comments
at 9:32 am
looks simple enough… gonna give it a try :)
cheers!
at 9:48 am
It’s nice and simple. Choosing YAML format was a great call, I think.
Since all I need to run todo is a Ruby installation including the RubyGems system, it’s very convenient for me to use.
at 5:40 pm
I was thinking about this the other day. A cool DSL for todos could be:
to do |task|
task.description “Yayz”
task.priority :high
task.due 1.day.from_now
end
Huzzah!
at 7:58 am
Nice and simple!
It would be cool, if there was a small rails (or merb or whatever) server which would store the tasks globally for a user. So that I also can view/edit the tasks from another pc or even through a simple web interface.