Home Ian's Blog

Google Tasks in the Terminal

June 16, 2014

I have struggled for a long time trying to find a good way to manage to-do lists. I have used a raw text file on a server, which is really convenient when I'm at a computer as I can just edit it with Vim over SSH. This solution is less than ideal on a phone, however. I have SSHed from my phone to edit the todo file, but it's not exactly fun. I've also used cell phone programs like the now-defunct Astrid and Any.Do, but their desktop interfaces are not my favorite, and it's yet another login to keep track of.

I've now settled on Google tasks which most mobile task programs can work with. Also Google already knows everything about me, so what's one more source of information for them? The downside is that the web applications for it are pretty crappy.

Enter vtasks, a terminal client program for Google Tasks that I've just written. It provides an interface modeled after the wonderful mutt email program. Below is a screen-shot of the main window:

It supports creating, editing and checking off tasks. It uses any external editor to create and edit tasks (it chooses based on the $EDITOR environment variable - of course mine is set to vim). It sorts tasks based on the due date first, and date modified second.

The program is written in Python using the poorly documented Python Google Tasks API, and the Python curses interface (which is used for the user interface).

The best thing about knowing how to program is being able to create exactly the program you want in a few hundred lines of code.

Copyright © 2018 Ian Finlayson | Licensed under a Creative Commons Attribution 4.0 International License.