loop-tui 0.1.0

A simple todo-list app, based on GTD - 'loop' from 'list of open points'
loop-tui-0.1.0 is not a library.

A simple todo-list TUI, loosely based on GTD. The name is short for list of open points.

loop is keyboard-driven and aims to be as simple as possible to use. It is my latest attempt to digitalize the list I've kept in paper on my desk for as long as I can remember. It is not the first such attempt; I've successfully failed to consistently use:

  • Todoist, although that one is great and if you're into cross-platform GUI stuff, give it a try.
  • Obsidian, which I still use for electronic note taking an organizing in general, just not for my LOOP.
  • a simple todo.txt, for which I'm just barely not boomer enough (which is what I like to tell myself about a number of things).

So loop is me disliking all terminal based apps I've found and writing my own, with the rationale that my paper list, while it has largely served me well, has also a few clear shortcomings, and perhaps since I already spend a good portion of my life staring at a terminal, perhaps this time is the charm.

Built with ratatui.

Features

  • Fast capture - press a, type a task, hit Enter.
  • Priorities - every task carries a priority, symboled and color coded.
  • Due dates - tasks have a due date, and you can sort by due date.
  • Recurrence - tasks can repeat weekly, monthly, quarterly, or yearly, with N days offset.
  • Sort by... - cycle between sorting by context, priority, both, ...
  • Local, plain-text storage - all stored in JSON on disk.
  • Sync across laptops - keep it simple; perhaps device2device over SSH?

Install

With Nix (recommended)

The repo ships a flake, so you can run it without cloning:

nix run github:cdbrkfxrpt/loop-tui

It's not in nixpkgs. I'm not convinced it should be. Let me know if you disagree.

With Cargo

cargo install loop-tui

Usage

Should be self-explanatory once you start it. Use either up/down or j/k to navigate up and down.

Data & configuration

loop uses your platform's conventional directories (via directories) under the org.cdbrkfxrpt.loop namespace:

  • Config (config.json) - eg, Linux: ~/.config/loop/
  • Data (data.json) - eg, Linux: ~/.local/share/loop/

See the directories docs for the paths on macOS and Windows.

License

MIT © Florian Eich

                                    ░░   █ ░░▀▒ █ ░░▀▒   ░░▀▒
                                  ░░▒▒   ░░▒▒ ▓ ░░▒▒ ▓ ░░▒▒ ▓
                                  ▒▒▓▓   ▒▒▓▓ ▀ ▒▒▓▓ ▀ ▒▒▓▓ ▀
                                  ▓▓█▀   ▓▓█▀ █ ▓▓█▀ █ ▓▓█▀▄█
                                  █▀▀    █▀▀  ░ █▀▀  ░ █▀▀
                                  ▀ ░░   ▀ ░░ ▒ ▀ ░░ ▒ ▀ ░░
                                  ░░▒▒   ░░▒▒ ▓ ░░▒▒ ▓ ░░▒▒
                                  ▒▒▓▓   ▒▒▓▓ █ ▒▒▓▓ █ ▒▒▓▓
                                  ▓▓██▄█ ▓▓██▄█ ▓▓██▄█ ▓▓██