gitmyhub

slides

Go ★ 12k updated 1y ago

Terminal based presentation tool

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.

GoMarkdownsetup: easycomplexity 2/5

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.

Where it fits