demoshell

demoshell is a simplified shell for live demonstrations. It always shows the command prompt at the top of the screen and pushes command output down instead of letting it scroll up.

Source Codehttps://github.com/dhellmann/demoshell
PyPIhttps://pypi.org/project/demoshell/

Hey, speakers, if you’re doing live demos in a shell, clear the screen after every command to get the prompt back at the top, so folks in the back can see what you’re doing. #speakerlife #protip

— genehack @ #scale16x (@genehack) March 11, 2018

Huh?

POSIX shells print their output in such a way that it scrolls up and off the top of the screen because they are using tty semantics, which are based on hardware that used to literally print everything on a roll of paper that moved up through the machine and over the top.

It’s the 21st century. We don’t use paper-based terminals any more. While continuing to pretend we do is fine for day-to-day work, when we are giving live presentations it is not ideal because the most interesting thing you are doing is probably at the bottom of your screen during a live demo. That is the hardest part of the screen for people at the back of the room to see, because it is often blocked by other people’s heads.

demoshell avoids this problem by always keeping the command prompt at the top of the screen and showing the output of commands below, pushing older commands off of the bottom of the screen to make space for newer text.

Check the readme file for installation instructions. Patches and bug reports are welcome!

2018