CLI reference

Publish a local HTML deck from the terminal

The website-installed CLI is the supported public entry point. Anonymous publishing works before login; account auth adds owned decks, updates, versions, and sharing controls.

Last tested: July 28, 2026Reference

Install and verify

curl -fsSL https://slidesfly.com/install.sh | sh
slidesfly --version

Publish a deck

# Anonymous, single-file, unlisted
slidesfly publish ./deck.html --title "Q4 review" --json

# Owned deck after login
slidesfly publish ./deck.html --visibility public --json

# Replace the content and keep the same URL
slidesfly publish ./deck-v2.html --id YOUR_DECK_ID --json

Login, claim, and headless auth

# Browser PKCE; claims pending local anonymous decks by default
slidesfly login --json

# Device-code flow for SSH/headless environments
slidesfly login --code --json

# Inspect local auth and pending state
slidesfly status --json

Configuration is stored in ~/.slidesfly/config.json. Override that path in an isolated test with SLIDESFLY_CONFIG_PATH. Never log or paste the raw file.

Command reference

CommandPurposeAuth
publish FILECreate a deck; use --id to update an owned deck.Optional for single-file create
listList local anonymous and known decks.No
login / logout / statusManage local authentication state.Varies
claimAttach a locally managed anonymous deck to the signed-in account.Yes
visibility / deleteChange access or remove a deck.Owner or local claim
versions / restoreInspect history and restore a previous owned version.Yes
expire / password / allowlistApply Pro link controls to an owned deck.Pro
install / uninstallManage the Slidesfly Agent Skill.No

Rules for automation

  • Pass --json when another process reads stdout.
  • Check the top-level ok field and structured error code.
  • Use the returned URL as the publishing result; do not construct reader URLs.
  • Keep API keys and anonymous claim credentials out of command logs.
  • Use --id only for a verified owned deck.