Skip to content

init

Scaffolds a new Slide Spec project.

bash
npx @slide-spec/cli init

Running init without flags starts interactive mode, which walks you through project titles, reporting period, optional connector configuration, and branding.

For CI or scripting, pass required flags directly:

bash
npx @slide-spec/cli init \
  --presentation-id 2026-spring-briefing \
  --title "Spring Product Brief" \
  --subtitle "Spring 2026" \
  --from-date 2026-03-01

Flags

FlagRequiredDescription
[project-root] (positional)Target directory. Defaults to current directory
--project-rootAlternative to the positional argument
--presentation-idnon-interactiveDirectory name under presentations/; use only letters, numbers, dots, underscores, and hyphens
--titlenon-interactivePresentation title
--subtitlePresentation subtitle
--from-datenon-interactiveReporting period start
--to-dateReporting period end
--summarySummary shown in the presentation list
--repository-urlRepository link written to site.yaml
--docs-urlDocumentation link written to site.yaml
--website-urlProject website or community link written to site.yaml
--github-data-source-urlGitHub repository used by fetch to populate generated.yaml
--forceOverwrite existing files
--from-example [id]Scaffold from a bundled example instead of creating a blank project

"non-interactive" means required only when running with flags instead of prompts.

Output

Creates these files under content/:

content/
├── site.yaml
├── presentations/
│   ├── index.yaml
│   └── <presentation-id>/
│       ├── presentation.yaml
│       └── generated.yaml

If site.yaml or index.yaml already exist, they are updated rather than overwritten (unless --force is used).

Scaffolded YAML files start with Slide Spec homepage and documentation links, then include yaml-language-server comments that point to the public Slide Spec JSON Schemas for editor validation and autocomplete.

When --github-data-source-url is provided, init writes a GitHub connector entry to site.yaml. fetch can then populate generated.yaml for that project without additional connector configuration.