command-line program to manage my daily todo lists [go]
add new "latest" command


browse  log 



You can also use your local clone with git send-email.


Planfile is a small command-line program written in Go to manage my daily plaintext todo files. It's inspired by the now infamous John Carmack .plan file, but I've made some tweaks.


This is a stock Go project. Nothing special here.

$ go build


Planfiles are plaintext named with the format YYYY-MM-DD.plan. The first character of the line determines the kind of entry, followed by a space.

  • Open Tasks: lines starting with _
  • Finished Tasks: lines starting with *
  • Abandoned Tasks: lines starting with x
  • Tomorrow Tasks: lines starting with t
  • Notes: lines starting with >


_ Something that needs doing
* Did this already
_ Some other thing that needs doing
x Not going to do this after all

> A note
> Another note

t Something to worry about tomorrow


$ planfile
( or )
$ planfile today

The today command is the default and will result in there being a planfile for today in the current directory. There will also be an attempt at opening today's planfile with a text editor.

  • If there are no prior planfiles a new empty file will be created for today.
  • If there are previous days' planfiles in the current directory the most recent one will have its contents copied and migrated to today's.
  • If today's planfile already exists no changes are made.

Migration rules from a previous day's planfile are as follows:

  • Whitespace between entries is kept.
  • Finished and abandoned tasks are removed.
  • Tomorrow tasks are converted to open tasks.
$ planfile latest

The latest command will attempt to open the most recent planfile from the current directory. It will not create any new files, and it will also ignore any planfiles dated in the future.