Skip to main content

TL;DR

This emails the recipient a branded message with a unique tracked link to the presentation at <presentationId>. Run slideless push (and then slideless share <id> if you also want a persistent viewer URL) first if you don’t have a presentationId yet.

What this does

  • Sends a nicely branded email (via Resend, from noreply@mail.slideless.ai) to 1–20 recipients
  • By default, mints a unique named token per recipient so per-recipient open analytics come for free (via accessCount / lastAccessedAt on each token)
  • Records every send in the audit log, one entry per recipient, visible in the dashboard
If you’d rather send the same link to everyone (shared view count, one Revoke click kills all of them), pass --token-id <existing-id> to reuse an existing token instead of minting new ones.

Prerequisites

From the CLI

Single recipient, no message

Multiple recipients with a personal note

If you already have a token (e.g. one named "Newsletter subscribers"), you can send that one to everyone instead of minting per-recipient tokens:
Tradeoff: you lose per-recipient tracking (all views roll up into one counter), but you can revoke the whole thing with a single Revoke click in the dashboard.

From the plugin (Claude Code / Cursor)

Invoke the share-presentation-email skill after share-presentation. Give it the share_id, an emails array, and an optional message:
The skill wraps slideless share-email --json under the hood. It surfaces a per-recipient summary, and if some addresses fail (bad syntax, Resend rejection), it tells you which and why.

From the dashboard

On any presentation detail page, click Share via email in the header. The modal:
  1. Lets you add recipients (chips input — Enter/comma/Tab to add)
  2. Optional custom subject (falls back to "<your email> shared: <title>")
  3. Optional personal note (≤2000 chars)
  4. By default, mints a per-recipient tracked token. If you already have active tokens, you can pick one to reuse instead.
After sending, the modal shows a per-recipient sent/failed breakdown — refresh the tokens table and you’ll see the new per-recipient tokens with their own access counts.

Response shape (success)

Note: failed[] is a per-recipient list inside an otherwise-successful response. The call only returns success: false when zero emails could be attempted (preflight failure like auth or permission).

Limits

If you need to send to more than 20 addresses, split into batches and call the command multiple times.

Per-recipient analytics

Each recipient’s named token shows up in the dashboard’s Share links table, with its own accessCount and lastAccessedAt. To query programmatically:
Revoking a single recipient’s token (dashboard → Share links → trash icon, or POST /unsharePresentation with --token <tokenId>) kills the link for that person only — everyone else keeps working.

Troubleshooting

Every failure includes error.code, error.message, and error.nextAction. The nextAction field is written for agents and humans alike — it tells you exactly what to try next.