A terminal-based todo list manager with vim-like keybindings, written in Rust.
tuido provides a modal interface for managing todo items with priorities, notes, and completion tracking. It features fuzzy search, undo/redo functionality, and supports exporting to multiple formats.
Build from source:
git clone https://github.com/Cod-e-Codes/tuido.git
cd tuido
cargo build --releaseThe binary will be available at target/release/tuido.
Run tuido:
./tuidoData is automatically saved to ~/.tuido.json. The application loads existing todos on startup and saves changes automatically.
j/k/↑/↓- Move up/downgg- Go to first todoG- Go to last todo0/$- Jump to first/last3j/5k- Repeat motion N times (any number 1-9)
i- Insert new todoA- Append new todo (same asi)e- Edit selected todox- Toggle completiondd- Delete todoo- Open note editorEsc- Exit current mode
y- Yank (copy) current or selected todo(s)p- Paste below current position.- Repeat last action (toggle/delete)
Copy and paste todos within the application. Deleted todos are automatically copied to the clipboard for easy recovery with p.
v- Enter visual modej/k- Extend selectionx- Toggle selected todosd- Delete selected todosy- Yank (copy) selected todosEsc- Exit visual mode
/- Start searchEnter- Confirm searchEsc- Clear search
u- UndoCtrl+r- Redo
Use : to enter command mode:
:q- Quit (warns if unsaved):q!- Force quit without saving:w- Save:wq- Save and quit:clear- Remove completed todos:sort- Sort by completion status:sort priority- Sort by priority:!cmd- Execute shell command:write <file>- Save to file:open <file>- Load from file:export <file>- Export to .txt or .md:help- Show help
Set priorities by prefixing todo text:
(A) High priority task(B) Medium priority task(C) Low priority task
Add detailed notes to any todo using the o key. Notes are stored with the todo and can be edited inline.
Fuzzy search supports:
- Exact text matching
- Subsequence matching
- Levenshtein distance matching
- Todo.txt: Standard todo.txt format with priorities and completion status
- Markdown: Checkbox format suitable for documentation
Full undo/redo support with up to 100 operations in history.
Todos are stored in JSON format at ~/.tuido.json:
[
{
"text": "Example todo",
"completed": false,
"priority": "A",
"note": "Optional note text"
}
]ratatui- Terminal user interfacecrossterm- Cross-platform terminal manipulationserde/serde_json- Serializationstrsim- String similarity algorithmsdirs- Home directory detection
