CLI Commands
All commands are run with dune (or deno task dune).
Development
| Command |
Description |
dune dev |
Start dev server with hot-reload. Watches content and themes for changes. |
dune serve |
Start production server. Uses pre-built content index. |
dune serve --port 3000 |
Serve on a specific port. |
Build & Cache
| Command |
Description |
dune build |
Build content index, validate config. Run before production serving. |
dune build --static |
Generate a fully static site into dist/ (SSG). |
dune cache:clear |
Delete all cached data (rendered HTML, content index, images). |
dune cache:rebuild |
Rebuild content index from scratch. Use after bulk content changes. |
Static build options (dune build --static)
| Option |
Default |
Description |
--out <dir> |
dist |
Output directory |
--base-url <url> |
config.site.url |
Canonical base URL for sitemap and feeds |
--no-incremental |
— |
Rebuild all pages regardless of content changes |
--concurrency <n> |
8 |
Number of pages to render in parallel |
--hybrid |
— |
Emit _routes.json, _redirects, _headers for edge deployments |
--include-drafts |
— |
Include unpublished pages |
--verbose |
— |
Print each rendered route |
See Static Site Generation for full documentation.
Configuration
| Command |
Description |
dune config:show |
Display the final merged config with source annotations showing where each value comes from. |
dune config:validate |
Validate all config files against schemas. Reports errors with suggestions. |
Content
| Command |
Description |
dune content:list |
List all pages with their routes, templates, and publish status. |
dune content:check |
Validate all content: broken links, missing templates, orphaned media. |
dune content:i18n-status |
Report translation coverage across all configured languages. |
Plugins
| Command |
Description |
dune plugin:list |
List all installed plugins with their registered hooks and config fields. |
dune plugin:install <src> |
Add a plugin to config/site.yaml. |
dune plugin:remove <src|name> |
Remove a plugin from config/site.yaml. |
dune plugin:create [name] |
Scaffold a new plugin project at plugins/{name}/. |
dune plugin:publish [name] |
Publish a local plugin to JSR (runs deno publish). |
dune plugin:search <query> |
Search JSR for Dune-compatible plugins. |
dune plugin:update [name] |
Update a JSR or npm plugin to its latest version. Omit name to update all. |
Scaffolding
| Command |
Description |
dune new [name] |
Create a new Dune site with starter content and default theme. |
Config show example
$ dune config:show
site.title: "My Site" ← config/site.yaml:1
system.cache.enabled: false ← config/env/development/system.yaml:3
system.cache.driver: "memory" ← default
system.debug: true ← config/env/development/system.yaml:5
theme.name: "default" ← default
Each value shows exactly where it came from in the merge hierarchy.