
Terminal-Based Presentations
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:
- Slides — The presentation CLI that renders markdown in your terminal
- Just — A command runner that orchestrates presentation tasks
📖 Read more about using just in my recent blog - GitHub CLI — Command line tool for GitHub
- 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:
- PlantUML for sequence diagrams
- Graph::Easy for component diagrams:
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
```
---

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.
~~~
```
---


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.

~~~just digraph https-handshake
A graphical representation of HTTPS handshake is displayed here.
~~~

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:

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