Designing a good command line tool is challenging. Command line tools look archaic compared to modern graphical interfaces, discoverability is a big issue for command line tools, proactive help is hard to implement. This talk will cover a set of specific techniques to help alleviate those challenges.
How did [pgcli](http://pgcli.com) and [mycli](http://mycli.net) overcome these problems? We will cover specific examples where command line apps shine. The examples will be drawn from pgcli, mycli and [bpython](http://bpython-interpreter.org/). This talk will suggest libraries and show how they can help you implement a wonderful command line interface.
The libraries covered in this talk include [python-prompt-toolkit](https://github.com/jonathanslenders/python-prompt-toolkit), [pygments](http://pygments.org/), [click](http://click.pocoo.org/), [fuzzyfind](https://github.com/amjith/fuzzyfinder).
The goal of the talk is to distil the ideas that exist in successful command line applications as guidelines for building powerful command line applications.