Reference

Command reference

Find every Drever command, option, default, and the detailed guide that owns its behavior.

Run commands from the presentation project root. The examples below use npm's project-local runner so the command and output match the Drever version installed with the deck:

bash
npm exec -- drever check
pnpm exec drever check
yarn exec drever check
bunx --no-install drever check

Generated projects also provide npm run dev, npm run check, npm run build, and npm run export. Do not depend on a globally installed drever binary.

For every command that accepts [entry], an explicit path wins over entry in drever.config.ts; otherwise Drever uses slides.mdx. Deck entries must be .md or .mdx files.

You do not need to memorize this interface. Ask your agent for the outcome you want; this page keeps the underlying commands transparent, reproducible, and available for CI or manual use.

Command summary

CommandPurpose
drever create [directory] [options]Create an AI-ready presentation project.
drever dev [entry] [--open studio] [--agent <name>] [--topic <text>]Run the local creation room and presentation surfaces.
drever studio status [--json]Read the local creation-room state for an agent.
drever studio wait --after <revision> [--timeout <seconds>] [--json]Wait for browser actions after an agent cursor.
drever studio publish --file <path> [--json]Publish validated agent progress to the creation room.
drever context [entry] [--json]Resolve the complete authoring contract.
drever current [--json]Read the latest connected live presentation position.
drever mcp [entry]Serve the read-only Drever MCP over stdio.
drever agent sync [options]Install or refresh project-local AI workflows.
drever doctor [--json]Inspect local runtime and delivery prerequisites.
drever browser install [--with-deps]Install Drever's matching Playwright Chromium.
drever check [entry] [options]Check authored source and optional rendered states.
drever build [entry] [--json]Build the static presentation website.
drever export pdf [entry] [options]Export final slides or exact Step states to PDF.
drever design import <url> [options]Derive a local Pass-0 Theme from rendered evidence.

Help and version

bash
drever --help
drever -h
drever --version
drever -v

Running drever without a command also prints the top-level help. Use drever create --help for the creator's complete option list. Other commands reject unknown flags rather than forwarding them to Vite.

Create and preview

Create a project

text
drever create [directory]
  [--agent <all|auto|codex|claude|none>]
  [--open <codex|claude>]
  [--package-manager <npm|pnpm|yarn|bun>]
  [--no-install]
  [--json]
  [-h|--help]

The directory defaults to the current directory. Drever installs dependencies and both Codex and Claude Code workflows by default. It detects the active package manager, falling back to npm. --no-install leaves installation to the caller; --json emits a machine-readable receipt.

--open codex or --open claude opens the new project with a prepared task and requires the matching --agent target or the default all. Creation never overwrites existing project files.

The usual npm entry point is the equivalent creator package. Put creator options after npm's -- separator:

bash
npm create drever@latest my-slides
npm create drever@latest my-slides -- --open codex

See Getting started.

Run the development preview

text
drever dev [entry]
  [--open studio]
  [--agent <codex|claude|gemini|copilot|goose|cursor|opencode|openhands|cline>]
  [--topic <text>]

The command starts one HMR-enabled local server and prints Creation room, Storyboard, and Speaker URLs beside Vite's Audience URL. --open studio opens the exact local Creation room after Vite chooses its port. --agent starts a managed local session with the already-installed and authenticated agent CLI: Codex and Claude Code use native transports; Gemini CLI, GitHub Copilot CLI, Goose, Cursor CLI, OpenCode, OpenHands, and Cline use ACP. Omitting it keeps the portable journal bridge. The development terminal also prints deduplicated Studio action and phase changes. A quiet Vite terminal is not an idle-agent signal; use these semantic lines or drever studio status --json before deciding that a managed workflow stopped. Drever keeps the exact Creation room URL in the terminal scrollback. Closing the last Studio tab prints the address again immediately, and later semantic phase changes keep it near the latest output while no Creation room is open. --topic requires --open studio and prefills the Brief without submitting it, so an agent can carry a topic from the original request into Studio without asking for it twice. The text is not included in the printed Creation room URL.

The /studio route coordinates the common brief, adaptive questions, plan approval, a navigable Live Draft with speaker notes, public agent activity, tool approvals where supported, and later feedback. Its compact status surface follows the current public work summary. It distinguishes an editable first preview, active refinement, review readiness, and a paused refinement without hiding the last available draft. After feedback is acknowledged, that status remains visibly pending, reconnecting, or refining until the durable action settles. Managed adapters automatically restart and replay one interrupted delivery from the same journal revision before asking for manual recovery. Managed Codex keeps workspace-write and on-request protections while Auto-review handles eligible approval requests; any provider request that still surfaces a user decision keeps the existing Studio approval path. /storyboard reads only drever.plan.json, so it can open before the configured MDX entry exists or compiles; Audience and Speaker still require the deck. Configure host, open, port, and strictPort under server in drever.config.ts; dev deliberately exposes no raw Vite flags and there is no separate drever preview command.

See Configuration and Presenting.

Coordinate the local creation room

text
drever studio status [--json]
drever studio wait --after <revision> [--timeout <seconds>] [--json]
drever studio publish --file <path> [--json]

These are agent-facing bridge commands; people normally use the browser room instead of running them. status creates or reads the local session and reports latestActionRevision, which is the cursor for the next wait. wait returns every later action in order, defaults to 45 seconds, and accepts at most 300 seconds so an agent can poll in bounded turns.

Without dev --agent, the room coordinates an agent task that is already running; opening /studio alone does not start or reconnect a model. If that task stops polling, submitted actions remain safely queued until it resumes. With a managed adapter, Studio receives public summaries and tool lifecycle events directly and returns Codex or ACP approval choices through the same local connection. Claude Code streams progress but currently retains approvals in its provider policy.

publish accepts a project-local JSON file containing only the versioned agent phase, handled action revision, optional adaptive questions, draft-review suggestions, progress, and message. It validates the complete payload before replacing the visible agent state. The browser can request only the supported brief, answer, approval, analysis-only draft review, and deck- or slide-feedback actions; it cannot name or write arbitrary files.

Session files under .drever/studio are ephemeral local coordination state. Do not commit them or put API keys and provider transcripts in them. The CLI, client, and schema ship this local protocol in lockstep; the session directory is not a migration or downgrade format. Stop the server and remove it before reopening the same project with an older Drever version. The creation room is served only by drever dev and is absent from production, export, and audience bundles. See Studio.

Inspect and connect AI tools

Resolve authoring context

text
drever context [entry] [--json]

Human output is a concise summary. --json returns the resolved slide and Step manifest, source ranges, canvas, Theme, layouts, components, plugins, and source preflight. This is planning evidence; it does not render React or judge visual quality.

See AI workflows: authoring context.

Read the current slide

text
drever current [--json]

While drever dev is running, this reads the most recently updated open Audience or Speaker window. The JSON form includes its source path, exact route, slide, sparse Step, surface, and any selected static MDX element. The command fails clearly when no live interactive window is connected and does not accept an entry argument.

See AI workflows: current position.

Serve the read-only MCP

text
drever mcp [entry]

The dependency-free stdio server exposes context, slide listing, exact slide source, source preflight, and the optional live position. Its tools are read-only, and stdout is reserved for JSON-RPC messages. MDX edits are reread on each call; restart the server after changing config, Theme, or plugin registrations.

See AI workflows: optional read-only MCP.

Refresh project-local AI workflows

text
drever agent sync [--target <all|auto|codex|claude>]

Use --target all to install both adapters. An omitted target updates Codex; auto follows existing Codex or Claude Code project markers and otherwise chooses Codex. Sync updates only Drever-owned files and managed instruction blocks; it reports a conflict instead of replacing unmarked user-owned content.

See AI workflows.

Validate and deliver

Inspect the environment

text
drever doctor [--json]

This read-only diagnostic checks the required Node.js version and deck entry. A missing project-local Drever package or Playwright Chromium is reported as a warning because not every workflow needs the browser. doctor never installs software or starts a browser.

See Troubleshooting and support.

Install the matching browser

text
drever browser install [--with-deps]

This installs the Chromium revision required by the project-local Drever CLI. It is needed for rendered preflight, website design import, and PDF export. Use --with-deps when a Linux host also needs Playwright's operating-system packages.

See Rendered review and PDF export.

Check source and rendered states

text
drever check [entry] [--rendered] [--evidence <directory>] [--json]

The default fast check reports source diagnostics. --rendered additionally builds an isolated inspection app and captures Step 0 plus every exact authored Step. It requires Playwright Chromium. --json emits the versioned report used by agents and CI. The process exits nonzero when errors remain; warnings stay visible without blocking delivery.

With --rendered, --evidence <directory> also writes settled-state screenshots, forward and reverse transition samples, contact sheets, integrity hashes, and a versioned manifest for visual review. The manifest and JSON receipt share the exact inspection build's SHA-256 fingerprint; a failed refresh cannot leave an older manifest looking current. It never creates or mutates the production build.

See Rendered review.

Build the static website

text
drever build [entry] [--json]

The default output is dist/, or the safe project-local directory configured by build.outDir. A publishable build requires deck.lang. --json suppresses ordinary build output and emits a versioned artifact receipt with absolute source and output paths.

See Build a static website.

Export PDF

text
drever export pdf [entry]
  [--steps]
  [--slides <range>]
  [-o|--output <path>]
  [--json]

By default, Drever exports the final authored Step of every slide to <entry-basename>-export.pdf in the project root. --steps includes Step 0 and every exact compiled stop. --slides accepts one-based numbers and inclusive comma-separated ranges such as 2-5,8; it composes with --steps. A custom output must end in .pdf. Export requires deck.lang and Playwright Chromium.

--json emits a versioned PDF artifact receipt.

See Export PDF.

Import design evidence

Start a Theme from a website

text
drever design import <url>
  [--name <name>]
  [--output <directory>]
  [--color-scheme <light|dark>]
  [--allow-private]
  [--json]

The default color scheme is light. Without --name or --output, Drever derives a Theme name and design/<hostname-slug> directory from the URL. The command requires Playwright Chromium and writes rendered evidence plus a local Pass-0 Theme into a new or empty, non-symlink child directory of the project. It never overwrites existing design files or copies the source website.

Only public HTTP and HTTPS URLs are reachable by default. Use --allow-private deliberately for a trusted localhost or private-network reference; this grants reachability, not trust. --json returns the versioned import receipt.

See Themes and art direction: import design evidence.

NextConfiguration

Set the entry, canvas, Theme, server, build, rehearsal, focus tools, Stage, and plugins.