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.

What this is

The slideless-ai/plugin repo is an Open Plugin v1-conformant plugin. Once installed, every slideless-* skill is available in any compatible agent session (Claude Code, Cursor, …). The agent can generate decks, push them, share them, pull them on another machine, invite collaborators, list them, and export them — all by name.

Install

For any Open-Plugin-compatible agent:
npx plugins add slideless-ai/plugin
The plugins CLI auto-detects which agent tools are installed and installs to all of them. Claude Code also supports its native marketplace flow:
/plugin marketplace add slideless-ai/plugin
/plugin install slideless@plugin
Both paths surface the same /slideless:* skills. The publish-side skills (push-presentation, pull-presentation, share-presentation, unshare-presentation, delete-presentation, invite-collaborator, uninvite-collaborator, list-presentations, get-presentation, setup-slideless) are thin wrappers around the slideless CLI. They shell out to commands like slideless push ./my-deck --json and parse the structured output. The CLI is the canonical interface; the skills make it ergonomic for the agent to use. The local-only skills (generate-presentation, export-presentation-pdf) don’t touch the backend at all.

Prerequisites

Install the CLI on the machine running the agent:
npm install -g slideless
Then run setup-slideless once to authenticate. The skill prefers the OTP flow (slideless auth signup-request / signup-complete, or the login variants for a returning user) and falls back to pasting a dashboard key if you already have one. See cli/auth for the flow it runs.

The skills

SkillPurposeWraps
setup-slidelessBootstrap the CLI. Three branches: OTP signup for a fresh account, OTP login for an existing one, or paste a dashboard key as fallback. Run once per machine.slideless auth signup-request / signup-complete, login-request / login-complete, or slideless login
generate-presentationGenerate an HTML presentation in a curated style (slim-tabbed for workshop content, full-deck for cinematic slides). Output is either a single .html or a folder with sibling assets, depending on whether the deck needs images/video/3D.None, purely local
push-presentationUpload a deck (folder OR single HTML file). First push creates a new presentation and writes slideless.json at the deck root; subsequent pushes from the same folder re-publish to the same presentationId.slideless push <path>
pull-presentationDownload a deck to a local folder (writes slideless.json so a subsequent push re-publishes in place). Works for owners on another machine and for invited dev collaborators.slideless pull <presentationId>
share-presentationMint a public viewer URL for an existing deck. Trigger phrases: “share a link”, “get a public URL”. Owner-only.slideless share <presentationId>
unshare-presentationRevoke viewer URLs — every token, or one with --token. The deck stays editable. Owner-only.slideless unshare <presentationId>
delete-presentationHard-delete a deck: Firestore doc, every version, every asset, every collaborator row. Irreversible. Owner-only.slideless delete <presentationId> --yes
invite-collaboratorInvite a dev collaborator by email. They gain push + pull access once they have a Slideless account. Owner-only.slideless invite <presentationId> --email <addr>
uninvite-collaboratorRevoke a dev collaborator. Owner-only.slideless uninvite <presentationId> <collabId>
share-presentation-emailEmail an existing shared presentation to 1–20 recipients. Mints a unique tracked link per recipient by default. Trigger phrase: “send this deck to alice@…”.slideless share-email <presentationId> --to <email>
list-presentationsList every deck you can access — owned plus shared-with-you. Each row includes a role column so the agent knows which decks it can edit.slideless list --json
get-presentationFetch full metadata for one presentation, including each share token’s individual access count, last-accessed time, and (for owners) the collaborator list.slideless get <presentationId> --json
export-presentation-pdfConvert a local HTML deck to a landscape PDF via a bundled Puppeteer runner. Auto-injects print CSS.None, purely local
publish-to-marketplacePublish the linked deck as a marketplace listing — a remixable presentation, app, or plan. Run from inside a linked deck folder; the key needs the marketplace:publish scope. Owner-only.slideless publish --kind <presentation|app|plan> --description "…"
browse-marketplaceSearch the public marketplace catalog by topic, kind, tag, or category. No API key needed.slideless search [query] --json
remix-templateRemix a marketplace listing into a fresh local folder (no slideless.json), ready to push as your own deck. No API key needed to remix.slideless remix <slug>

A typical session

> /skill setup-slideless           # one-time
  → email requested, OTP entered, `cko_` key stored and verified

> /skill generate-presentation
  → topic: "Q4 results, revenue, churn, headcount"
  → style: full-deck
  → wrote ./q4-results.html

> /skill push-presentation
  → source_path: ./q4-results          (folder) or ./q4-results.html (single file)
  → title: "Q4 Results"
  → ran: slideless push ./q4-results --title "Q4 Results" --json
  → pushed v1 (presentationId=0192f1c3-...); wrote ./q4-results/slideless.json

> /skill share-presentation
  → share_id: 0192f1c3-...
  → ran: slideless share 0192f1c3-... --json
  → published: https://app.slideless.ai/share/0192f1c3-...?token=AbCdEf...

[ ... edit, regenerate, iterate ... ]

> /skill push-presentation
  → source_path: ./q4-results
  → ran: slideless push ./q4-results --json
  → pushed v2 (same presentationId, unchanged assets deduplicated)

> /skill get-presentation
  → share_id: 0192f1c3-...
  → 47 views across 2 tokens, last viewed 2h ago

Skill source code

Each skill lives in its own folder in the plugin repo with a SKILL.md describing inputs, prerequisites, and steps. Read the canonical source if you want to know exactly what a skill does:

Generation styles

The generate-presentation skill ships two styles, each with a worked example:
StyleWhen to useSource
slim-tabbedWorkshop-style content. Tabs across the top, dense text, code samples, side-by-side comparisons. Best for documentation-as-deck.GitHub
full-deckCinematic, slide-by-slide presentations. Large headlines, sparse content, transitions. Best for pitches and talks.GitHub
Each style has a README.md (when to pick it), how-to-build.md (how to author it), and example.html (production reference). When in doubt about a CSS or JS pattern, the example.html is the source of truth.

Next