ITNEXT

ITNEXT is a platform for IT developers & software engineers to share knowledge, connect…

Follow publication

Terminal-Based Presentations

A Guide to No-Fuss Technical Demos

Piotr
ITNEXT
Published in
4 min readNov 24, 2024

Introduction

Technical presentations often involve jumping between slides, terminal, and IDE. Picture explaining a Kubernetes deployment — you start with architecture slides, switch to terminal to show kubectl commands, jump to VS Code to explain YAML, then back to slides for the next topic. This context switching kills demo flow and wastes time.

Terminal-based presentations solve this by keeping everything in one place. You can:

  • Run live code demos
  • Show command outputs
  • Display ASCII diagrams
  • Keep everything in the terminal

If you prefer visual content, check out this companion video:

Prerequisites & Setup

To create terminal presentations, you’ll need 4 things:

  1. Slides — The presentation CLI that renders markdown in your terminal
  2. Just — A command runner that orchestrates presentation tasks
    📖 Read more about using just in my recent blog
  3. GitHub CLI — Command line tool for GitHub
  4. Terminal Slides Template — A ready-to-use template to get started

Using a terminal slides template, you can quickly create your own repo with a technical presentation.

Quick Start

Clone the template and create your presentation repository:

gh repo create --template piotr1215/terminal-slides-template --private your-slides-repo --clone

Make sure presentation files are executable:

chmod +x slides.md justfile

Optional Diagram Tools

For ASCII diagrams, you can also install:

First Presentation

Let’s break down how terminal presentations work. Every presentation consists of two main parts:

Front Matter

Every presentation starts with YAML front matter:

---
theme: theme.json
author: Your Name
date: MMMM dd, YYYY
paging: Slide %d / %d
---

💡 The theme.json file controls presentation styling, similar to CSS for web pages.

Content Slides

The best technical presentations show, not tell. Live demos are worth a thousand fancy powerpoint slides.

Slides are written in Markdown, separated by three dashes:

# First Slide

Some content

---

# Second Slide

More content

Make it nicer

The below elements are optional, but they make presentations more engaging and interesting for the audience.

Live Commands

Code and terminal commands can be executed in the slides and output visible immediately.

## We can execute code in slides

> Hit `Ctrl + e` to execute the below code block

```bash
ls -lah --color=always
```

---
output of ls command in slides

ASCII Art Titles and Stylized Intros

With tools like Figlet and Toilet, you can turn plain text into eye-catching ASCII art. Pair these with box effects from the Boxes utility for a polished look.

```bash
~~~just intro Title with Figlet
This will render the presnetation title.
~~~
```


---

```bash
~~~just intro_toilet Alternative Title with Toilet
This will render the presnetation title.
~~~
```


---
title with figlet and boxes
title with toilet and boxes

ASCII Diagrams

Using tools like PlantUML and graph-easy, we can add diagrams to our presentations and explain important concepts in a more approachable way.

plantuml sequence diagram output
~~~just digraph https-handshake
A graphical representation of HTTPS handshake is displayed here.
~~~
graph-easy output in the terminal

Custom Theme

Using a theme JSON file, you can customize the entire look of your presentation:

  • Adjust colors, fonts, and margins to suit your branding or personal preference.
  • Example themes can be found in the Glamour repository.

For example, the below snippet:

- Zsh Line Editor: *`man zshzle`*
- Moreutils (sponge): *”The Power of Moreutils: 8 Advanced Linux Command Line Tools”*
- Pattern Matching: *`man zshexpn`*
- Widget System: *`man zshcontrib`*

will render as:

custom rendering

Thanks to these settings in the theme.json

"emph": {
"color": "#f1fa8c",
"bold": true,
"italic": false,
"prefix": " <----- ",
"suffix": " "
},

Closing Thoughts

Technical presentations are mostly about running executing code, running commands or showing how to accomplish a task. While terminal-based presentations may require a slight learning curve, the benefits in terms of demo quality and presenter comfort are substantial. They’re particularly well-suited for technical audiences who appreciate seeing real-world application of concepts.

Remember, the goal is to effectively communicate your ideas and demonstrate your expertise. Terminal-based presentations provide a powerful tool to achieve this, especially for technical topics where hands-on demonstration is key.

Thanks for taking the time to read this post. I hope you found it interesting and informative.

🔗 Connect with me on LinkedIn

🌐 Visit my Website

📺 Subscribe to my YouTube Channel

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

Published in ITNEXT

ITNEXT is a platform for IT developers & software engineers to share knowledge, connect, collaborate, learn and experience next-gen technologies.

Written by Piotr

My mission is to share enthusiasm and appreciation for digital technology. I want to inspire you to try tools, create and use software and learn new things.