all repos — todo.txt-go @ c5899e9d434d528f19a7e775a4affb98efbae057

CLI tool for todo.txt files written in Go

README.md (view raw)

  1# todo.txt in Go
  2
  3`todo.txt-go` is a CLI tool written in Go for [todo.txt](https://todotxt.org/).
  4It provides an interactive TUI developped with [Bubble Tea](https://github.com/charmbracelet/bubbletea/).
  5
  6![todo-txt demo](https://vhs.charm.sh/vhs-3ivd1Kjd1okl3oVnh6Gflz.gif)
  7
  8## Install
  9
 10Ensure that you have a supported version of Go properly installed and setup.
 11You can find the minimum required version of Go in the [go.mod](./go.mod) file.
 12
 13You can then install the latest release globally by running:
 14
 15```bash
 16git clone https://5ika.ch/todo.txt-go.git
 17cd todo-txt
 18go install
 19```
 20
 21`todo-txt` is now available in your CLI.
 22
 23## Config
 24
 25Tasks are stored in a `todo.txt` file in the `TODO_DIR` directory.
 26By default, the `TODO_DIR` is `$HOME/.todo` but you can change it
 27with two ways:
 28
 29- By setting `TODO_DIR` environment variable
 30
 31```bash
 32export TODO_DIR=~/tasks
 33todo-txt
 34```
 35
 36- By using `-dir` flag
 37
 38```bash
 39todo-txt -dir ~/tasks
 40```
 41
 42## Keymaps
 43
 44- `A` or `+`: Add a new task
 45- `D` or `-`: Remove focused task
 46- `Enter`: Edit focused task
 47- `Space`: Check/Uncheck focused task
 48- `a`, `b`, `c`, `d`: Set priority level for focused task
 49- `z`: Clear priority of focused task
 50- `p`: Sort task by priority
 51- `s`: Sort task by date
 52- `u`: Clear done tasks (move them to *done.txt*)
 53- `?`: Show full help
 54
 55## Features
 56
 57`todo-txt` is a TUI to manage todo list with [todo-txt format rules](https://github.com/todotxt/todo.txt)
 58stored in a plain text file.
 59
 60### Due date
 61
 62Additionnaly, it handles due dates as a [custom *key:value* metadata](https://github.com/todotxt/todo.txt?tab=readme-ov-file#additional-file-format-definitions).
 63Example:
 64
 65```
 66(B) Review pull request #123 @work +code due:2025-09-05
 67```
 68
 69### Reccurring task
 70
 71`todo-txt` handles reccuring task with flag `freq`.
 72Example:
 73
 74```
 75(C) Update servers freq:month due:2025-09-05
 76```
 77
 78On check of this task, it will be duplicated with a new due date (`2025-10-05`).
 79If it doesn't have a due date, the next due date is calculated from today's date.
 80
 81Available frequency values are:
 82- `day`, `daily`
 83- `week`, `weekly`
 84- `month`, `monthly`
 85- `quarter`, `quarterly`
 86- `year`, `yearly`
 87
 88### Clear tasks history
 89
 90Done tasks are archived to *done.txt* file when `u` is entered.
 91
 92## Contribution
 93
 94Intrested by this project ? [Contact me](https://5ika.ch)
 95
 96## Ressources
 97
 98- <https://github.com/charmbracelet/bubbletea>
 99- <https://github.com/1set/todotxt/blob/master/task.go>
100- <https://github.com/todotxt/todo.txt>
101- <https://github.com/freitass/todo.txt-vim>