github.com · Saved

grit: A multitree-based personal task manager

github.com/climech/grit

Repository

climech/grit

Multitree-based personal task manager

Go · 1,701 stars · MIT · last push October 3, 2026

What Jamie wrote

I found this a fun project and a delightful README.

Grit is an experimental personal task manager that represents tasks as nodes of a multitree, a class of directed acyclic graphs. The structure enables the subdivision of tasks, and supports short-term as well as long-term planning.

I’m not terribly sure how my primary task manager OmniFocus manages data, but I assume it is some typical SQL like structure. This project attempts an entirely different approach. Most of it seems to end at the same spot as any other task manager with root nodes (projects) and other nodes (tasks) attached to those. But it gets interesting when they get to Links and Pointers.

One aspect where Grit differs from other productivity tools is the lack of tags. This is by choice—Grit is an experiment, and the idea is to solve problems by utilizing the multitree as much as possible.

How do we organize tasks without tags, then? As we add more and more nodes at the root level, things start to get messy. Running grit ls may result in a long list of assorted nodes. The Grit way to solve this is to make pointers.

It is cool that you can create a pointer that doesn't point to anything as a placeholder for a future decision.

Unrelated from the data structure, seeing command line fu like this makes me wish OmniFocus had a CLI interface.

$ for i in {1..35}; do grit add -p textbook "Chapter $i"; done

What a cool project. 🤓