DevTodo 2


DevTodo 2

A hierarchical command-line task manager

DevTodo is a small command line application for maintaining lists of tasks. It stores tasks hierarchically, with each task given one of five priority levels. Data is stored as JSON.

The task list is stored in a file named .todo2 in the current directory. Whenever a list is modified a backup is first copied to .todo2~.

DevTodo 1

The legacy version

DevTodo1 still compiles and installs, but is now unmaintained. It is available here. Some differences are described below.


DevTodo2 screenshots


Add a task, like so:

$ todo2 -a I should really update my homepage.

Add a task as a child of an existing one:

$ todo2 -g 2 -a This is a child of task 2.

List open tasks:

$ todo2

List all tasks, including closed:

$ todo -A

Mark a task as complete:

$ todo2 -d 1.2

If you find that your todo list is overwhelming your screen, turn on summary mode. It displays only the first line of each note.

$ todo2 -s

Get a full list of command line options with:

$ todo2 --help


From source

DevTodo is written in the Go programming language.

Installation is quite simple:

$ go get github.com/droundy/goopt
$ git clone git://github.com/alecthomas/devtodo2.git
$ cd devtodo2
$ make install

The binary and man page will be installed under /usr/local. To specify an alternate prefix just pass PREFIX=<dir>

DevTodo 1?

Yes, this is version 2

Version 1 was written in C++ in 2004, and has been due for a rewrite for a very long time. The release of Go seemed like a good opportunity to both learn a new language and rewrite DevTodo.

Differences between version 1 and 2

New Features

Not currently supported

DevTodo2 will load your old .todo files automatically. If you modify the task list with DevTodo2 it will transparently migrate the file to .todo2 in the new format.

You can specify the version 1 filename to load with --legacy-file=<filename>, and the version 2 filename with --file=<filename>.