Single file TODO

Posted on 13/03/2016

There are thousands of apps, websites, scripts, extensions and whatnots that help you deal with personal TODOs, and I've tried a fair number of them. Major ones, unknown ones, ugly, fancy, functional, paid and free. Which one I find the best? Single text file. I'll explain why.

Before I start, make sure you understand that I'm talking about personal TODOs, not something used for teams. You can still use this system when you're working on your tasks though.

The main reason none of the existing solutions worked, is that they are not intuitive enough for my liking. Exactly the same reason I often write things down, instead of typing. Handwriting allows you to have micro-expressions that you associate with more things in your memory. Same thing with simple text files. You can indent as much as you want, add other characters, paste paragraphs if you're in a hurry, and not follow any rules someone else imposed on you.

There are several reasons why this works better than anything else:

  • No need for special software. This works with any computer, phone, tablet as well as in SSH and RDC.
  • You control where your data is stored. You can have it under version control, Dropbox or use something like rsync.
  • You can get as kinky as you want with the text editor because .txt doesn't care: Vim, emacs, Sublime, IDE, whatever strikes your fancy.
  • The principle is as simple as it can be, so even if others need to look up your todo list, it is self explanatory.

If you prefer seeing everything on Github, check it out here.

The system



Denotes a regular task that needs to be done. Most of the items on the list will use this.


Completed task. Think of this as a rotated checkmark.


Task that needs to be thought about (e.g. figure out a way how execute something), or simply something that might be removed from the list (e.g. not sure if it's really needed).


Important tasks; for example the ones that need extra attention, be completed first, etc.


Postponed tasks; tasks that need some discussion.


Removed tasks; left for reference.



Just indent them using 2 spaces (1 tab). Example:

  1.     - parent task
  2.       - child task 1
  3.       - child task 2

If storing everything in the same file, date goes at the beginning of the file. Tasks are indented by one tab (2 spaces) to make the date stand out a bit. For example:

  1.     2016.01.01.
  2.       > task one
  3.       > task two
  4.       - task three
  5.       - task four
  6.       ? task five
  7.       ~ task null

Use the following format: YYYY.MM.DD..


Sometimes it's good to leave a timestamp in the list; indent it with two tabs and place on a new line, right under the previous task or at the top of the list. Next tasks goes right under. For example:

  1.     > task one
  2.         14:00
  3.     - task two

Use 24 hour format.

Some notes

  • Avoid Notepad on Windows, because it has very limited undo memory, though any text editor will work, including LibreOffice and MS Word.
  • I recommend using monospace fonts, to keep everything aligned better.
  • To sync this between the computers you can use Dropbox, rsync or Git.
  • Honorable mention: Todo.txt