/todo

Todo.txt terminal frontend

Primary LanguageRustGNU General Public License v3.0GPL-3.0

Todo

Build status License

Todo.txt terminal frontend

Features

  • Colored output, respecting native terminal colors
  • Better default sorting (deprioritizes tasks before threshold date, etc.)
  • FZF like menu with auto reload
  • Task recurrence, propagated to both t and due attributes, at 'do' time...
    • ...and after it if task was marked as done from another device
  • Auto archival of done tasks...
    • ...with compression for old tasks
  • Automatic backup
  • Undo
  • Report of tasks created/completed in the last N days
  • Task dependencies
  • Completely independant of todo.sh

Rationale

I have been a heavy Taskwarrior user for several years, but have been dissatisfied mostly with the inability to reliably share task handling between devices.

Thoughts on Taskwarrior

Strengths:

  • the data model does no force a way to manage tasks
  • ability to customize the formula that computes the priority values, and consequently the sorting of tasks

Weaknesses:

  • recurrence is not usable with more than one device without risking data loss or duplicate task creation
  • recurrence model is limited: next task is always created regardless if the previous one is still pending
  • no usable Android app
  • the command line tool task, has many bugs (breaking unicode strings, inconsistent option handling or formatting...)
  • the sync daemon is of proof of concept quality, and is terribly lacking both in its design and implementation

Todo.txt

Strengths:

  • has a very simple and flexible file format, which allows editing tasks by hand
  • consequently, syncing the file across devices is trivial (ie. with Syncthing) and merging modifications from devices also is
  • has several usable Android apps

Weaknesses:

  • no support for recurrence, waiting tasks, or dependencies out of the box, although this is for the most part commonly done with addons and custom attributes
  • none of the Android apps fully handle both rec and t
  • no smart task sorting the way taskwarrior does

Goals

The goals of this project is to improve the weaknesses of Todo.txt for my use cases, while keeping the flexibility, ease of sync, and existing ecosystem compatibility of the original text format.

Installation

You need a Rust build environment for example from rustup.

cargo build --release
install -Dm 755 -t /usr/local/bin target/release/todo

License

GPLv3