Skip to content
dirt simple todos cli
Shell Makefile
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

ldpl todo

dirt simple todos cli.


$ todo -list             # list todos
$ todo -add "Call Bob"   # add todo
$ todo -edit             # open todo file in $EDITOR
$ todo -check 2          # check off todo
$ todo -clear            # remove checked todos

all commands have single letter versions:

-add is -a, -edit is -e, etc. check is -c. clear is -d.


$ todo -list
-> no todos in ~/.todo

$ todo -add Show example usage
-> added "Show example usage"

$ todo -add Eat a Pop Tart
-> added "Eat a Pop Tart"

$ todo -list
  1. Show example usage
  2. Eat a Pop Tart

$ todo -add Write a poem about dinosaurs
-> added "Write a poem about dinosaurs"

$ todo -check 2
  1. Show example usage
X 2. Eat a Pop Tart
  3. Write a poem about dinosaurs

$ todo -clear
  1. Show example usage
  2. Write a poem about dinosaurs


requires ldpl 4.3:

lpm install std-list
ldpl todo.ldpl -o=todo
cp todo ~/bin


this tool stores todos in ~/.todo by default.

to use a different todo file, set the env variable TODO:

env TODO=~/work/todo.txt todo -list

in either case, the todo db is a plain text file with one todo per line.

lines that begin with "X " (X and space) are treated as checked.

lines that begin with "#" are treated as headers.

for example:

$ cat ~/.todo
finish README
X write up an example
take screenshots?
upgrade servers at work to 4.3
X test time travel feature
test ncurses on mac
add sound


   2. finish README
X  3. write up an example
   4. take screenshots?

   6. upgrade servers at work to 4.3
X  7. test time travel feature

   9. test ncurses on mac
  10. add sound


i use a tiny fish wrapper with this program,

$ t                # todo -list
$ t "Call Terry"   # todo -add "Call Terry"
$ t 2              # todo -check 2
$ t -d             # todo -d
You can’t perform that action at this time.