A lightweight and blazingly fast CLI for managing todo.txt tasks, written in C.
Created as a first project/learning exercise and largely inspired by the todo.txt-CLI program.
Aside from as a way to learn programming I also wanted something that felt a bit less clunky + some aesthetic changes.
- Fully sticks to the todo.txt format specs.
- Highly portable with zero dependencies.
- todo.txt-CLI add-ons as basic functions such as auto-prepending of dates and task recurrence
- An additional TUI mode for bulk task management
- Relatively simple code (I think?)
Tasks can be added from the command line either by prompt, or directly by input.

Automatically parses and highlights the basic todo.txt tags:
-
Priorites (A) (B) (C), @context, +project, YYYY-MM-DD dates
-
Quick priority editing Instantly alter, add, or remove priorities as needed.

-
Sorting and filtering Can be changed to sort tasks by different tags by a single use, or by default, and can filter only specific terms or tags you want to see.
-
XDG-compliant By default, ToDo.C will use $XDG_DATA_HOME for the todo.txt and done.txt files, and $XDG_CONFIG_HOME for the
todorcconfiguration file
todoc ls
todoc add "(A) Stop procrastinating the +todoc readme"
todoc do 3
todoc depri 2
todoc --help
Also has built in support for due:date tag (sortable) and a 'recurrence' tag rec:xy.
Recurring tasks Using the rec: tag at the end of the task allows it to be re-created upon completion.
- New due-dates can be set as either the duration from the date-of-completion (Good for say, personal tasks such as exercising)
- Can also be set as the duration from the original due-date (Good for external calendar-based things, e.g. monthly payments, weekly events/deadlines etc)
due:2026-01-01 rec:1w
Completed 2026-01-03, now due:2026-01-08
due:2026-01-01 rec:1w+
Completed 2026-01-03, now due 2026-01-10
Can be accessed if todoc is used without any additional arguments.
While fiddling around with the terminal escape sequences, I accidentally ended up making a usable TUI for the program.
- Kept it simple and functional, still does not require any other dependency
- Can update higher quantities of tasks without repetitive CLI commands
- Change/remove highlighting for all tags however you like
- Automatically prepend the creation date to new tasks
- Change the default task sorting
- Disable confirmation prompts
A copy of todorc can be grabbed from source folder -> (todorc).
Clone and build:
git clone https://github.com/keegz94/todoc.git
cd todoc
make && sudo make installTo remove, simply remove the binary, data directory and config file/directory
$HOME/$XDG_DATA_HOME/todo/todo.txt
$HOME/$XDG_DATA_HOME/todo/done.txt
$HOME/$XDG_CONFIG_HOME/todo/todorc
- The original todo.txt-CLI program for being pretty effective against ADHD (imo)
Project licensed under the MIT License.


