# todo
A minimal terminal todo manager.
Designed for keyboard-driven workflows with a focus on simplicity and low overhead.
---
## Installation
Install from crates.io:
```bash
cargo install tododo
````
Run:
```bash
todo
```
---
## Demo

---
## Quick Start
```bash
todo
```
Inside TUI:
* `a` — create todo
* `space` — toggle completion
* `e` — edit note
* `q` — quit
---
## Features
* Create, update, and delete todos
* Mark todos as done / undone
* Priority levels
* Inline note editing
* Fully keyboard-driven interaction
* SQLite-based persistence (no external dependencies)
* CLI and TUI modes
* JSON import / export support
---
## Usage
### TUI Mode / CLI Mode
```bash
todo -l # list todos
todo add "title" # add todo
todo add "title" -c note # add with note
todo add "title" -p S # add with priority
todo done 1 # mark as done
todo delete 1 # delete
todo comment 1 "note" # update note
todo json # export JSON
---
## Keybindings
### Navigation
| `j` / `k` | Move selection |
| `↑` / `↓` | Move selection |
| `Enter` | Enter / back |
### Actions
| `a` | Create todo |
| `space` | Toggle completion |
| `p` | Cycle priority |
| `e` | Edit note |
| `d` | Delete todo |
| `y` | Confirm delete |
| `n` | Cancel delete |
### Editing
| `Ctrl+s` | Save |
| `Esc` | Cancel / back |
### Exit
| `q` | Quit |
| `Ctrl+c` | Force quit |
In delete confirmation, `q` cancels the modal.
---
## Data Storage
* Path: `.todo/todo.db`
* Database: SQLite
Completed todos older than 30 days are hidden by default.
---
## Limitations
* Local-only (no sync)
* No tagging or grouping
* No configuration system
---
## License
MIT