How Sprig compares
Sprig is young, and every tool below is older, better known and more capable in some way. This page says what Sprig does differently and, for each alternative, what it does better. Every claim about another tool links to that tool’s own documentation. If a claim is wrong or out of date, open an issue and it will be fixed.
At a glance
Section titled “At a glance”| Nesting | Computes what’s blocked | Plans across files | Where it lives | Source | |
|---|---|---|---|---|---|
| Sprig | Yes, any depth | Yes, from after: |
Yes, grafts | Plain files, any editor | Spec |
| Markdown task lists | Yes, nested lists | No | No | Plain files, rendered almost everywhere | GFM |
| todo.txt | No, one task per line | No | No | One plain file, many apps | Format |
| TaskPaper | Yes | No | No | Plain files, best in the TaskPaper app | Guide |
| Org-mode | Yes | Partly, parent and child order | Agenda views gather files | Plain files, mostly Emacs | Manual |
| Taskwarrior | Through projects | Yes | Not files | Its own database, via the command line | Docs |
Markdown task lists
Section titled “Markdown task lists”GitHub-flavoured Markdown’s task list items
put [ ] and [x] in a list, and nest like any list.
Better than Sprig at: being everywhere. Every forge, notes app and chat tool renders them, and nobody has to learn anything.
What Sprig adds: statuses beyond done and not done, dependencies that are
computed, and files that graft into each other. Sprig deliberately does not
accept - [ ]; its settled arguments
explain why.
todo.txt
Section titled “todo.txt”The todo.txt format is one task per line,
with priorities, +project and @context tags, and key:value extensions such
as due:.
Better than Sprig at: being simple enough that dozens of apps implement it, and having done so for well over a decade.
What Sprig adds: nesting, notes that belong to a task, and dependencies. Sprig
borrowed key:value from todo.txt.
TaskPaper
Section titled “TaskPaper”In TaskPaper, a project is a line
ending in a colon, a task starts with a dash, and @tags carry optional values.
Better than Sprig at: being a polished app with searches, folding and stylesheets built around its format.
What Sprig adds: computed progress and blocking, and grafts. Sprig first used
TaskPaper’s trailing colon for groups and then moved to #, because notes ending
in a colon kept turning into headings; that argument is recorded in the
settled arguments.
Org-mode
Section titled “Org-mode”Org-mode can stop a parent
from being marked done while its children are open, and an ORDERED property
makes siblings wait on each other. Its agenda views
gather items from many files.
Better than Sprig at: almost everything else. Scheduling, clocking, tables, exports and literate programming, refined over more than twenty years.
What Sprig adds: a format small enough to implement from a spec in any language and read without Emacs, dependencies between any two items, and files that compose into one plan instead of being collected into a view.
Taskwarrior
Section titled “Taskwarrior”Taskwarrior tracks dependencies properly: blocked and blocking tasks feed into its urgency ranking. Since version 3 it keeps tasks in its own SQLite database.
Better than Sprig at: being a mature, fast command-line task manager with reports, filters and sync.
What Sprig adds: a plan you write and read as text, review in a diff, and edit in any editor, where Taskwarrior is a database you drive through commands.