Some todo.txt interactions are better served by the CLI. Here are some examples:

🍱 Batch-adding heterogeneous todos

Adding multiple todos can be done with t add:

Example usage:

$ t add '
@mom teach me gooey-core mini-chocolate-cake recipe
@phone call Bob
x @pc cleanup tudor-cli notes'

See also: adding new tasks in the TUI

👁️ Quick glances

You can use t ls to look at the tasks that are available in a context, or what's actionable next for a project:

For example:

By default, some todos are hidden:

You can still display all todos via the --all flag.

In these views, the following todo properties are hidden:

The due date is shown only if it is close (< 1month) and it is colored in green, amber or red according to how close it is.

😴 Snoozing

You can snooze a todo (i.e., move its threshold date) by exact amounts, but also by random-ish amounts so that the todos don't all reappear on the same day if snoozing is done in a batch.

For example:

t snooze ~1w 1 2 4

... will set 3 different threshold dates for todo 1, 2 and 4.

The following snooze codes are available:

Snooze codeHuman snooze codeEffect
xNoneremoves threshold date
1dTomorrow1d (i.e., tomorrow)
~2d 🎲Two days1-3d
~1w 🎲About one week1w +/- 1d
~2m 🎲About two months2m +/- 5d
~1y 🎲About one year1y +/- 1w
2020-10-11Pick a date2020-10-11
next thursdayPick a datenext thursday
next weekNext weeknext monday (check locale)
nwNext weeknext monday (check locale)
next monthNext monthbeginning of next month
nmNext monthbeginning of next month

See also: The Napoleon technique involves postponing tasks, when progress is likely to be made on them by someone else over time without your input.

🪄 Autocompletion

Autocompletion is supported for contexts, projects and views.

For example, typing:

t ls @b⇥

...offers a list of completions, such as:


TODO: see oh-my-zsh autocompletion for stack for a good starting point for implementing zsh completions

⛑️ --help example

tudor-cli - A todo.txt CLI manager

Usage: t COMMAND

Available options:
  -h,--help     Show this help text

Available commands:
  add (a)                Add todo(s)
  append (app)           Append TEXT to target todo(s)
  archive (ar)           Archive completed todos
  clean (cl)             Archive completed todos, sort and
                         remove whitespace in todo.txt
  complete (do)          Mark the target todo(s) as done
  edit (e)               Edit todo.txt file with $EDITOR
  grep (gr)              Search for text in todos
  list (ls)              List all todos/views/@contexts/+projects
  prepend (pre)          Prepend TEXT to target todo(s)
  prioritize (pri)       Give PRIORITY to target todo(s)
  remove (rm, del)       Delete target todo(s)
  snooze (postpone, snz) Snooze target todo(s) by the given
  undo                   Mark target todo(s) as not done (to do)
  uncomplete             Mark target todo(s) as not done (to do)
  unprioritize (unpri)   Remove priority from target todo(s)
  contexts (ctx, ctxs)   List all the contexts
  projects (pj, pjs)     List all the projects
  inbox (in)             List todos in the inbox (i.e. todos without a

🎨 Prior art