Skip to main content

Slidev

@taylor/slidevv2026.10.11.3· 2d agoBEHAVIORSWORKFLOWSSKILLSACCEPTED WARNINGS
01README

Work on Slidev decks entirely inside a container (boxcutter/slidev by default) with Docker or Apple's container CLI, so the host needs no Node. A slide fit check opens every slide with all clicks revealed and flags content that runs off the bottom or right edge, bumps against the bottom, or is hidden inside a box that scrolls or clips (a code block with maxHeight, a wide table), with each slide's source file and line and a screenshot. Also creates new decks, and with the @taylor/slidev-new-deck workflow checks it builds and turns it into a GitHub repository with page numbers, a README, a licence and a Pages site deployed by GitHub Actions; serves the deck in the background, exports it to PDF, and lists and upgrades Slidev, vue and playwright-chromium while leaving pinned versions alone. Bundles a slide-fit skill for agent-driven fit passes.

02Behaviors1
@taylor/slidev/deckv2026.10.11.3slidev_deck.ts

Global Arguments

ArgumentTypeDescription
dirstringDeck directory (the one with slides.md and package.json). Relative paths resolve from the swamp repository.
runtime?enumContainer runtime: docker, or container (Apple's container CLI; start it with `container system start`)
runtimePath?stringPath to the runtime CLI if it is not `docker`/`container` on PATH
image?stringSlidev image; its entrypoint must behave like boxcutter/slidev's
fn fit(slides?: string, bottomMargin?: number, rightMargin?: number, screenshots?: enum, shotsDir?: string, timeoutMs?: number)
Open every slide with all clicks revealed and flag content that runs off the bottom or right edge or scrolls, with screenshots
ArgumentTypeDescription
slides?stringOnly check these slide numbers, e.g. '12' or '3,7,10-14'
bottomMargin?numberFlag content that reaches within this many slide pixels of the bottom edge
rightMargin?numberFlag content that reaches within this many slide pixels of the right edge (the slide is 980 wide)
screenshots?enumWhich slides to screenshot
shotsDir?stringAlso copy the screenshots into this host directory (created if needed)
timeoutMs?numberOverall timeout, including a first-run npm install
fn serve(port?: number, remote?: boolean, timeoutMs?: number)
Start the dev server in a background container (slidev --remote by default) and wait until it answers
ArgumentTypeDescription
port?numberHost port to publish the dev server on
remote?booleanPass --remote so other devices on the network can follow along and control the deck
timeoutMs?numberHow long to wait for the server to answer, including a first-run npm install
fn stop(timeoutMs?: number)
Stop the background dev server started by serve
ArgumentTypeDescription
timeoutMs?numberTimeout for the command
fn outdated(timeoutMs?: number)
List packages with newer versions (npm outdated)
ArgumentTypeDescription
timeoutMs?numberTimeout for the command
fn upgrade(packages?: array, playwright?: boolean, timeoutMs?: number)
Move Slidev, its themes, vue and playwright-chromium to their latest versions (npm install <pkg>@latest), adding playwright-chromium if missing
ArgumentTypeDescription
packages?arrayPackages to move to @latest. Default: every @slidev/* package, vue and playwright-chromium in package.json, except ones pinned to an exact version
playwright?booleanAdd playwright-chromium as a dev dependency if it is missing (fit and export need it)
timeoutMs?numberTimeout for the npm installs
fn build(timeoutMs?: number)
Check that the deck builds for production (slidev build), as a Pages deploy would; fails with the build log if it doesn't
ArgumentTypeDescription
timeoutMs?numberTimeout for the command
fn export(withClicks?: boolean, dark?: boolean, timeoutMs?: number)
Export the deck to PDF (slidev export)
ArgumentTypeDescription
withClicks?booleanOne page per click step instead of one per slide
dark?booleanExport in dark mode
timeoutMs?numberTimeout for the export
fn init(playwright?: boolean, timeoutMs?: number)
Create a new Slidev deck at dir from the official template (npm init slidev), with playwright-chromium
ArgumentTypeDescription
playwright?booleanAdd playwright-chromium so fit and export work straight away
timeoutMs?numberTimeout for creating the deck and installing packages
fn scaffold(title: string, author?: string, email?: string, license?: boolean, copyright?: string, lockfileFrom?: string, timeoutMs?: number)
Add page numbers, a GitHub Pages deploy workflow, README, LICENSE and a starter slides.md to a deck from init, then git init and commit
ArgumentTypeDescription
titlestringDeck title, used for the cover slide and the README
author?stringAuthor on the cover slide. Default: git config user.name
email?stringEmail on the cover slide; omitted when not given
license?booleanWrite LICENSE: code under Apache-2.0, slides under CC BY 4.0
copyright?stringCopyright holder for the first line of LICENSE
lockfileFrom?stringPath of a deck that builds; its package-lock.json and dependency versions are copied in and installed with npm ci, to work around a broken upstream release
timeoutMs?numberTimeout for npm ci when lockfileFrom is given
fn push(remoteUrl: string, branch?: string)
Push the deck to a remote as origin (adding origin if it's missing) and set the branch to track it
ArgumentTypeDescription
remoteUrlstringRemote to push to as origin, e.g. git@github.com:<owner>/<name>.git
branch?stringBranch to push

Resources

fit(infinite)— Slide fit report: every checked slide's extent and the flagged ones (instance fit)
server(infinite)— The background dev server from serve/stop (instance server)
outdated(infinite)— Packages with newer versions (instance outdated)
upgrade(infinite)— Versions changed by an upgrade (instance upgrade)
deck(infinite)— The deck created by init (instance deck)
build(infinite)— The last production build check (instance build)
scaffold(infinite)— Files scaffold added and the first commit (instance scaffold)
push(infinite)— The last push to the remote (instance push)

Files

screenshot(image/png)— Screenshot of a slide from the last fit check (instance slide-NNN)
pdf(application/pdf)— The deck exported to PDF (instance slides)
03Workflows1
@taylor/slidev-new-deckd4bd5a13-75d2-4bf6-bdb9-b1834d5f99a4

Create a Slidev deck from the template, add page numbers, a Pages deploy workflow, README, LICENSE and a starter slides.md, check it builds, create its GitHub repository, set Pages to build from GitHub Actions, and push it

new-deckCreate, scaffold, publish
1.init— Create the deck from the Slidev template, with playwright-chromium
2.scaffold— Add page numbers, the Pages deploy workflow, README, LICENSE and starter slides, then commit
3.build— Check the deck builds for production before anything is created on GitHub
4.repo— Create the GitHub repository if it doesn't exist
5.pages— Set GitHub Pages to build from GitHub Actions before the first push triggers a deploy
6.push— Push main to the new repository, which runs the deploy workflow
04Skills1
slide-fit1 file
05Previous Versions2
2026.10.11.2
2026.10.11.1
06Stats
A
93 / 100
Downloads
1
Archive size
49.1 KB
  • Has README or module doc2/2earned
  • README has a code example1/1earned
  • README is substantive1/1earned
  • Most symbols documented1/1earned
  • No slow types (deprecated)1/1earned
  • Dependencies pass trust audit2/2earned
  • Has description1/1earned
  • Platform support declared (or universal)2/2earned
  • License1/2partial

    no SPDX license declared

  • Verified public repository2/2earned

08Platforms
09Labels