Command guide
Type these commands in a terminal. Replace my-talk.md with your own slide filename; in a folder that has a slides.md you can leave it out. If a folder or filename contains spaces, put the path in quotation marks.
For how the commands, the views and the servers fit together, see Views, commands and servers.
Everyday commands#
| Command | Use it to… |
|---|---|
mdeck skill --install claude |
Teach your AI assistant to write mdeck slides (details) |
mdeck new |
Make a presentation with guided questions |
mdeck run my-talk.md |
Open the launch page: present, edit, check and send from one place; slides reload when you save |
mdeck rehearse my-talk.md |
Rehearse the talk: each slide is timed, and the times can be saved into the deck (details) |
mdeck edit my-talk.md |
Edit slides, colors and themes in the browser; saves to the file |
mdeck themes search, install <theme>, remove, update, list |
Themes: install more (each with its palette), remove the ones you do not use; see Install, remove or share a theme |
mdeck palettes search, install <palette>, … |
The same for palettes |
mdeck design [my-talk.md or folder] |
Look at themes and palettes on a sample deck and fine-tune them; saves to extensions/ |
mdeck check my-talk.md |
Check settings and look for missing local files; --render also finds slides whose content does not fit |
mdeck snapshot my-talk.md |
Save pictures of the slides as PNG files, for you or your assistant to look at |
mdeck send my-talk.md |
Make one file to send to readers, with a PDF inside |
mdeck build my-talk.md |
Make a folder to host in dist |
mdeck pdf my-talk.md |
Make a PDF |
mdeck preview |
Open the last build from the current folder |
mdeck server |
Run the server for polls and for presenting from an iPad on any network (details) |
mdeck list, mdeck starter |
Look up layouts, themes and palettes |
mdeck docs |
Open this documentation |
mdeck --help |
Show a short list of commands; mdeck <command> --help shows a command's options |
mdeck --version |
Show which version of mdeck you have |
The launch page#
mdeck run my-talk.md opens a page on your own computer with everything for this talk. It is what the preview's plain address, such as http://localhost:5173/, shows; the slides themselves are at ?view=deck.
- Preview: a small live copy of the deck to flip through; click it to open the audience window at that slide.
- Present: the presenter view, audience window and reader view, each in a new tab. The presenter view has notes, drawing controls, a timer and next-slide preview; Rehearse opens it timing each slide; switch to its slide-only layout for a single screen. The audience window shows slides without notes. Fullscreen is a control inside either view, not a separate view.
- Write and learn: the visual editor, the theme editor (themes and palettes on a sample deck, see Install, remove or share a theme) and these guides. Each starts the first time you click it.
- Share: buttons that make the
distfolder, one file to send, or a PDF, next to your slide file, and show them in your file manager. - Answers from the talk and Drawings: what was kept during the talk, to save or drop.
- Check: the same problems
mdeck checkreports, such as missing pictures.
For a deck with polls, the presenter view's connections panel (the connection icons in its bar) shows the server (built in, or the server setting and whether it answers), the join link and session code for phones, and for a server of your own whether it accepts the key that lets your browser move the phones along and reset polls (see below).
The key is the one the server was started with. Start mdeck run with the same key, for example MDECK_SERVER_KEY=choose-a-secret mdeck run my-talk.md, and the launch page's presenter and audience buttons open those views with it, so they move the phones along. Local views control this deck through the laptop; paired devices receive only a revocable token. Pairing codes never contain the master key. A hosted presenter can unlock the server separately with ?serverkey=…; that key is removed from the address as soon as the page has it. It never goes into the slide file, because that file reaches everyone who opens the slides.
Two options make the slides reachable from other devices:
| Option | What it does |
|---|---|
--network |
Phones and tablets on the same network can open the slides. |
--server |
An iPad on any network can present through your own server. It takes the server's address, or finds it in the deck's server setting or in the MDECK_SERVER variable, in that order. The key goes in MDECK_SERVER_KEY. With both MDECK_SERVER and MDECK_SERVER_KEY set in your shell, mdeck run uses the server without --server whenever it answers, and presents from this computer when it does not. |
--no-server |
Present from this computer only, even with MDECK_SERVER set. |
See Draw on your slides for both. The launch page itself and its buttons only work on your own computer. --port 4000 chooses the port and --no-open starts without opening a browser.
Open a particular guide#
mdeck docs getting-started
mdeck docs sharingUse the page name from its address, without .html. The welcome page is index.
mdeck docs --no-open starts the documentation server without opening a browser. mdeck docs --port 4200 chooses a port number. If the usual port is busy, mdeck tries another one.
To make a static copy of the documentation site, use mdeck docs --build. This saves it in docs/site/dist inside the mdeck project, separately from your presentation builds.
Edit in the browser#
mdeck edit my-talk.md
mdeck edit my-talk.md --no-open
mdeck edit my-talk.md --port 4300The editor opens in your browser and writes every change into the slide file. --no-open starts it without opening a browser window; --port chooses the port. See Edit slides in your browser.
Design themes and palettes#
mdeck design my-talk.md
mdeck design # in a folder without a deck
mdeck design brand/The design page shows themes and palettes on a sample deck with every kind of slide, light and dark, and lets you copy a built-in one and fine-tune its colours, fonts, sizes and spacing. With a slide file, it saves into the extensions folder beside it and can put the result in the deck. With a folder, or nothing, it saves into that folder's extensions, where any deck kept there finds them; no slide file is needed. --no-open and --port work as for mdeck edit.
Output options#
| Command | Result |
|---|---|
mdeck build my-talk.md |
A folder in dist with every view, to host or copy |
mdeck build my-talk.md --reader |
A hosted reader folder with speaker notes removed; add --notes to retain them, --no-polls to leave out the slides with polls and their join codes |
mdeck build my-talk.md -o talk.html |
Choose the output filename; local media stays alongside it |
mdeck build my-talk.md --single-file -o talk.html |
Embed local images and media in one HTML file of the presentation |
mdeck build my-talk.md --launchers |
Include presenter launchers in the folder build |
mdeck send my-talk.md |
One file for readers: the reader view, speaker notes removed, a PDF inside |
mdeck send my-talk.md --notes |
The same, keeping the speaker notes |
mdeck send my-talk.md --no-polls |
The same, leaving out the slides with polls and their join codes |
mdeck send my-talk.md --slide 12-30 |
The same with only slides 12 to 30 and their drawings; also for build and pdf |
mdeck send my-talk.md --no-pdf |
The same, without rendering the PDF |
mdeck pdf my-talk.md -o talk.pdf |
Render the slides to a PDF file (--no-polls leaves out the slides with polls) |
--no-drawings |
Leave out the drawings from my-talk.drawings.json, for build, send and pdf |
--no-results |
Leave out the answers kept in my-talk.results.json, for build, send and pdf; the polls then show their questions only |
mdeck results my-talk.md |
The answers kept during the talk, as CSV with the slide and the question; --summary one row per option or word with how many chose it, --json everything; -o answers.csv (or .json) saves them to a file |
See Send, host or print your slides for help choosing between them. Unknown options, missing option values and extra filenames stop the command before it changes any output. --output=path and -o path are both accepted. mdeck preview --no-open --port 4200 previews without opening a browser and chooses a port.
Check more strictly#
mdeck check my-talk.md --strictThe ordinary check fails when it finds an error. The strict check also fails when it finds a warning, such as a layout name it does not recognize.
Check how the slides look#
mdeck check my-talk.md --renderThis builds the deck and shows every slide in Chrome, with all steps revealed as in a PDF. It reports, by slide, heading and line:
- content that is taller than the slide's room for it;
- text that is cut off at the slide's edge;
- text that is hard to read on a plain background behind it;
- errors the page reports, such as a component that fails.
The check takes a few seconds and needs Chrome or Chromium; set MDECK_CHROME to its path if it is not found. It checks the deck in its own appearance. A slide with a problem it cannot measure, such as text on a photo, still needs a look in the preview.
Pictures of the slides#
mdeck snapshot my-talk.md
mdeck snapshot my-talk.md --slide 3,5-7 --dark
mdeck snapshot my-talk.md --sheetThis saves each slide, with all steps revealed, as a 1280×720 PNG file in .mdeck-snapshots/ beside the deck (-o for another folder), named my-talk-03.png and so on, and prints the paths. --slide picks slides by number; --dark and --light show that appearance instead of the deck's own. --no-drawings and --no-results leave out the drawings and the kept answers, as for build. --sheet saves one picture instead, my-talk-sheet.png: the slides in a grid, each under its number and heading, to see a whole deck at a glance. An AI assistant that reads pictures can use them to look at what it wrote. If you keep your slides in Git, add .mdeck-snapshots/ to your .gitignore.
Layouts, themes and palettes#
mdeck list layouts my-talk.md
mdeck starter split my-talk.mdThe first lists the layouts available to your talk. The second prints starting text for one layout. mdeck list layouts --json prints the layout descriptions in a structured form intended for other tools.
mdeck list my-talk.md
mdeck list themes my-talk.mdThe first lists every layout, theme and color palette your talk can use, including any kept in an extensions folder beside it. The second lists only themes; palettes works the same way. --json prints the same information for other tools. The complete registry has schema: 2 and layouts, themes, palettes and warnings fields. A filtered listing such as list layouts --json is a map keyed by layout ID. Extension TOML manifests still use schema = 1.
Slides from an AI assistant#
mdeck skill
mdeck skill --install claude codex
mdeck skill --printInstalls the slide-writing skill for the assistants you use, or prints it for any other tool. See Work with an AI assistant.