Skip to content
A todo command line todo manager
Branch: master
Clone or download
darrikonn Merge pull request #7 from darrikonn/use-pathlib-path-for-windows-sup…

Use Path from pathlib to support cross platform
Latest commit fda07b2 Mar 2, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
todo Use Path from pathlib to support cross platform Mar 2, 2019
.gitignore Ignore designs Jul 1, 2018
LICENSE Initial commit Jun 9, 2018
Makefile Describe global Oct 4, 2018
pyproject.toml Lint Oct 4, 2018
setup.cfg Ignore E203 Feb 9, 2019



td-cli is a command line todo manager,
where you can organize and manage your todos across multiple projects



td-cli only works for python 3, so it needs to be installed with pip3

pip3 install td-cli

Getting started

Run td --help to see possible commands.

Here are some to get you started:

  • Run td to list all your todos.

  • Run td add "my new awesome todo" to add a new todo.

  • Run td <id> complete to complete your todo. You don't have to specify the whole id, a substring will do. It'll fetch the first one that it finds in the same order as when you list your todos.

Note that global is a preserved group name where you can list all your global groups. You can always set it as the default with:

td group global preset


Check out the api.


Database name

Your database instance will be located in your home directory (~/). By default it'll be named todo.

You can change your database name by specifying database_name in your ~/.td.cfg file:

database_name: something_else

This results in a database instance at ~/.something_else.db


When editing a todo, td <id> edit, you can both specify the todo's name and the todo's details. If no option is specified, your todo will be opened in vi by default (your environement EDITOR will override this) where you can edit the todo's details. You can change the default editor by updating your config:

editor: nvim


When listing todos, you have the option of specifying what group to list from:

td -g my-group
# or
td g my-group

If no group is provided, td will list from the current default group. You can globally set the default group with:

td g my-group preset

However, there's an option to set the default group per git project (this is not possible from the root config ~/.td.cfg). In the root of your git project, you can create a .td.cfg config file to specify what group to default on (this will override the global default group):

group: my-group

If you run td within your git project, td will default to my-group.

I recommend globally ignoring .td.cfg in ~/.gitignore.

You can’t perform that action at this time.