Skip to main content

Goal

By the end of this page you’ll have a public share URL pointing at a presentation you uploaded with the slideless CLI — either a single self-contained HTML file or a folder with images, videos, or 3D assets.

Prerequisites

  • Node.js 20+ (node --version to check)
  • An email you can check
  • A deck to share. Either a single HTML file, or a folder with an index.html plus sibling assets. See the Generate with Claude guide if you need to make one.
No Slideless account yet? That’s fine. Step 2 creates one.

Step 1 — Install the CLI

If npm install -g is blocked, npx slideless ... works for any command.

Step 2 — Request a signup code

This emails a 6-digit code to you@example.com and exits. The email arrives in a few seconds. See cli/auth if you hit any error.

Step 3 — Complete signup

Check your inbox for the code, then (--first-name is required):
Output:
Your cko_ key is now stored in ~/.config/slideless/config.json (mode 0600) and set as the active profile. You can pass extra flags like --last-name "Morgan", --company "Acme", --brand-primary "#0a0a0a", or --logo ./logo.png to fill in user/organization details at the same time — see cli/auth for the full list.

Step 4 — Push your first presentation

Option A: single HTML file

Save a minimal deck.html:
Upload it:

Option B: folder with assets

Create a folder:
index.html:
Upload the folder — the CLI walks it, hashes every file, and uploads only what’s missing on the backend (later pushes will skip unchanged files):
Either way the output looks like:
A slideless.json was also written at the folder root. That’s how the CLI knows the folder is a Slideless deck — subsequent slideless push calls from here re-publish in place. Don’t edit or delete it.

Step 5 — Mint a public viewer URL

The push created the deck but didn’t publish it. Mint a viewer token:
Paste the Share URL into a new browser tab. You’ll see your HTML rendered inside the Slideless viewer chrome: fullscreen toggle, download menu, “Made with Slideless” footer. Open it on your phone too. The same URL works everywhere.

Step 6 — Watch the view count

Each time the share URL is opened, totalViews ticks up. For per-token view counts:

Updating in place

Edit your deck (change the HTML, swap an image), then re-publish from the same folder:
The CLI reads slideless.json from the folder, recognises this as an update, and bumps the version. Recipients see the new content on next load. The URL doesn’t change, the view count is preserved, and only files whose contents actually changed re-upload — the rest are deduplicated. A one-image swap on a 200 MB deck transfers ~the size of that one image, not 200 MB.

Pick it up on another device

Already pushed on your laptop and want to keep iterating from your desktop? On the second machine:
pull writes the same slideless.json at the root so push knows which deck to update. See Collaboration for the conflict model when two machines push concurrently.

Pin a recipient to a specific version

If you emailed v3 to investors and then fixed a typo in v4, you might want the investors to stay on v3 — their token can be frozen:
Put them back on auto-update:
Recipients can never see other versions by URL manipulation — only the owner can browse history. See Versioning.

What just happened

Alternative: paste a key from the dashboard

If you already created a key in app.slideless.aiOrganization → API Keys, skip the OTP flow and paste it:
This does the same thing as signup-complete / login-complete: verifies the key, saves a profile at ~/.config/slideless/config.json, and makes it the active one. Continue from Step 4.

Next steps