Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.slideless.ai/llms.txt

Use this file to discover all available pages before exploring further.

The file-versioning trap

Anyone who’s shared a deck more than twice knows how it ends:
Q4_review.pptx
Q4_review_v2.pptx
Q4_review_FINAL.pptx
Q4_review_FINAL_v2.pptx
Q4_review_FINAL_USE_THIS.pptx
Each new version is a fresh file, a fresh email, a fresh attachment, and (probably) a different person opening the wrong one. Tools like Google Slides solve this with a single canonical URL, but only inside their ecosystem, and only if you’re willing to log in.

The Slideless loop

Slideless gives you a single URL per deck and lets you update what’s behind it without ever changing the URL:
1. AI generates the HTML       (e.g. Claude with `generate-presentation`)
2. You upload it               (`slideless push ./deck.html --title "..."`)
   → returns presentationId, writes slideless.json at the deck root
3. You mint a viewer URL       (`slideless share <presentationId>`)
   → returns shareUrl
4. You share the URL           (Slack, email, anywhere)
5. You iterate on the content  (Claude regenerates, you tweak)
6. You re-publish              (`slideless push` again from the same folder)
   → same shareUrl, version + 1, view count preserved
7. Recipients refresh          (they see the new content, no re-share)
That’s it. The URL you sent on Tuesday morning still works on Friday afternoon, even though the content has been edited five times in between.

In a terminal

Generate, push, share, iterate:
# Generate (with the Claude marketplace skill)
$ claude --skill generate-presentation "Q4 results, revenue, churn, headcount" > deck.html

# Push
$ slideless push ./deck.html --title "Q4 review"
 Presentation pushed

  Share ID:  abc123
  Version:   1

# Mint a public viewer URL
$ slideless share abc123
 Share URL minted

  Share URL: https://app.slideless.ai/share/abc123?token=...

# Iterate, then re-publish (same presentationId, same URL)
$ slideless push ./deck.html
 Presentation pushed to v2

  Share URL: https://app.slideless.ai/share/abc123?token=...
Hook this into a CI pipeline, a Makefile, a cron job, or a Claude session. The same loop applies. Add --json for machine-readable output that’s easy to pipe through jq.

What stays stable across updates

When you re-publish:
Stays the sameBumps / accumulates
presentationId (and therefore the share URL)version (auto-increments)
tokens (every share token still works)updatedAt
totalViews (no reset)The HTML content itself
lastViewedAt history
Recipients reload to see the new content. View counts on the deck and on each individual token continue from where they left off.

Why this matters

The loop turns a deck from a document (a static artifact you send) into a URL (a living resource you maintain). That’s the same shift the web made for everything else; Slideless brings it to presentations. A few practical applications:
  • Sales decks that get personalized per-prospect (different tokens per recipient, different content updates).
  • Product changelogs that always live at the same URL. Every release just re-publishes.
  • Pitch decks you tweak after each investor meeting, without recirculating.
  • Workshop materials that update mid-session as questions come up.

Send it straight to an inbox

When you do need to hand the URL off, Slideless emails it for you. slideless share-email <presentationId> --to alice@example.com ships a branded mail via Resend with a unique tracked link per recipient, so you can see who actually opened the deck. Perfect for sales outreach where you’d otherwise BCC a list and never know who read it.
slideless share-email abc123 \
  --to alice@example.com --to bob@example.com \
  --message "Here's the deck we discussed." \
  --json
Same from Claude Code / Cursor via the share-presentation-email plugin skill, or from the dashboard’s “Share via email” modal. See Send a presentation by email.

Next