Skip to content

a command-line interface (CLI) tool for managing todo lists.

License

Notifications You must be signed in to change notification settings

sahbic/todo-cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

todo-cli

Overview

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.

Prerequisites

Before using this tool, ensure you have the following installed and set up:

  • Python 3.x
  • Git (optional, required for version control features)

Setup

Follow these steps to set up the todo CLI on your system:

  1. Clone the Repository:

    git clone <repository-url>
    cd todo-cli
  2. Create a Virtual Environment:

    python3 -m venv venv
    source venv/bin/activate  # On Windows use `venv\Scripts\activate`
  3. Install Dependencies:

    pip install -r requirements.txt
  4. Run Setup Script

    sh setup.sh

Configuration

  • Configure the following variables in .env:

    Directory (mandatory)

    • TODO_FILE_PATH: Path to the directory where todo files will be stored.

    Parameters (default values set)

    • 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 Sync (Optional)

    • 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.

Usage

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>

Mobile

I'am also developing a Telegram bot to interact with the todo list from mobile.

Credits

This project was inspired by a comment of codazoda on Hacker News.

Buy me a coffee

If you find this tool helpful, you can buy me a coffee here ☕.

License

This project is licensed under the MIT License.

About

a command-line interface (CLI) tool for managing todo lists.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

No packages published