New:Microsoft Teams Notifications Are Now Available in Socket.Learn more →
Get Started

@deckflow/deckhtml

Package Overview
Dependencies
Maintainers
3
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@deckflow/deckhtml

Convert HTML to PPTX or PNG presentations

Source
npmnpm
Version
0.5.0
Version published
Weekly downloads
230
67.88%
Maintainers
3
Weekly downloads
 
Created
Source

DeckHTML

Languages: English · 简体中文 · 繁體中文 · Français · Deutsch · Español · 日本語 · 한국어

Convert HTML files, stdin, or URLs into PPTX or PNG presentations from your terminal.

Quick Start

Run without installing:

npx -y @deckflow/deckhtml@latest index.html -o deck.pptx

Installation

npm install -g @deckflow/deckhtml
deckhtml --version

Convert HTML

Convert a single HTML file (output defaults to the same path and base name):

deckhtml index.html
# → index.pptx

Specify an output path:

deckhtml index.html -o deck.pptx

Pipe HTML from stdin:

cat index.html | deckhtml - -o deck.pptx

Convert multiple HTML files in order:

deckhtml page1.html page2.html page3.html -o deck.pptx

Convert a hosted page:

deckhtml https://example.com/deck.html -o deck.pptx

Output Formats

Output format is inferred from the -o extension:

FormatDescription
pptxPowerPoint deck output (default)
pngPNG frame output
deckhtml index.html -o frames.png

Execution Modes

ModeDescription
autoUse cloud when an API key is configured; otherwise run locally
localAlways run locally (no API key required)
cloudAlways run in the cloud (API key required)
deckhtml index.html --mode local
deckhtml index.html --mode cloud -o deck.pptx

Cloud-Only Enhancements

These flags require cloud mode:

FlagDescription
--embed-fontsEmbed fonts into the output
deckhtml index.html \
  -o deck.pptx \
  --mode cloud \
  --embed-fonts

Authentication & Config

Authentication is only required for cloud execution and cloud-only flags. Local conversion works without an API key.

deckhtml auth login
deckhtml auth status
deckhtml config set api-key <key>

For CI, Docker, or agent environments, set the environment variable (takes precedence over stored credentials):

export DECKHTML_API_KEY=your-api-key

Persistent settings:

CommandDescriptionDefault
deckhtml config set api-key <key>API key for cloud requests—
deckhtml config set size <size>PPTX dimensions1920x1080
deckhtml config set webhook <url>Default callback URL—
deckhtml config set retention-hours <n>Cloud file retention (hours)3

Credentials are stored locally at ~/.deckflow/credentials.

CLI Reference

Conversion Flags

FlagDescriptionDefault
-h, --helpShow help—
--versionShow version—
-o, --output <path>Output pathSame base name as input
-v, --verboseDetailed logs to stderrfalse
--quietOnly errors and final resultfalse
--jsonMachine-readable JSON on stdoutfalse
--reportGenerate a conversion reportOff
--mode <mode>auto, local, or cloudauto
--width <pixels>Playwright viewport width (height scales at 16:9)1920
--platform <platform>win, mac, ios, android, or linuxDetected
--embed-fontsEmbed fonts (cloud only)false
--executable-path <path>Chromium binary for local conversion (else DECKHTML_CHROMIUM_EXECUTABLE_PATH env, then Playwright's bundle)—
--exclude <selector>CSS selector matching runtime/navigation elements to exclude—
--identity-attribute <name>Attribute carrying a stable element identity (default: data-element-id)data-element-id
--forceOverwrite an existing output file (default: refuse)false

--quiet and --verbose cannot be used together. Output format is inferred from the -o extension (pptx or png).

JSON Output

deckhtml index.html -o deck.pptx --json
{
  "ok": true,
  "input": ["index.html"],
  "output": "deck.pptx",
  "format": "pptx",
  "mode": "local"
}

Programmatic API

Use the package as a library in Node.js. The library returns a Buffer (or PNG image buffers) — it never writes to disk on its own. Write the output yourself, or use the CLI for file output.

import { convertHtmlToPptx } from '@deckflow/deckhtml';

const result = await convertHtmlToPptx({
  input: 'index.html',
});
// result.data: Buffer containing the PPTX file
// result.slideCount: number of slides
// result.usedFonts: resolved font names
// result.stats: element/font/simplified statistics
import { writeFileSync } from 'node:fs';
writeFileSync('deck.pptx', result.data);

Documentation

Detailed CLI documentation is available in the docs/cli/ directory.

License

MIT

Keywords

html

FAQs

Package last updated on 30 Jul 2026

Related posts