So far this is what I've found.
https://github.com/desertbit/grumble
https://github.com/spf13/cobra
https://github.com/urfave/cli
https://github.com/abiosoft/ishell
I would like to know people's experiences and recommendations in building such an app in go.
I also wanted custom completions based on context and this readline implementation was decent for that.