explaingit

maaslalani/slides

11,513GoAudience · developerComplexity · 2/5Setup · easy

TLDR

A command-line tool that turns a plain Markdown file into a terminal slide presentation, with live reload, executable code blocks, and SSH sharing, no GUI required.

Mindmap

mindmap
  root((slides))
    What it does
      Terminal presentations
      Live code execution
      SSH sharing
    Tech Stack
      Go
      Markdown
    Features
      Live reload
      Custom themes
      Shell pre-processing
    Audience
      Developers
      Tech speakers
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Give a live coding talk in a terminal where you run code snippets on individual slides during the presentation

USE CASE 2

Write and iterate on a presentation as a single Markdown file, seeing changes reflected instantly without restarting

USE CASE 3

Share a presentation over SSH so remote attendees can view it in their own terminal without installing anything

Tech stack

GoMarkdown

Getting it running

Difficulty · easy Time to first run · 5min

In plain English

Slides is a tool for creating and delivering presentations entirely inside a terminal window. Instead of opening a program like PowerPoint or Google Slides, you write your presentation as a plain text file using Markdown, then run a command to present it. The slides show up in the terminal, and you move between them using arrow keys or other keyboard shortcuts. Writing a presentation means creating a single Markdown file where each slide is separated by three dashes on their own line. Text, headings, and formatting work the same way Markdown always does. The tool watches the file for changes while you are presenting, so edits appear live without restarting. One distinct feature is code execution. If a slide contains a code block, you can press a keyboard shortcut during the presentation to run that code and display the result at the bottom of the slide, directly in the terminal. There is also a pre-processing feature where you can embed a shell command whose output replaces a placeholder block before the slides are shown, useful for generating diagrams or other dynamic content from external tools. The presentation can be customized with a short section at the top of the Markdown file that sets a theme, an author name, a date format, and a slide counter format. Themes are JSON files that control colors and styling. All of these fields are optional, and the tool uses sensible defaults if you skip them. Slides can also be served over SSH. Running a serve command on one machine lets anyone with SSH access view the presentation on their own computer without installing the tool or downloading the file. The project is available through Homebrew, Snap, the Arch Linux user repository, and as a Go binary, and it was inspired by a similar project called lookatme.

Copy-paste prompts

Prompt 1
I want to create a terminal presentation using the slides CLI tool that includes runnable Go code blocks. Show me the Markdown file structure I need and how to execute code during the talk.
Prompt 2
How do I create a custom JSON theme file for the slides CLI tool to change the colors and fonts in my presentation?
Prompt 3
Set up the slides tool to serve my Markdown presentation over SSH so my remote team can view it without installing slides themselves.
Prompt 4
Write a slides Markdown file that uses a pre-processing shell command to generate a diagram and embed the output as a slide.
Open on GitHub → Explain another repo

← maaslalani on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.