A simple CLI todo list written in Go that supports different files, editing and tags!
Example
goo -f path/to/a/file.json list
Or using the default file (~/.goo.json
)
goo add Hello World!
Using go
go install github.com/Hydoc/goo@latest
Note Don't forget to add the $HOME/go/bin to your $PATH
export PATH=$PATH:$HOME/go/bin && goo add I did it!
-f, --file
: Path to the file to use (defaults to~/.goo.json
, if it does not exist it gets created (has to be json). The flag should always be before the subcommands)goo -f path/to/my-file.json add Hello World!
Command | Description | Example |
---|---|---|
add |
Adds a new todo to the given list | goo add Hello World! |
rm |
Removes a todo by its id | goo rm 1 |
edit |
Edits a todo by its id and a new label. Use curly braces ({} ) to insert old value |
goo edit 1 {} World |
toggle |
Toggle the done state of a todo by its id | goo toggle 1 |
list |
List all todos in the file | goo list |
clear |
Clear the whole list | goo clear |
swap |
Swap the label of two todos by their id | goo swap 1 2 |
tags |
Shows all tags Has two optional flags -tid and -id Providing -tid <Id of todo> to show all tags on that todoProviding -id <Id of tag> to show all todos for that tag |
goo tags goo tags -tid 1 goo tags -id 1 |
tag |
Tag a todo with the provided tag and todo id. The first argument is the tag id, the second the todo id Has two optional flags -c and -rm Providing -c <Label of a tag to create> to create a new tag with that labelProviding -rm <Id of tag> to remove the tag completelyProviding -rm <Id of tag> <Id of todo> to remove the tag from the todo |
goo tag 1 1 goo tag -c Hello Tag goo tag -rm 1 goo tag -rm 1 1 |
version |
Prints the current goo version | goo version |