> tdo

View on GitHub

license Language version Build Status

A todo list for the terminal.

This is a simple todo list tool that integrates in your terminal workflow.
Featuring multiple todo lists and exporting your list to Markdown, it aims to be a well-structured assistant in your daily routine when you don’t feel like leaving the terminal.


Install with cargo:

cargo install tdo

For a manual installation, clone this repository or download the latest release and run:

cd in/your/directory
cargo build --release
# copy to /usr/local/
cp ./target/release/tdo /usr/local/bin/
# or symlink it
ln -s /<path/to/repo>/target/release/tdo /usr/local/bin/tdo


Notice: If you have todos or listnames with spaces do not forget to escape them or put the whole string in ''.

For a list of all available commands please see tdo help, this is just an overview to demonstrate what you can do with tdo.

Simple todos

To add a todo, simply type tdo add 'todo goes here'. If your todo consists of just one word, you can leave out the quotes.

However, if you want to add the todo to a list (for lists, see below), type tdo add 'todo' listname. Note that you can type the listname in lowercase letters, tdo will still find your list.

Multiple Lists

tdo features working with multiple lists. Add a new list with tdo newlist listname (remember to use quotation marks for a listname containing spaces!).

To remove it again, use tdo remove listname. You will be prompted to confirm the deletion to avoid accidents.

Export your todos

If you feel like exporting your todos (e.g. for printing a checklist), you can do that with tdo export filename. All your todo lists will be exported into Markdown. You can decide if you want to include tasks that were marked as ‘done’ or not.


If you want to upgrade from the older Python version of tdo there are some simple steps to follow.

First uninstall tdo with pip3 uninstall tdo. Dont worry the ~/.tdo folder won’t be removed. Then simply install the new one as shown above and you are ready to go.