#tui #sqlite #forms #filter #render #crossterm #diesel #marker #bootstrap

bin+lib chloe_todo_tui

A terminal-based todo application with TUI

1 unstable release

Uses new Rust 2024

new 0.1.0 Nov 16, 2025

#1654 in Database interfaces

MIT license

37KB
949 lines

todo_tui

A keyboard-driven terminal UI for managing todos stored in a local SQLite database via Diesel. The app renders with ratatui and handles input through crossterm.

Features

  • Lists todos with priority color coding, timestamps, and completion markers.
  • Toggle completion, delete entries, refresh from the database, and filter between All/Active/Completed views.
  • Inline add form with multi-field editing (title, description, priority).
  • Automatic SQLite database bootstrap in ~/.local/share/todo_tui/todo_tui.sqlite with embedded Diesel migrations.

Controls

  • /k and /j: Navigate todos.
  • Space or Enter: Toggle completion.
  • Tab: Cycle filters.
  • a: Open the add form.
  • r: Refresh from the database.
  • d: Delete the selected todo.
  • q: Quit the app.

Add mode specific keys

  • Tab: Switch between title and description fields.
  • Backspace: Delete the last character.
  • / : Raise/lower priority (High/Low).
  • 1/2/3: Set priority to Low/Medium/High.
  • Enter: Submit the form.
  • Esc: Cancel.

Running locally

cargo run

The binary automatically applies pending Diesel migrations on startup and creates the SQLite database if it does not exist. Use CTRL+C or press q to exit the TUI.

Dependencies

~41–61MB
~1M SLoC