A simple CLI todo list written in Go that supports different files, editing and tags!
Example
goo -f path/to/a/file.json listOr using the default file (~/.goo.json)
goo add Hello World!Using go
go install github.com/Hydoc/goo@latestNote 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 -idProviding -tid <Id of todo> to show all tags on that todoProviding -id <Id of tag> to show all todos for that tag |
goo tagsgoo tags -tid 1goo 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 -rmProviding -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 1goo tag -c Hello Taggoo tag -rm 1goo tag -rm 1 1 |
version |
Prints the current goo version | goo version |