Most projects need organization. There exists a bunch out there, from the post-its laying on the desk to a huge kanban spanning the whole chain of supply. With code¸I find using the same layout as the project is pretty practical: when digging deeper inside it, you get more relevant information, tagging these closer to the source. So using a directory based scheduling system is pretty useful in this case.

One much needed feature for me was also the interface: it has to be command line based. I wanted to be able to create/edit/delete a task as easily as a commit.

Here comes devtodo, a simple yet useful todo system fitting these criteria. In there, todo can be hierarchical, linked with other todo database, prioritized and such.

When installing it, you get a few binaries:

  • todo: show the list of current task
  • tda: add a new task
  • tde: edit a task
  • tdd: tag a task as done

And now for an example use.

$ mkdir devtodo-example && cd devtodo-example && git init
$ tda -p 2 write a blogpost about it # add a new todo item with id 1 and high priority
$ tda -g 1 explain graphing # add a new item graphed under the first one
$ mkdir subdir && cd subdir && tda show linking another todo database && cd ..
$ tda --link subdir/.todo
$ tdd 1.1 # tag item as done
$ todo
  1.write a blogpost about it
    - 1.explain graphing
  2.subdir
      1.show linking another todo database