A CLI tool for manipulating slide presentations (Slidev markdown and reveal.js HTML).
| Command | Description | Example |
|---|---|---|
slides |
List slide numbers and titles | dex slides acme/ |
slide |
Print raw slide content | dex slide 3 |
copy |
Copy slides between decks | dex copy dir1/1-3 dir2/5 |
delete |
Delete slides from a deck | dex delete 3 |
insert |
Insert a new blank slide at a position | dex insert 3 "New Slide" |
move |
Reorder slides within a deck | dex move 2 4, dex move 2 +1 |
rename |
Rename the deck title | dex rename "New Title" |
rename-slide |
Rename a slide's title | dex rename-slide 3 "Hi" |
swap |
Swap two slides (same or different decks) | dex swap 1 3 |
ui |
Interactive TUI for reordering slides (lipgloss styled) | dex ui |
new |
Scaffold a new presentation directory | dex new "My Talk" |
brew tap StephanSchmidt/dex
brew install dexgo install github.com/StephanSchmidt/dex@latestEach presentation is a directory containing a slides.md (Slidev) or index.html (reveal.js) file.
The format is auto-detected from the file extension; use --format to override.
dir/ or dir resolves to the default file for the active format; bare ranges use the current directory.
3 single slide
1-3 slides 1 through 3
1,2,7 specific slides
-1 last slide
1:-1 all slides
dir/1-3 slides 1-3 from dir/slides.md
dex slides # list all slides in ./slides.md
dex slides acme/ # list slides in acme/slides.md
dex slide 3 # print raw markdown of slide 3
dex copy dir1/1-3 dir2/5 # copy slides 1-3 from dir1, insert before slide 5 in dir2
dex delete 3 # delete slide 3
dex delete acme/1,3 # delete slides 1 and 3 from acme/
dex insert 3 "New Slide" # insert a new slide before slide 3
dex insert acme/2 "Intro" # insert at position 2 in acme/
dex move 2 4 # move slide 2 to position 4
dex move 2 +1 # move slide 2 down by one position
dex move 4 -2 # move slide 4 up by two positions
dex rename "New Title" # rename the deck title in metadata
dex rename "New Title" acme/ # rename deck in acme/slides.md
dex rename-slide 3 "New Title" # rename slide 3
dex rename-slide acme/3 "Hi" # rename slide 3 in acme/slides.md
dex rename-slide 1,3 "Same" # rename slides 1 and 3
dex swap 1 3 # swap slides 1 and 3
dex swap acme/2 other/1 # swap across decks
dex ui # interactive slide reordering (styled TUI)
dex ui acme/ # reorder slides in acme/
dex new "My Talk" # scaffold my-talk/make build # compile binary
make test # run tests
make lint # go vet
make install # go installMIT