# TodoApp A terminal app for Pi project todos. The Bubble Tea UI browses and searches a project's `.pi/todos` directory, shows full Markdown bodies, and creates, edits, closes, and reopens todos. The `internal/todos` storage package uses Pi-compatible Markdown files, `.lock` files, and atomic replacements for edits. ## Run Requires Go 1.24 or newer and a terminal. ```bash go run . # inspect the current project go run . --project /path/to/repo # inspect another project go test ./... ``` If `.pi/todos` does not exist, the app shows an empty state without creating files. Bad todo files are reported as warnings without hiding valid todos. If the project path is invalid or the todo directory cannot be read, it exits with an error. ## Controls - `↑`/`↓` or `j`/`k`: select a todo; `Enter`: view its full Markdown body. - `/`: search titles, IDs, tags, statuses, and body text. Type to filter, then `Enter` or `Esc` to finish. In the list, `Esc` clears the filter. - In detail view, use `↑`/`↓`, `PgUp`/`PgDn`, `Home`/`End` to scroll; `Esc` returns to the list. - `n`: create a todo; `e`: edit the selected todo (also works in detail view). - In the editor, `Tab`/`Shift+Tab` moves between title, comma-separated tags, and Markdown body. `Enter` adds a line in the body. `←`/`→` moves the cursor; `Ctrl+S` saves. `Esc` cancels, with confirmation if there are unsaved changes. - `x`: close the selected todo; `o`: reopen a closed todo. Both ask for confirmation (`y`/`n`). - `r`: reload todos from disk; `q` or `Ctrl+C`: quit.