/goo

CLI Todo List made in Go that supports tagging and different files

Primary LanguageGoMIT LicenseMIT

Tests codecov Go Report Card

Goo

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
version Prints the current goo version goo version