---
title: open-slide dev
description: Run the dev server with hot reload, inspector, and assets panel.
---

```npm
open-slide dev
# or, via the generated script
npm run dev
```

Boots a Vite-powered dev server on `http://localhost:5173` (or the next free
port). Hot module reload is wired up for both the runtime and your slide
files — saving an `index.tsx` updates the canvas without losing slide state.

## What you get

- **Slide browser** — list of every deck under `slides/`.
- **Canvas** — the active page, scaled to fit the viewport.
- **Inspector** — click any element to edit it visually, drop a
  `@slide-comment`, or both.
- **Assets panel** — drag, rename, replace, plus svgl logo search.
- **Present mode** — fullscreen playback with presenter view.

## Flags

| Flag                  | Default         | Description                                                       |
| --------------------- | --------------- | ----------------------------------------------------------------- |
| `-p, --port <port>`   | from config     | Override the listening port.                                      |
| `--host [host]`       | localhost only  | Expose the dev server on the network. Optional host pin.          |
| `--open`              | off             | Open the browser on start.                                        |
| `--no-skills-check`   | off             | Skip the built-in skills drift check.                             |

The skills check also obeys the `OPEN_SLIDE_SKIP_SKILLS_CHECK=1`
environment variable — useful in CI or container builds where stdin
isn't a TTY.

## Configuration

Override the port (and a few other knobs) in `open-slide.config.ts`:

```ts title="open-slide.config.ts"
import type { OpenSlideConfig } from '@open-slide/core';

const config: OpenSlideConfig = {
  port: 5174,
  slidesDir: 'slides',
};

export default config;
```
