all repos — todo.txt-go @ a33a608f5eff930f21470f454e83f35ccf9f4a29

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- `Enter`: Edit focused task
46- `Space`: Check/Uncheck focused task
47- `a`, `b`, `c`: Set priority level for focused task
48- `z`: Clear priority of focused task
49- `p`: Sort task by priority
50- `s`: Sort task by date
51- `u`: Clear done tasks (move theme to *done.txt*)
52
53## Features
54
55`todo-txt` is a TUI to manage todo list with [todo-txt format rules](https://github.com/todotxt/todo.txt)
56stored in a plain text file.
57
58### Due date
59Additionnaly, it handles due dates as a [custom *key:value* metadata](https://github.com/todotxt/todo.txt?tab=readme-ov-file#additional-file-format-definitions).
60Example:
61
62```
63(B) Review pull request #123 @work +code due:2025-09-05
64```
65
66### Clear tasks history
67
68Done tasks are archived to *done.txt* file when `u` is entered.
69
70## Contribution
71
72Intrested by this project ? [Contact me](https://5ika.ch)
73
74## TODO
75
76- [x] Use _todo.txt_ file targeted by todo-txt.sh config
77- [x] Implement archive mecanism
78- [x] Allow task edition
79- [x] Allow to remove priority on task
80- [x] Circular navigation on tasks
81- [x] Provide config file with argument
82
83## Ressources
84
85- <https://github.com/charmbracelet/bubbletea>
86- <https://github.com/1set/todotxt/blob/master/task.go>
87- <https://github.com/todotxt/todo.txt>
88- <https://github.com/freitass/todo.txt-vim>