7 releases

new 0.3.2 Jan 18, 2025
0.3.1 Jan 17, 2025
0.2.2 Dec 19, 2024
0.1.1 Dec 8, 2024

#1764 in Command line utilities

Download history 145/week @ 2024-12-01 249/week @ 2024-12-08 278/week @ 2024-12-15 9/week @ 2024-12-22 2/week @ 2025-01-05 76/week @ 2025-01-12

106 downloads per month

GPL-3.0-or-later

43KB
969 lines

toddi

Want to get things done? Pick a task, do it, and move on to the next one.

toddi will tell you exactly what to focus on, per project, based on your todo.txt tasks.

Why?

Why not?

I've been using todo.txt regularly for a few months, and I noticed that:

  1. I get distracted by the list of tasks.
  2. I can't be bothered to learn the various command line arguments to filter out the output
  3. I needed a way to focus on one task (the most important)

Hence, toddi. I'm building it to fit my purpose.

Which also turned out to be a good excuse to practice some Rust.

Features

Built around todo.txt data.

  • Focus mode with task completion
  • Display progress
  • Handle multiple todo.txt data sources

Requirements

toddi follows loosely todo.txt's task format and is capable of completing tasks on its own.

By default, the program assumes the default todo.txt paths in the absence of the relevant optional input:

  • ~/.todo-txt/todo.txt
  • ~/.todo-txt/done.txt

Task line format specification

The format for a task line should conform to todo.txt documentation.

E.g.:

(PRIO) Task's short description +project @context

The priority (PRIO) field is a single capital letter enclosed within parenthesis. Only one is allowed.

The task description field is a contiguous alphanumerical space-separated multiple-word sentence. It tolerates the following special non-alphanumerical characters: . _ - ' (i.e. dot, underscore, dash and apostrophe). Any other will invalidate the line.

The project field is an alphanumerical single word preceded by a + (plus) sign. Only one is allowed.

The context field is an alphanumerical single word preceded by a @ (at) sign. Only one is allowed.

The context and project fields can switch place between each other.

The format for a done line looks like this:

Done line format specification

x YYYY-MM-DD Task's short description +project @context

Note the x on the left.

Usage

If you trust your planning and just need a way to focus on the next task, use:

$ toddi

Display next todo.txt task for projects fleur and banane (i.e. +fleur and +banane on the task line) and a progress bar indicating the project's level of completion:

$ toddi projects fleur banane

Focus on the task (do not return to the shell) and queries you on whether the task is complete or not. Can be used with either one or no project name.

$ toddi focus
$ toddi focus fleur

Use --help for more information:

$ toddi --help

Configuration

A TOML configuration file is expected at the standard XDG_CONFIG_HOME location: $HOME/.config/toddi/config.toml

If not present, it will be automatically created and populated with mandatory default values on first use.

todo_files = ["/home/user/.todo-txt/todo.txt"]

License

source : GPL-3.0-or-later

Dependencies

~7–20MB
~210K SLoC