# todo.txt in Go `todo.txt-go` is a CLI tool written in Go for [todo.txt](https://todotxt.org/). It provides an interactive TUI developped with [Bubble Tea](https://github.com/charmbracelet/bubbletea/). ![todo-txt demo](./demo.gif) ## Install Ensure that you have a supported version of Go properly installed and setup. You can find the minimum required version of Go in the [go.mod](./go.mod) file. You can then install the latest release globally by running: ```bash git clone https://5ika.ch/todo.txt-go.git cd todo-txt go install ``` `todo-txt` is now available in your CLI. ## Config Tasks are stored in a `todo.txt` file in the `TODO_DIR` directory. By default, the `TODO_DIR` is `$HOME/.todo` but you can change it with two ways: - By setting `TODO_DIR` environment variable ```bash export TODO_DIR=~/tasks todo-txt ``` - By using `-dir` flag ```bash todo-txt -dir ~/tasks ``` ## Keymaps - `A` or `+`: Add a new task - `Enter`: Edit focused task - `Space`: Check/Uncheck focused task - `a`, `b`, `c`: Set priority level for focused task - `z`: Clear priority of focused task - `p`: Sort task by priority - `s`: Sort task by date - `u`: Clear done tasks (move theme to *done.txt*) ## Features `todo-txt` is a TUI to manage todo list with [todo-txt format rules](https://github.com/todotxt/todo.txt) stored in a plain text file. ### Due date Additionnaly, it handles due dates as a [custom *key:value* metadata](https://github.com/todotxt/todo.txt?tab=readme-ov-file#additional-file-format-definitions). Example: ``` (B) Review pull request #123 @work +code due:2025-09-05 ``` ### Clear tasks history Done tasks are archived to *done.txt* file when `u` is entered. ## TODO - [x] Use _todo.txt_ file targeted by todo-txt.sh config - [x] Implement archive mecanism - [x] Allow task edition - [x] Allow to remove priority on task - [x] Circular navigation on tasks - [x] Provide config file with argument ## Ressources - - - -