sad-slides
v1.0.2
Published
A CLI alternative to PowerPoint!
Readme
sad-slides
A CLI alternative to PowerPoint. Write your presentation in plain Markdown, present it full-screen in any terminal.

Installation
git clone https://github.com/Morkalork/ugly-point.git sad-slides
cd sad-slides
npm installUsage
With npm
npm start presentation.mdWith npx (no global install)
npx sad-slides presentation.mdReplace presentation.md with the path to your own file. See demo.md for a full-featured example, or mcp.md for a real presentation.
Navigation
| Key | Action |
| ---------------- | --------------------------------- |
| → or space | Next slide |
| ← | Previous slide |
| ↑ | Highlight the row above |
| ↓ | Highlight the row below |
| § | Clear the highlight |
| q or ctrl-c | Quit (cursor is restored) |
Resize the window any time — the current slide re-renders instantly to fit.
Writing slides
Slides are plain Markdown separated by --- on its own line:
# First slide
Some content here.
---
## Second slide
More content.Features
Block-letter titles
A slide that is only # H1 is rendered as large block-letter ASCII art using cfonts. If the title is too wide for the terminal a narrower font is tried automatically; if neither fits the slide falls back to a normal heading.
# Big TitleASCII title with subtitle
Pair # H1 with ## H2 (and nothing else on the slide) to get the block-letter title plus a thin separator line and a centered subtitle in plain text beneath it.
# Big Title
## A descriptive subtitleFull Markdown rendering
- Bold, italic, bold italic, ~~strikethrough~~
inline code- Links:
[text](url) - Headings at all six levels
- Blockquotes
Syntax-highlighted code blocks
Fenced code blocks are highlighted via cli-highlight. Specify the language for best results:
```typescript
function greet(name: string): string {
return `hello, ${name}`;
}
```Supported languages include TypeScript, JavaScript, Python, Bash, JSON, and many more.
Lists
Ordered and unordered lists with unlimited nesting. Bold, italic, and other inline formatting works inside list items.
* Top-level item
* Nested item
* Deeper stillTables
Standard Markdown GFM tables are rendered with aligned columns.
Emoji shortcodes
Write :tada: and it renders as 🎉.
Row highlighting
Press ↑ / ↓ to cycle an inverse-video highlight through the visible rows of the current slide — useful for pointing at a specific line during a live talk. Press § to clear it.
Auto-resize
The presentation re-renders to fill the terminal whenever you resize the window. No restart needed.
