# Slidesfly Quickstart

Last tested: 2026-07-28
Canonical page: https://slidesfly.com/docs/quickstart

Slidesfly publishes a finished HTML presentation to a shareable reader URL. It is a publishing and
governance layer, not a presentation generator.

## Before you start

- Input: one browser-ready .html or .htm file.
- Anonymous limit: 3 decks per IP per UTC day, up to 1 MB each.
- Anonymous visibility: unlisted.
- Minimum CLI version: 0.1.1.
- Do not publish credentials, secrets, regulated data, or content you are not authorized to host.

## 1. Install

```bash
curl -fsSL https://slidesfly.com/install.sh | sh
slidesfly --version
```

## 2. Publish without an account

```bash
slidesfly publish ./deck.html --title "Q4 review" --json
```

Successful JSON has `ok: true` and includes the generated `deck_id`, complete reader `url`,
`visibility: "unlisted"`, and `anonymous: true`. The private claim token stays in
`~/.slidesfly/config.json` and is not printed.

Open the returned URL before sharing it.

## 3. Claim the deck

```bash
slidesfly login --json
slidesfly list --json
```

Browser PKCE is the default. Use `slidesfly login --code --json` on a headless host. Login claims
pending local anonymous decks unless `--no-claim` is supplied.

## 4. Update without changing the reader URL

```bash
slidesfly publish ./deck-v2.html --id YOUR_DECK_ID --json
slidesfly versions YOUR_DECK_ID --json
```

The update requires ownership. Use the returned URL instead of constructing a reader URL manually.

## Failure recovery

- **FILE_NOT_FOUND:** The local path is wrong or the artifact was not written to disk. Recovery: Resolve the real file path, verify it exists, then retry.
- **INVALID_HTML:** The uploaded HTML or archive does not meet the publishing contract. Recovery: Fix the artifact locally; do not auto-rewrite user content without approval.
- **MALICIOUS_CONTENT:** A remote script, blocked domain, or another security rule was triggered. Recovery: Bundle runtime code locally. Use the report route if the rejection is a false positive.
- **QUOTA_EXCEEDED / RATE_LIMITED:** The current plan, anonymous daily allowance, or request rate was exceeded. Recovery: Follow the returned hint. For a rate limit, wait about 60 seconds and retry once.
- **AUTH_REQUIRED / AUTH_INVALID:** An owned-deck operation has no current API key. Recovery: Run slidesfly login, then repeat only the intended operation.

## Official resources

- CLI reference: https://slidesfly.com/docs/cli
- Security: https://slidesfly.com/security
- Pricing and limits: https://slidesfly.com/pricing
- OpenAPI: https://slidesfly.com/openapi.yaml
- Agent Skill: https://slidesfly.com/SKILL.md
