How to use ya-todo-py

todo.txt is a simple and popular method to manage your todo list. I like this method because it uses a simple text file and so simple scripts or programs can be used as TODO list managers. This method was popularized by Gina Trapani, who also created a shell script to manage the todo list. I found the shell script a bit wanting in features, so I use ya-todo-py instead.

ya-todo-py is a todo.txt manager written in Python. You can get it from its Github repository here. You can either run its script to install it or just stash it somewhere.

  • To run the script, provide the location of a directory where it can store its todo.txt files:
$ --todo-dir /path/to/todotxt/dir

By default, this will list the items in your todo list sorted alphabetically.

  • Tasks sorted by name is useless for me. So, I view the todo list items sorted by number:
$ --todo-dir /path/to/todotxt/dir -n
  • For ease of use, you may want to make an alias of your command with all the options. For the Fish shell, I added this alias:
function todo --todo-dir /path/to/todotxt/dir -n $argv
  • Operations I commonly use:
# List tasks
$ todo

# Add task
$ todo add "Pick up bread and milk"

# Complete task 4
$ todo do 4

# Remove task 3
$ todo rm 3
  • You can add tags, categories or projects to a task, by using your own convention. You can do this by using special characters. For example, I use plus symbol for tagging:
# Add task with read tag
$ todo add "Study Nature paper +read"

# To list all tasks with +read
$ todo ls +read
  • The script has other command options, which can be seen by using the --help option.

Tried with: Python 2.7.6 and Ubuntu 14.04

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.