Take Your To Do List to the Command Line

If you’re serious about your to do list and want to be sure that you can use it in the future, then you should think about embracing your inner geek by 1) going text only, and 2) doing everything at the command line. The best way to do that is with Todo.txt.

Hold On … The Command Line?

You’re probably wondering why you should use the command line instead of popular Web applications like Remember the Milk, Toodledo, Todoist, or Ta-Da Lists. They’re all great, no doubt about it. But you need to be connected to the Internet to use them. And it’s not easy to export or move data between those apps or to other services.

With Todo.txt, you’re using a text file. And let’s be honest, the format of a text file hasn’t changed in … well, a long time.

Getting Going

Todo.txt is a shell script. To use it, you’ll need a bash shell. That’s not a problem if you use Linux or Mac OS — they both come with one built in. Windows users, on the other hand, are out of luck. Unless, of course, they use something called Cygwin (tools that add a Linux-like environment to Windows).

Once you have a bash shell, now all you need to do is download the archive containing the script. When you pop that archive open, you’ll see it contains two files:

  • todo.sh, the shell script
  • todo.cfg, a configuration file

Extract the files to a folder in your path — on my Linux-powered laptops, I put them in /usr/local/bin. Then, edit the file todo.cfg to point the shell script to where you want to store the actual to do list file. Look for the entry EXPORT TODO_DIR= and change the path.

Editing the configuration file

Using Todo.txt

Let’s start by adding a task. Open a terminal window and then type todo.sh add [task] — for example, todo.sh add Edit Chromium FLOSS Manual. Then, press Enter.

Adding a task

Obviously, you’ll want to check your to do list from time to time. Do that by typing todo.sh list in a terminal window.

Listing your tasks

Notice that each item in the list has a number. That number is useful to know when you want to add a priority to a specific task or mark the task as complete.

Why add a priority? Well, some tasks are more important than others. Adding a priority moves them up in the list. Priorities start at A (most important), and move down from there.

To add a priority, type todo.sh p [task number] letter, where letter is a letter of the alphabet. For example, todo.sh p 7 B. That adds a priority of B to task 7 in the list.

Marking a task as done

Finally, when you’ve completed a task you can mark it as done and remove it from the list by typing todo.sh do [task number] — for example, todo.sh do 7.

Todo.txt can do a lot more. To learn about all of the available options, type todo.sh -h to read the help.

Going Graphical

You say you like the idea of Todo.txt, but the command line part is a bit geeky for you. If you have an Android-powered phone or tablet and an account with Dropbox (an online file storage and syncing service), then you can install an app called Todo.txt Touch on your phone from the Android Market.

Todo.txt Touch everything that todo.sh does at the command line, but on a touchscreen. The app saves your to do list to a folder in Dropbox. From there, you can share the list with your computer and/or with any other Android-powered devices you might own.

Todo.txt on your phone

Final Thoughts

Even though using the command line sounds difficult and a tad geeky, Todo.txt is easy to learn and use. Even for the most ardent GUI addict. And by using Todo.txt Touch on your Android device, you can literally have your to do list anywhere and in a format that won’t be obsolete anytime soon.

Image credit: Dean Shareski


Posted

in

, ,

by

Comments

2 responses to “Take Your To Do List to the Command Line”

  1. Antonio Gallo Avatar

    May i suggest you to use another and more complete todo command line tools? taskwarrior.org or just apt-get install task it really has lots of features and i’m thinking of replacing gqueue with this

Leave a Reply

Your email address will not be published. Required fields are marked *