Cod-e-Codes / tuido

Terminal-based todo manager with Vim-style keybindings, written in Rust.

Home Page:https://github.com/Cod-e-Codes/tuido

Repository from Github https://github.comCod-e-Codes/tuidoRepository from Github https://github.comCod-e-Codes/tuido

tuido

A terminal-based todo list manager with vim-like keybindings, written in Rust.

Overview

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.

tuido

Installation

Build from source:

git clone https://github.com/Cod-e-Codes/tuido.git
cd tuido
cargo build --release

The binary will be available at target/release/tuido.

Usage

Run tuido:

./tuido

Data is automatically saved to ~/.tuido.json. The application loads existing todos on startup and saves changes automatically.

Keybindings

Navigation

  • j / k / / - Move up/down
  • gg - Go to first todo
  • G - Go to last todo
  • 0 / $ - Jump to first/last
  • 3j / 5k - Repeat motion N times (any number 1-9)

Editing

  • i - Insert new todo
  • A - Append new todo (same as i)
  • e - Edit selected todo
  • x - Toggle completion
  • dd - Delete todo
  • o - Open note editor
  • Esc - Exit current mode

Yank/Paste

  • 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.

Visual Mode

  • v - Enter visual mode
  • j / k - Extend selection
  • x - Toggle selected todos
  • d - Delete selected todos
  • y - Yank (copy) selected todos
  • Esc - Exit visual mode

Search

  • / - Start search
  • Enter - Confirm search
  • Esc - Clear search

Undo/Redo

  • u - Undo
  • Ctrl+r - Redo

Commands

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

Features

Priorities

Set priorities by prefixing todo text:

  • (A) High priority task
  • (B) Medium priority task
  • (C) Low priority task

Notes

Add detailed notes to any todo using the o key. Notes are stored with the todo and can be edited inline.

Search

Fuzzy search supports:

  • Exact text matching
  • Subsequence matching
  • Levenshtein distance matching

Export Formats

  • Todo.txt: Standard todo.txt format with priorities and completion status
  • Markdown: Checkbox format suitable for documentation

Undo/Redo

Full undo/redo support with up to 100 operations in history.

Configuration

Todos are stored in JSON format at ~/.tuido.json:

[
  {
    "text": "Example todo",
    "completed": false,
    "priority": "A",
    "note": "Optional note text"
  }
]

Dependencies

  • ratatui - Terminal user interface
  • crossterm - Cross-platform terminal manipulation
  • serde / serde_json - Serialization
  • strsim - String similarity algorithms
  • dirs - Home directory detection

About

Terminal-based todo manager with Vim-style keybindings, written in Rust.

https://github.com/Cod-e-Codes/tuido

License:MIT License


Languages

Language:Rust 100.0%