basics / 01 of 13
Introduction
kyma turns one markdown file into a slide deck you present in the terminal, with animated transitions between the slides.
What kyma is
kyma reads a markdown file and shows it as slides in your terminal. A line of four dashes splits the file into slides, and each slide can open with a little YAML, its front matter, that sets its transition, border, colours, theme and layout. Moving from one slide to the next plays a short animation: the slides swipe, slide, flip, collapse or dissolve into each other.
It’s made for giving talks from the place you already write code. The deck is a text file you keep in git, the terminal is the projector, and saving the file while you present updates the slide on screen.
What it isn’t
- An exporter. There’s no PDF, HTML or image output. A kyma deck is presented in a terminal, or shared as the markdown it’s written in.
- A slide editor. There’s no canvas to drag things around on. You write markdown, and grid tags when you want columns.
- Mouse-driven. Everything is on the keyboard. Presentation clickers work too, because they send Page Down, Page Up and F5.
Timeline
2026
- Presentation clickers work: Page Down and Page Up move between slides, and F5 goes back to the first.
- Grids are rewritten as nested
[grid],[row]and[col]tags, with sizes, gaps, padding, alignment and borders. - Master layouts, filled from slots.
- Grids are rewritten as nested
- Building kyma needs Go 1.26.
- The
collapse,expandandfadetransitions. - The timer is back.
- The
2025
- kyma is relicensed under the GPL-3.0.
- A slide taller than the terminal shows a message instead of a broken frame.
- Transitions between slides of different heights stop crashing.
- A slide’s own style wins over its preset’s.
- A new markdown parser and renderer.
- Images, drawn by chafa.
kyma docs, a tour deck built into the binary.- The timer is switched off for dropping frames.
v0.2.0
- Speaker notes in a second terminal, with
kyma -n.
- Speaker notes in a second terminal, with
- kyma’s first time on stage, at Laravel Greece’s 10-year meetup in Athens.
v0.1.8
- Line-highlighted code blocks.
- A timer for the talk and for each slide.
- A log file, with
-lto choose where.
v0.1.7
- Jumping several slides at once.
- Live reload is on by default, and
-sturns it off. - The first release binaries.
v0.1.6
- Go to slide.
v0.1.5
- The command palette.
v0.1.4
- kyma.yaml, with a global style and named presets, and
-cto pick the file. - Home, End,
0and$go to the first and last slide.
- kyma.yaml, with a global style and named presets, and
v0.1.3
- Glamour themes, and custom themes from JSON.
v0.1.2
swipeRight.- Going back plays a transition in reverse.
- Live reload, which keeps your place in the deck.
v0.1.0
layoutplaces a slide’s content inside its frame.
- Front matter: each slide sets its own transition and style.
swipeLeftandflip.
slideUpandslideDown.
- The first commit: markdown rendered with Glamour, and switching between slides.
Where to go next
- Installing kyma.
- A first deck: three slides, presented and edited live.
- Slides and front matter: every key a slide can set.