Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

topydo - a powerful todo.txt application

Build Status Codacy Badge PyPI version

topydo is a powerful todo list application using the todo.txt format.

It has three user interfaces:

  • Command Line Interface (CLI) - originally inspired by the todo.txt CLI by Gina Trapani.
  • Prompt mode - a convenience mode for the CLI. Launch with topydo prompt.
  • Column mode - a text based user interface (TUI) with customizable columns and vim-like bindings. Launch with topydo columns.



Feature-wise, the todo.txt format is quite limited, but can be extended using tags. topydo natively supports some of these tags to implement:

  • Due and start dates;
  • Maintain dependencies between todo items;
  • recurring todo items;

topydo also offers:

  • Fine-grained control on sorting and grouping items;
  • Customizable output;
  • Some conveniences when adding new items (e.g. adding creation date and use relative dates);
  • Additional output formats to iCalendar, JSON and Graphviz Dot;
  • Aliases for frequently used commands.
  • Text based todo identifiers, which are more stable and convenient than line-based todo identifiers.

Yet, topydo is fully todo.txt compliant. The text file can be processed by other todo.txt tools (but they may not interpret the tags properly).

The documentation on the TiddlyWiki provides more information about the features and how to use topydo.


Simply install with:

pip3 install topydo

If you wish to use column mode: install additional dependencies with:

pip3 install topydo[columns]

Similarly, for prompt mode you can install additional dependencies with:

pip3 install topydo[prompt]


CLI mode: