deckrun

A local-first presentation tool for writing, editing, presenting, and exporting Markdown slides or self-contained HTML docs.

$ npm install -g deckrun

What is deckrun?

Most slide tools are either bloated cloud apps that require clicking through nested menus or heavy web frameworks that take minutes to build.

deckrun is designed for engineers and speakers who want to write presentations in plain text with zero fluff. You write standard Markdown separated by --- or bring a single continuous HTML document. It spins up an instant local HTTP server at 127.0.0.1:7890 and presents your work in the browser with terminal aesthetics, live speaker tools, and headless 16:9 PDF export.

01

Local-First & Private

Binds strictly to 127.0.0.1. Nothing is uploaded, tracked, or sent to the cloud. Your decks live in browser local storage and files stay on your disk.

02

Two Formats

Present slide-by-slide Markdown decks with clamp-scaled typography or continuous-scrolling self-contained HTML documents with the presenter tool belt.

03

Honest Live Preview

The editor preview iframe renders with the exact same parser and stylesheet as the presented output at 1600x900. What you see is byte-identical.

04

Headless PDF Export

Press Cmd Shift S to download a clean 16:9 full-bleed PDF rendered via headless Chromium. No print dialogs, no broken margins.


Key Features

Everything you need to author, present, annotate, and distribute technical presentations.

Writing & Editing

Dual-Pane Live Editor & Deck Library

Run deckrun with no arguments to launch the built-in editor. Write Markdown on the left, watch your slide update live on the right.

  • In-Place Syntax Highlighting: Headings, bold, italic, code chips, directives, tables, notes, and raw HTML are color-coded in real time.
  • Slide Gutter & Caret Sync: Gutter labels each --- with its slide number; moving the caret automatically flips the live preview to that slide.
  • Searchable Command Palette (Cmd K): Quickly insert layouts, code snippets, notes, or trigger actions without memorizing syntax.
  • Guide Drawer (Cmd /): Full catalogue of layouts, embed tags, and Markdown directives with one-click insertion.
  • Contextual Nudges: Helpful prompts detect overflowing slides, untagged code blocks, or split image opportunities and offer 1-click fixes.
  • Deck Library (Cmd O): Stores all your Markdown decks and HTML docs in local storage with instant switching, search, duplication, and silent autosave (500ms debounce).
Visuals

14 Themes & 10 Drifting Pure-CSS Backdrops

Choose from 8 dark and 6 light carefully calibrated themes. Each theme defines its own display, body, and monospace faces, Highlight.js code grammar colors, and drifting background geometry:

midnight dark

Catppuccin Mocha. Violet on deep indigo, drifting orbs.

tokyo dark

Tokyo Night. Neon cyan over a wireframe grid.

nord dark

Arctic frost blue on polar slate, with contour waves.

dracula dark

Purple and hot pink over charcoal, lit by a gradient mesh.

gruvbox dark

Warm amber and moss on retro brown, hatched graph paper.

rosepine dark

Rosé Pine. Muted iris and gold on plum, slow aurora.

forest dark

Everforest sage on deep pine, concentric rings.

neon dark

Electric cyan and magenta on true black, light beams.

daylight light

Catppuccin Latte, contrast-tuned for projectors. Dot matrix.

arctic light

Nord inverted. Frost blue on cool paper with contour waves.

solarized light

Classic low-glare cream, paired with Lora for long prose.

paper light

Crimson serif on warm cream. Editorial, print-first, legible.

rosequartz light

Rosé Pine Dawn. Blush and iris on linen, soft orbs.

swiss light

Black on white, one red. Heavy grotesk, tight tracking, hard grid.

Backdrops (orbs, grid, dots, topo, beams, rings, waves, mesh, aurora, none) are written in pure CSS gradients—they drift smoothly, respect prefers-reduced-motion, and print cleanly into PDF exports.

Typography

4 Proportional Type Sizes & 20 Typography Pairings

Typography scales intelligently across four presets (s, m, l, xl). Rather than applying a blunt multiplier, headings and body text scale proportionally to ensure back-row legibility in conference halls without overflowing headings.

Choose display and body faces independently from 20 bundled Google Fonts (including Inter, Space Grotesk, Sora, Manrope, Playfair Display, Fraunces, Newsreader, JetBrains Mono, and Fira Code) via --head-font and --body-font.

Presenting

Complete Presenter Tool Belt

Present seamlessly with keyboard shortcuts or clicker-friendly footer controls:

  • Laser Pointer (L): Replaces the mouse cursor with a soft, glowing red dot visible across the room.
  • Live Drawing Pen (D): Sketch directly on slides using mouse, trackpad, or touch. 5 colors, stroke thickness, eraser (E), undo (Cmd Z), and per-slide persistence.
  • Blank Canvas (C): Opens an opaque chalkboard in the theme's background color for spontaneous diagrams.
  • Blackout Mode (B): Dims the screen instantly to bring the room's attention back to you.
  • Overview Grid (O): Interactive matrix of live slide thumbnails to jump anywhere in the deck with smooth transitions.
  • Pixel Pets: Playful companions (from vscode-pets) wander the bottom edge of your slides.
Directives & Media

Image Layout Directives & Rich HTML Embeds

Control slide layouts directly through standard Markdown image title syntax without touching CSS:

![Architecture](diagram.png "right")            # Split layout: content left, image right
![Benchmark](graph.png "left")                  # Split layout: image left, content right
![Cover](backdrop.png "bg opacity:0.3")         # Full bleed background image with opacity
<iframe src="https://www.youtube.com/embed/..." allowfullscreen></iframe>
<video src="demo.mp4" controls muted loop></video>
Press <kbd>Cmd</kbd> <kbd>K</kbd> to drop latency to <mark>4.1ms</mark>.

Add speaker notes using HTML comments (<!-- notes: My notes -->). Notes are automatically stripped during projection and PDF export so they never leak to your audience.

Distribution

Headless 16:9 PDF & Standalone HTML Exports

Exporting your deck takes one click or shortcut (Cmd Shift S):

  • Headless PDF: deckrun drives your local Chromium-family browser (Chrome, Chromium, Edge, Brave) to render full-bleed 13.333in × 7.5in widescreen pages with exact theme styling, backdrops, and code highlighting.
  • Standalone HTML: Exports a self-contained .html file with inlined runtime and styles that opens and presents directly from disk or static hosting.
AI Workflows

Claude Code & AI Skill Integration

deckrun pairs seamlessly with agentic AI workflows. Use Claude Code skills to convert articles directly into presentation-ready decks or HTML pages:

  • blog-to-slides: Converts long-form articles into structured Markdown decks with --- breaks, code snippets, and ASCII diagrams.
  • ape-present: Turns blog posts into rich, animated continuous HTML presentations.

CLI Usage & Options

Run deckrun [file] [options] from your terminal.

# Launch the dual-pane live editor
deckrun

# Present a Markdown slide deck
deckrun slides.md

# Present a continuous self-contained HTML page
deckrun page.html

# Custom theme, size, and port
deckrun slides.md --theme paper --size xl -p 3000

# Custom typography pairing
deckrun slides.md --head-font playfair --body-font lora

# Launch directly into fullscreen on first click
deckrun slides.md --fullscreen
Flag / Option Default Description
[file] Markdown or HTML file to present. Omit to open the editor.
-p, --port <num> 7890 Port to serve the presentation or editor on.
--theme <name> midnight Any of the 14 built-in themes by ID.
--size <s|m|l|xl> m Type size preset tuned for room reading distance.
--head-font <name> theme Override heading face independently (20 fonts).
--body-font <name> theme Override body face independently.
--fullscreen false Prompt to enter fullscreen on first key/click.
--no-open false Start the HTTP server without opening browser tab.
--list-themes Print all themes with mood and blurb, then exit.
--list-sizes Print all type sizes and their use cases, then exit.
--list-fonts Print all 20 Google Fonts and categories, then exit.

Keyboard Shortcuts

Every action in deckrun is keyboard-accessible. Press ? at any time during a presentation to view the overlay.

Space / → Next slide
← / Backspace Previous slide
O / Esc Toggle overview grid
L Toggle glowing laser pointer
D Toggle drawing pen (1-5 colors, E eraser, X clear)
C Toggle blank canvas whiteboard
B Black out the screen
F Toggle fullscreen mode
? / H Show keyboard cheatsheet overlay
Cmd + Enter Present deck in new tab (editor)
Cmd + Shift + S Export headless 16:9 PDF (editor)
Cmd + Shift + L Live theme and size picker (editor)
Cmd + K Searchable command palette (editor)
Cmd + / Guide drawer with snippet catalog (editor)

Sample Slide Template

A complete starter deck demonstrating titles, split images, code highlighting, and speaker notes:

# Scaling Distributed Systems

Building resilient, event-driven architectures in production.

![Cover Background](assets/cover.png "bg opacity:0.25")

<!-- notes: Introduce talk context and team background. -->

---

## Architectural Overview

- Microservices communicate over gRPC for low-latency RPCs
- Events stream through Apache Kafka for durable message logs
- Read replicas scale consumer queries horizontally

![Architecture Diagram](assets/architecture.png "right opacity:0.95")

<!-- notes: Walk through the request path from gateway to storage engine. -->

---

## Consumer Worker Implementation

```go
func (w *Worker) ProcessEvent(ctx context.Context, msg *kafka.Message) error {
    ctx, cancel := context.WithTimeout(ctx, 5*time.Second)
    defer cancel()

    if err := w.store.Save(ctx, msg.Value); err != nil {
        return fmt.Errorf("failed to persist event: %w", err)
    }
    return nil
}
```

---

# Summary

- Favor asynchronous message passing for decoupled services
- Apply database timeouts at connection and role layers
- Use structured event logs for auditing state mutations