A tiny, fast command-line to-do manager that persists tasks in a plain CSV file—simple to inspect, easy to version, and zero setup beyond the binary.
Highlights
- Add, list, toggle, and initialize tasks via subcommands
- Auto-incrementing task IDs; human-readable storage
--createflag gracefully bootstraps a new CSV on first run- Robust parsing/serialization with
serde+csv - Polished CLI UX powered by
clap(help, version, usage)
Tech
- Rust •
clap•serde/serde_derive•csv• stdlib (HashMap,OpenOptions)
Why this project? I wanted a minimal, portable task tool that favors transparency (CSV over a DB) while showcasing idiomatic Rust CLI patterns, error handling, and file I/O. The result is a compact utility that’s easy to audit, script, and commit to git.
Sample usage
# Initialize a new list
todo tasks.csv init

# Add a task (creates the file if missing)
todo tasks.csv add "Write portfolio blurb" --create

# Show tasks
todo tasks.csv list

# Toggle completion by ID
todo tasks.csv toggle 3
