---
title: Slidev and demo mode
description: Understand generated question output, token permissions, and rehearsal behavior.
---

# Slidev and demo mode

Inalia provides generated question output for presentation integrations, including Slidev. This article describes the concepts and output available in this application; it is not a complete addon installation guide.

## Question output

Use a question's output controls to choose HTML, JSON, or YAML.

Before the talk is finished, the output references the question number for live use. For example, HTML output for question 1 is:

```html
<Inalia
  questionId="1"
/>
```

This component requires a compatible Inalia presentation integration; pasting it into an arbitrary slide deck is not sufficient.

## Finished-talk snapshots

Once a talk is finished, generated output includes the question, type, chart where applicable, and saved result data instead of just a live reference.

Generate and copy the output again after finishing if you want the static snapshot. Previously copied snippets do not rewrite themselves.

Text snapshots include the submitted text. Review that content before publishing a deck or committing its output to a public repository.

## Sign in from the Slidev addon

A compatible version of `slidev-addon-inalia` can connect using **Sign in with Inalia** instead of asking you to copy an API token.

The separate `inalia` package provides the CLI; `slidev-addon-inalia` provides only the Slidev add-on, not a command-line executable. With Node.js 22.12 or newer, run `npx inalia slidev setup` in the deck directory. It reuses your sign-in or opens browser sign-in, then lets you choose a talk and configures the deck. For an already-installed deck, run `npx inalia talk select` and restart Slidev. Use `npx inalia auth login` to sign in separately; signing in alone does not configure a deck. The bare command shows help.

Approve only the permissions you need:

- **Read** lets the addon retrieve your talks, questions and live results.
- **Present** also lets it start your talks. Use `auth login --read-only` if you do not need this.

OAuth does not grant access to other people's talks or bypass account verification, access requirements, or plan restrictions. Slidev permissions do not grant MCP access or administrative access.

Credentials are stored outside the deck in a private file in your user configuration directory, not in the slides or browser. This file is permission-restricted but is not an encrypted keychain. Treat your local user account and configuration backups as sensitive.

Open Slidev through localhost on the machine that signed in. The addon uses its local development server to keep tokens out of browser code; LAN viewers, hosted/static decks and preview servers do not support this OAuth connection. Exported PDFs are static snapshots and do not carry a login session. Use generated finished-talk snapshots or explicit static data when publishing a deck.

Access is refreshed automatically while presenting. If authorization expires or is revoked, sign in again. Run `npx inalia auth logout` to revoke the current access token and its refresh token and delete the local file. Those credentials can no longer access your talks or renew access. To disconnect every authorization for the app, use **Connected Apps** in your profile's **Security** settings. If the server cannot be reached, local credentials are still deleted and the command reports that remote revocation failed.

The browser sign-in flow requires a deployed Inalia backend and addon version that both support Slidev OAuth.

## Access tokens

Create a named token from your account's token settings.

For API-token setup, the official Slidev add-on needs only `VITE_INALIA_API_KEY` and `VITE_INALIA_TALK_NUMBER` for a live connection. It automatically retrieves your username from the token. Self-hosted backends must support `GET /api/me` before updating the add-on.

- **read** retrieves talks and questions.
- **write**, alongside read, can run talks and change demo mode.

Copy a new token when it is shown and store it securely. Never put it in public slide source or browser-delivered code. Delete tokens you no longer use.

Integration requests still require an eligible, verified account and access to the requested talk.

## Choose a talk for a Slidev deck

After installing the official add-on and enabling it in `slides.md`, run `npx inalia talk select` in your Slidev project (Node.js 22.12+). It lists all talks belonging to your account by title and number. Choose one to save its number in the project's `.env` without removing unrelated settings. No authentication-mode variable is needed. OAuth credentials stay outside the deck. The add-on discovers your username automatically at runtime; it does not need a username in `.env`.

The command reuses your OAuth session or opens browser sign-in. If an API token is already set in your shell environment or `.env`, that token takes precedence; shell values win. A dedicated **read** token is sufficient and is saved with the selection. The CLI never prompts for a token and does not read user-wide `~/.inaliarc` settings. Cancelling, a failed request, or having no talks leaves the deck files unchanged, although browser sign-in may have created a local session. Restart Slidev after selecting a talk.

Keep `.env` out of source control. In API-token mode, the add-on sends its token from browser-side code, so do not publicly host a live-configured deck. Browser sign-in is local-only and is not available in published decks. See [Your first Slidev integration](/docs/slidev/getting-started) for setup and security guidance.

## Live reactions in Slidev

The official add-on keeps up to 20 active emoji reactions in the overlay by default. Reactions received at capacity are dropped rather than queued; accepted reactions expire after three seconds.

Use `inalia.emoji.limit` in the deck's root frontmatter to change the presentation-wide limit. Use `inalia.emoji: false` to hide the overlay globally or on an individual slide. A slide's `emoji: true` overrides global hiding. These settings affect the overlay, not whether Inalia accepts audience reactions. Hiding the overlay retains its bounded buffer briefly, so unexpired reactions can reappear when shown again.

See [Live reactions in the Slidev reference](/docs/slidev/reference#live-reactions) for configuration examples and limit rules.

## Demo mode

Demo mode is a per-talk setting. In a connected Slidev deck using the official add-on, choose **Enter Demo Mode** (the debug icon) in the navigation controls. Choose **Exit Demo Mode** to turn it off. Each successful change reloads the deck and requires a token with both **read** and **write** permissions. Closing Slidev does not turn demo mode off.

It lets participation events be demonstrated without saving new poll answers, audience questions, feedback messages, or feedback reactions.

It does not erase data already collected. It also does not bypass the talk's running state or feature requirements.

Voting and audience-question highlighting are unavailable in demo mode. Disable demo mode before a real session; otherwise participation may appear live without being saved.

A duplicated talk inherits the original's demo-mode setting, so review it before presenting.
