# Slides

> Terminal presentation tool that renders markdown files as slides, with in-slide code execution, pre-processing, live reload, and SSH serving.

Stars: 11.7k · Language: Go · License: MIT · Categories: Productivity

- Repository: https://github.com/maaslalani/slides
- Website: http://maaslalani.com/slides/
- Page: https://www.trmn.sh/tools/slides

## Install

- Homebrew: `brew install slides`
- Snap: `sudo snap install slides`
- Go: `go install github.com/maaslalani/slides@latest`

## Overview

Slides is a terminal-based presentation tool written in Go. A presentation is a single markdown file, with slides separated by `---`. Running `slides presentation.md` displays it in the terminal, and the file is watched so edits update the presentation live. It also accepts markdown on stdin, for example `curl http://example.com/slides.md | slides`.

Code blocks on a slide can be executed with ctrl+e, and the output is shown at the end of the current slide. Slides can also be pre-processed: a block fenced with three tildes holds a command, its contents are passed as stdin, and the block is replaced with the command's stdout. An example in the README uses `graph-easy --as=boxart` to draw diagrams. For security, pre-processing only runs on files with execute permission (`chmod +x`).

Navigation uses vim-style and arrow keys, including numeric prefixes (`gg` for first slide, `G` for last, number + `G` for a specific slide). Pressing `/` searches slides with a regular expression, and ctrl+n jumps to the next match. Optional YAML front matter sets a glamour JSON theme (local path or remote URL), author, date format, and the paging string.

`slides serve [file]` hosts a presentation over SSH, so viewers or the presenter can connect with a plain `ssh` client without installing slides or having the file. It suits developers and speakers who want to write and deliver talks, including live code demos, without leaving the terminal.

### Installation

```bash
# via Homebrew
brew install slides
```

```bash
# via Snap
sudo snap install slides
```

```bash
# via Go
go install github.com/maaslalani/slides@latest
```

![Slides Presentation](https://media.trmn.sh/cached/d40db981b0458b4cb43e10b64645ae2ebe19fc7f6a5f8ad52bc91d80b9a5222b.gif)

## Alternatives

- [cheat](https://www.trmn.sh/tools/cheat.md): CLI tool for creating and viewing interactive command-line cheatsheets with tagging and search capabilities (Go, 13.5k stars)
- [gopass](https://www.trmn.sh/tools/gopass.md): Command-line password manager compatible with pass, supporting GPG encryption, Git versioning, and team collaboration (Go, 7.3k stars)
- [WTF](https://www.trmn.sh/tools/wtf.md): Terminal dashboard (wtfutil) that shows data from services like GitHub, Google Calendar, Trello and OpsGenie in configurable modules. (Go, 17.1k stars)
- [Ticker](https://www.trmn.sh/tools/ticker.md): Terminal stock, crypto, and derivatives price watcher with position tracking, cost basis lots, currency conversion, and grouped watchlists. (Go, 6.3k stars)
- [Pop](https://www.trmn.sh/tools/pop.md): Send emails from the terminal via a TUI or CLI flags, using Resend or SMTP, with Markdown bodies, attachments, and AI agent skill support. (Go, 2.9k stars)

---

Canonical: https://www.trmn.sh/tools/slides
