TL;DR
<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/lastAccessedAton each token) - Records every send in the audit log, one entry per recipient, visible in the dashboard
Revoke click kills all of them), pass --token-id <existing-id> to reuse an existing token instead of minting new ones.
Prerequisites
- A presentation already uploaded — you need a
presentationId. Get one withslideless pushor from the dashboard. - An authenticated CLI session:
slideless auth login-request+login-complete, orslideless loginto paste a dashboard key. - The active key needs
presentations:writescope.
From the CLI
Single recipient, no message
Multiple recipients with a personal note
Reuse a single existing link
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:
Revoke click in the dashboard.
From the plugin (Claude Code / Cursor)
Invoke theshare-presentation-email skill after share-presentation. Give it the share_id, an emails array, and an optional message:
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:- Lets you add recipients (chips input — Enter/comma/Tab to add)
- Optional custom subject (falls back to
"<your email> shared: <title>") - Optional personal note (≤2000 chars)
- By default, mints a per-recipient tracked token. If you already have active tokens, you can pick one to reuse instead.
Response shape (success)
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 ownaccessCount and lastAccessedAt. To query programmatically:
POST /unsharePresentation with --token <tokenId>) kills the link for that person only — everyone else keeps working.
Troubleshooting
Every failure includeserror.code, error.message, and error.nextAction. The nextAction field is written for agents and humans alike — it tells you exactly what to try next.
Related
slideless push— upload the presentation first- Share tokens — how the per-recipient token model works
- Plugin skill:
share-presentation-email— invoke this from Claude Code / Cursor