Skip to main content

A module that installs a command line program to manage simple TODO lists

Project description

Todo CLI

A simple command line Todo program written in Python. It allows you to categorize your tasks, add, remove and edit your tasks all from the command line.

Installation and setup

pip install py-todo-cli

The add and edit commands require that you have the VISUAL or EDITOR environment variables set to your preferred text editor

  • The script will default to vim if the VISUAL and EDITOR environment variables are empty
  • But this can cause issues on Windows where vim may not be available by default
    • In that case make sure to set your EDITOR environment variable to notepad or your preferred text editor
    • Installing vim is recommended though


        [ -a | --all-unfinished-tasks ]
        [ -c=<val> | --category-name=<val> ]
        [ -t=<val> | --section-type=<val> ]
        [ -n=<val> | --num-of-tasks-to-list=<val> ]
        [ -i=<val> | --print-task-data-for-id=<val> ]
        [ -a | --all-unfinished-tasks ]
        [ -c=<val> | --category-name=<val> ]
        [ -t=<val> | --section-type=<val> ]
        [ -n=<val> | --num-of-tasks-to-list=<val> ]
        [ -i=<val> | --print-task-data-for-id=<val> ]
    todo add
    todo add <category_name>
    todo done <task_id>
    todo done <category_name> <task_id>
    todo delete <task_id>
    todo delete <category_name> <task_id>
    todo edit
    todo edit <category_name>
    todo cats
    todo cats default <category_name>
    todo cats new <category_name>
    todo cats remove <category_name>

    -a, --all-unfinished-tasks
        List out archived tasks
    -c=<val>, --category-name=<val>
        The name of the category to list tasks for
    -t=<val>, --section-type=<val>
        Lists tasks from the given section type
    -n=<val>, --num-of-tasks-to-list=<val>
        The number of the highest priority tickets to print out [default: 3]


Using categories

todo cats

A category is where your tasks are stored

  • Create one like this

    todo cats new <your_category_name_here>
    • This creates a new directory ~/.todocli which contains the data for all your categories
  • You can also specify your default category

    todo cats default <your_category_name_here>
    • All relevant commands will use this default category if a <category_name> is not provided
  • You can see the current default category like this

    todo cats default
  • You can see all the available categories like this

    todo cats

Adding tasks to a category

todo add
  • Opens a file in your default text editor

  • In this file you can write your tasks in markdown bullet point format like this

    - This is my first tasks
    - This is the second task
        - This part will be kept as a part of the second task
    - This is the third task
  • The above example will create 3 new tasks

Task types

  • There are 3 types of tasks
    • unfinished
    • finished
    • archived
  • New rasks are added as 'unfinshed'
  • Tasks are changed to the 'finished' type once they are done
  • If tasks are deleted then they are changed to the 'archived' type

Listing tasks

  • Lists the top 3 tasks in your default category. Each task will have 2 parts
    • ID - This is the identification of the task and can be used to set the task as done or delete it
    • Description - This is the text that you entered for your task
  • You can print all the tasks by using the -a flag
  • You can print tasks from another category by using the -c option
  • You can also print out the unfinished, finished or archived tasks using the -t option

Setting a task as finished

todo done <task_id>

Deleting tasks

todo delete <task_id>

Prioritization and editing the tasks

todo edit
  • Opens the list of tasks in the default category in your system's default text editor
  • In the file you can move the tasks from one section to another to change their type
  • Prioritization can be done by simply moving the tasks up or down
    • The order is respected when the tasks are listed using todo
  • You can also delete them if you want
    • Any tasks deleted from the unfinished or finished sections will be put in archived
    • Any tasks deleted from the archived section will be deleted permanently
  • The numbers in front of the tasks are the task IDs. Please do not edit them or else it may cause odd issues.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for py-todo-cli, version 0.1.5
Filename, size File type Python version Upload date Hashes
Filename, size py_todo_cli-0.1.5-py3-none-any.whl (10.3 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size py-todo-cli-0.1.5.tar.gz (8.5 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page