Skip to content

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.

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

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.

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.

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 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 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.