A simple clli todo app written in Rust.
$ list-rs
Welcome to list-rs, a cli todo app written in Rust 🦀!
Task list is empty.
Run list-rs add to add a new task.
Run list-rs --help to get all commands
$ list-rs add "Watch Oppenheimer"
Task Added
$ list-rs remove 3
Task 3 removed
$ list-rs update 3 "A new title"
Task 3 updated
$ list-rs done 4
Task 4 set to Done
$ list-rs undone 4
Task 4 set to Undone
$ list-rs archive 4
Task 4 set to Archived
$ list-rs
4) ⌛ Take vitamins
3) ⌛ Meditate
2) ⌛ Go to the gym
1) ⌛ Watch Oppenheimer
$ list-rs all
4) 📦 Take vitamins
3) ⌛ Meditate
2) ✅ Go to the gym
1) ⌛ Watch Oppenheimer
$ list-rs archived
4) 📦 Take vitamins
$ list-rs search "Hello"
6) ⌛ Hello World
5) ⌛ Hello
- CRUD Operations: Add, Delete, Update, and List all tasks.
- Automatic sorting by date created
- Option to mark tasks as "Done," "Undone," and "Archived."
- Task list persistent on disk using a database
- Undo/Redo operations with infinite history
- Search a task based on its content
- Configurable database path
- Implement task due dates
- Implement task tags
- Interactive mode
cargo b --release
cargo t --release
$ list-rs --help
Usage: list-rs [COMMAND]
Commands:
add Adds a task
remove Removes a task with a given id
update Updates a task with a given id
list Lists all pending tasks
all List all tasks
archived List archived tasks
archive Sets a task with a given id to Archived
done Sets a task with a given id to Done
undone Sets a task with a given id to Undone
search Search for a task by its contents
undo Revert last change
redo Redo last change
help Print this message or the help of the given subcommand(s)
Options:
-h, --help Print help
-V, --version Print version
Create a .env
file and add the following line
DB_PATH=/your/custom/path/tasks.db
- rusqlite (database)
- clap (argument parsing)
- colored (terminal pretty printing)
- chrono (datetime stuff)
- dotenv (for configuration purposes)