A tool for creating and maintaining a todo-list on the command line
After wasting tons of sticky notes in an attempt to keep myself organized, I decided I would benefit from a CLI as I do spend a lot of my time on my computer / in the terminal.
I decided to write a Rust alternative to the well known Task Warrior.
``` clido add "Write more examples for people" # Adds with no priority
clido add -p low "Do more things" # Adds a new todo with low priority
clido list # Outputs a table will all of the todos
clido mark 0 # Marks the 0th task as complete
clido del 0 # Deletes the 0th task ```
Currently the only way to install clido is using cargo:
- cargo install clido
Clido's commands follow the following format:
clido [Subcommand] [Flags] [Input]
clido has the following functionalities:
| Goal | Command | Options | Input |
|-----------------------------|------------|--------------------------------------------|---------------------------------------------------------|
| Add an item | clido add | -s --start
-d --due
-p --priority | "Put the task you want here" |
| Delete an item | clido del | | The ID number of the task you
want to delete. |
| Mark an item as
complete | clido mark | | The ID number of the task you
want to mark complete. |
| List items | clido list | -f --filter
-c --complete
-p --priority | Filters that an item must have
to be shown |
_CLIDO_DIR
$XDG_DATA_HOME
or $HOME/.local/share
| /home/alice/.local/share
|
| macOS | $HOME/Library/Application Support
| /Users/Alice/Library/Application Support
|
| Windows | {FOLDERID_RoamingAppData}
| C:\Users\Alice\AppData\Roaming
|Clido is still lacking many of the features I would like, such as: - [x] Groups (tags) - [x] Filters - [ ] Named Dates - [x] End Dates (via date) - [ ] Recurring Tasks (Marks self as pending every specified interval) - [x] Colors - [ ] Color Themes - [ ] Interactive marking / deleting using fzf - [ ] Configurable output
I plan to be adding these in over time, although I can't promise any dates. Feel free to leave suggestions for any other features that you would like to see on the list.
A good portion of the code that I use was possible thanks to a GitHub user ajeetdsouza, and their work on Zoxide. Clido is using many of the same features to Zoxide in order to make things work efficiently and quickly. I found their use of temp files worthwhile, and wanted to make sure that it would be similarly implemented for my program as well.