This is a command-line interface (CLI) tool for managing todo lists. It allows you to add tasks, mark them as done, list tasks, edit todo files, and more.
Before using this tool, ensure you have the following installed and set up:
- Python 3.x
- Git (optional, required for version control features)
Follow these steps to set up the todo CLI on your system:
-
Clone the Repository:
git clone <repository-url> cd todo-cli
-
Create a Virtual Environment:
python3 -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate`
-
Install Dependencies:
pip install -r requirements.txt
-
Run Setup Script
sh setup.sh
-
Configure the following variables in
.env
:- TODO_FILE_PATH: Path to the directory where todo files will be stored.
- DEFAULT_TODO_FILE_NAME: Default name for todo files. (default)
- TODO_EDITOR: Your preferred text editor for editing todo files. (nano)
- LOG_FILE_NAME: Name of the log file. (todo.log)
- MAX_LIST_ITEMS: Maximum number of tasks to display in lists. (15)
- GITHUB_REPO: A github repo used to store your todo lists.
- GITHUB_TOKEN: A Github access token that has read and write access to a github repo used to store your todo lists.
Once set up, use the following commands to manage your todo lists:
-
Add a task:
td add "Task description"
Optional: Specify priority with
-p
or--priority
. -
List tasks:
td list
-
Next most important task:
td next
-
Mark a task as done:
td mark <task-index>
-
Tag a task with a priority:
td tag <task-index> -p <new-priority>
-
Edit a todo file:
td edit
Opens the todo file in your specified editor.
-
List all todo files:
td list_all
-
Move a task between todo files:
td move <task-index> -s <source-todo> -d <destination-todo>
I'am also developing a Telegram bot to interact with the todo list from mobile.
This project was inspired by a comment of codazoda on Hacker News.
If you find this tool helpful, you can buy me a coffee here ☕.
This project is licensed under the MIT License.