Skip to content
Using mdt to manage project tasks
4 min read

I manage various projects and not all of their tasks end up in Things, my default task manager. For all coding projects, for example, I like to keep a list of todos in a simple markdown file called TODO.md.

This is for various reasons, among which:

  • some of these tasks are not that important, they’re just a maybe/someday reminder
  • it’s easier to ask Claude to help me out with these tasks if they’re already in the project folder in text format

Most of the CLI tools i found online are an over-kill for what I need 1 but, after a bit of searching, I found one that does almost exactly what I want: mdt.

mdt is inspired by t but it’s a “bit less nerdy"" since it offers an interactive TUI (Terminal User Interface) and uses simple markdown files with checkboxes.

mdt gif preview

It ticks all the boxes:

  • Each project has its own list of tasks, stored in a TODO.md file
  • It’s focused since, when working on a project, I only see tasks from that project
  • It emphasises adding and completing tasks, instead of managing them 2
  • It’s nice to look at and to use
  • I can edit and manage tasks in bulk using any text-editor

Still, mdt has some shortcomings and it’s not been updated in a few years. For this reason I’ve now forked the repo on GitHub and started modifying it to fit my workflow a bit better and fix some bugs. A few examples:

  • mdt "Buy milk" — add task directly from command line
  • mdt -l — list tasks with numbers and summary (scans subfolders)
  • mdt -l keyword — filter tasks containing “keyword”
  • mdt -c 2 — toggle task 2 complete/incomplete
  • mdt -d 3 — delete task 3
  • mdt -e — open in default editor (or mdt -e 2 to jump to task 2)
  • mdt --clear — remove all completed tasks
  • ESC navigates back instead of quitting
  • Works with TODO.md files that have no headers
  • Opens default markdown app on macOS when no $EDITOR is set

Feel free to follow the project and contribute but be aware that I don’t plan on adding a lot more since I want to stick to this core concept:

It’s easy to say “I’ll just organize my todo list a bit” and spend 15 minutes tagging your tasks. In those 15 minutes you probably could have finished a couple of them.

t was inspired by j. It’s simple, messy, has almost no features, and is extremely effective at the one thing it does. With t the only way to make your todo list prettier is to finish some damn tasks. 3

Footnotes

  1. See todo.txt and TaskWarrior.

  2. Even if mdt also supports multiple lists and headings if you want to get more organised

  3. sjl/t: A command-line todo list manager for people that want to finish tasks, not organize them