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!
Installation
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!
Commands and flags
Flags
-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!
Commands
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 todo Providing -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 label Providing -rm <Id of tag> to remove the tag completely Providing -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