This is a todo list manager with support for tasks that depend on each other.
All usage is through the command line.
Some commands open
$EDITOR to edit an item. In these files, the first line is the task title, and the rest is the task description. No other parsing is done; you can format this in any format you want.
Some commands take tasks as arguments. A full task ID may be provided, or a unique suffix of an ID, or a unique substring of the title.
All other words used in commands can be similarly abbreviated:
todo l a v is equivalent to
todo ls all verbose.
# only title, no description: $ todo add buy ingredients for muffins $ todo add bake muffins $ todo add eat muffins # or to open $EDITOR on a new item: $ todo add
Editing existing items:
$ todo edit buy
# 'a after b' is equivalent to 'b before a' $ todo dep add buy before bake $ todo dep add eat after bake
# items that can be done right now (no dependencies) $ todo ls t20220220165525 buy ingredients for muffins # show all items $ todo ls all t20220220165525 buy ingredients for muffins t20220220165535 bake muffins t20220220165542 eat muffins # include task descriptions $ todo ls verbose t20220220165525 buy ingredients for muffins flour, sugar, butter, eggs, milk # they can be combined: $ todo ls all verbose t20220220165525 buy ingredients for muffins flour, sugar, butter, eggs, milk t20220220165535 bake muffins (depends on t20220220165525 buy ingredients for muffins) t20220220165542 eat muffins (depends on t20220220165535 bake muffins)
Completing/removing items (there is no separate 'completed' state, items just go away when they no longer need to be done):
$ todo rm buy $ todo ls t20220220165535 bake muffins