When we program on a Unix machine, we often use a terminal window. But what does a terminal program do? What is it trying to emulate, what features does it support, and how can you take advantage of it when you’re working? Why does it work the way it does, anyway? And using a bit of Python and understanding of what’s happening behind the scenes, what sorts of interesting things can we do? In this talk, Thomas Ballinger answers al of these questions, mixing his descriptions with extensive live-coding demos.