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