tododo 0.1.2

A minimal terminal todo manager built with Rust and Ratatui
Documentation
# 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

![Todo TUI demo](docs/vhs/readme.gif)

---

## 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
cat file.json | todo -i    # import JSON
```

---

## Keybindings

### Navigation

| Key       | Description    |
| --------- | -------------- |
| `j` / `k` | Move selection |
| `` / `` | Move selection |
| `Enter`   | Enter / back   |

### Actions

| Key     | Description       |
| ------- | ----------------- |
| `a`     | Create todo       |
| `space` | Toggle completion |
| `p`     | Cycle priority    |
| `e`     | Edit note         |
| `d`     | Delete todo       |
| `y`     | Confirm delete    |
| `n`     | Cancel delete     |

### Editing

| Key      | Description   |
| -------- | ------------- |
| `Ctrl+s` | Save          |
| `Esc`    | Cancel / back |

### Exit

| Key      | Description |
| -------- | ----------- |
| `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