Command line interfaces (CLIs) can be as interactive, exciting, and beautiful as any desktop or web app. Like when building web apps, building an interactive CLI affords the developer many features, but comes with a frightening matrix of incompatibilities and quirks. James’ tutorial session will teach you how to use the many features and techniques available for building interactive CLIs, from progress bars and color to mouse input and animated graphics on the command line. You will learn how to detect when these features are available in a terminal and how to ensure your program works across different operating systems and terminals.