Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Amjith Ramanujam - Awesome Command Line Tools

Amjith Ramanujam - Awesome Command Line Tools

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.

https://us.pycon.org/2017/schedule/presentation/518/

PyCon 2017

May 21, 2017
Tweet

More Decks by PyCon 2017

Other Decks in Programming

Transcript

  1. CHECKLIST ❏ Persistent History ❏ History search ❏ Emacs Keybindings

    ❏ Paged Output ❏ Auto-Completion ❏ Minimal Config ❏ Syntax Coloring
  2. CHECKLIST ✓ Persistent History ✓ History search ✓ Emacs Keybindings

    ❏ Paged Output ✓ Auto-Completion ✓ Minimal Config ✓ Syntax Coloring