✅ Command-line tool to manage Todo lists

francoischalifour francoischalifour Last update: Nov 09, 2023

Todo (CLI)

Command-line tool to manage the Todo lists of your projects

Todo workflow

Built with Python3 with Unix systems in mind.

Elevator Pitch

Todo exists to bring all the needed functionalities for simple project management to the terminal. No graphical interface is needed; this tool is easy enough to use to improve your workflow.

Todo screenshot


Clone the repo

$ git clone https://github.com/francoischalifour/todo-cli

Create a virtual environment (optional)

If you use several Python versions on your computer, create a virtual environment with the Python 3 interpreter:

$ virtualenv -p python3 venv

Activate the new environment:

$ source venv/bin/activate

Install with pip

$ pip install <path to the todo-cli folder>

You should now be able to use the command todo.

Create a Todo project

Before working on your Todo list, you need to create a project.

$ todo init
Project name: (moody-app) Moody
The project Moody has been created.

You can now start adding tasks!


Create a project

$ todo init

Delete a project

$ todo delete

You can use del instead of delete.

Rename a project

$ todo rename "New name"

Add a task

$ todo add "Name of the task"

You can add several tasks and don't need to add quotes:

$ todo add "Task 1", Task 2, "Task 3"

Remove a task

To remove a specific task by name:

$ todo remove "Name of the task"

To remove a task with an interactive menu (Unix only):

$ todo remove

You can use rm instead of remove.

Check a task

$ todo check "Name of the task"

To check all the items:

$ todo check --all

You can use -a instead of --all.

Uncheck a task

$ todo uncheck "Name of the task"

To uncheck all the items:

$ todo uncheck --all

You can use -a instead of --all.

Toggle a task

To toggle a specific task by name:

$ todo toggle "Name of the task"

To toggle a task with an interactive menu (Unix only):

$ todo toggle

You can use tg instead of toggle.

List all tasks

$ todo list

You can use ls instead of list.

Search tasks

$ todo search "keyword"


MIT © François Chalifour

Subscribe to our newsletter