HACKER Q&A
📣 gjvc

What libraries does go have for building interactive shells?


I want to build a command line tool with context-sensitive completion. This is important because it allows interactive exploration of the options -- both of the application and of the current data model -- available to the user.

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.


  👤 abhijat Accepted Answer ✓
Do you want to build an interactive shell or a cli tool? For a custom shell I have used https://github.com/chzyer/readline before, but I did not work on it a lot.

I also wanted custom completions based on context and this readline implementation was decent for that.


👤 gjvc
https://github.com/spf13/cobra seems to be the most comprehensive, but honourable mentions go to all of the rest.