Documentation
autopresenter docs
One Markdown composition + one design system → on-brand artifacts. This is the working reference; the full specs live in the repo.
What it is
autopresenter is a local-first, agent-native studio. A short business brief generates a machine-readable DesignSystem (visual tokens + verbal identity); every artifact — slides, a narrated demo video, a GIF, and a landing page — inherits it, so output is on-brand by construction. Slides are one projection of a shared brand IR, not the product.
Install & run
git clone https://github.com/OpenHackersClub/autopresenter && cd autopresenter
node src/cli.ts render examples/autopresenter/deck.md --target slides -o dist/
node src/cli.ts present examples/autopresenter/deck.md # live hot-reload preview Requires Node ≥ 22.18 (native TypeScript). The slides projector has zero npm runtime dependencies.
The composition format
A composition is Markdown with ::: directives. Plain paragraphs are narration (→ presenter
notes / voiceover); headings, lists, and code are on-screen. Two directives override the split.
::: scene { id=intro, layout=title, transition=fade }
# autopresenter
Plain paragraphs become the spoken narration and the speaker notes.
::: show {.step}
- Shown, revealed on click
- Not spoken
:::
::: say
Spoken, never shown on screen.
:::
::: Full grammar: specs/composition-format.md.
The design system
The DesignSystem is Markdown + YAML frontmatter (design-system.md) — typed
tokens and short verbal config in the frontmatter, the messaging hierarchy and copy in the body. Tokens are
data (path-patchable, schema-validatable); copy is prose. The same parser and patch protocol as the brief
and the composition.
---
visual:
color: { brand: "#7c6cff", accent: "#3ee6c0", bg: "#080a14" }
type: { display: "Inter Tight", body: "Inter", scale: [13,15,18,23,32,46,72] }
verbal:
taglines: ["Brief in. On-brand everything out."]
---
# Messaging
## Product team
**Every asset, on brand, in one pass.** Reference: specs/design-system.md.
CLI
autopresenter render <deck.md> --target slides [-o <dir>] [--ds <design-system.md>]
autopresenter render <deck.md> --target video [-o <out.mp4>] [--speaker asteria] [--duration 90]
autopresenter present <deck.md> [--port 4321] # live hot-reload preview Every command is headless with JSON output and has MCP parity, so an agent loop can go brief → design system → artifacts with no GUI in the path.
The narrated video
The video target renders each scene to an SVG poster (rsvg-convert, no browser), narrates it
with Cloudflare Workers AI — Deepgram Aura-2 (lossless WAV), and muxes with ffmpeg.
--duration time-fits the result (pitch-preserving). Post-process guards keep text off the
footer, prevent blank/black frames, and normalize audio. Code blocks render as code panels; the
stat layout renders as an infographic.
- Voice:
--speaker— asteria (default), luna, orion, zeus, arcas, … - Needs system binaries
ffmpeg+rsvg-convert(the slides target stays zero-dependency).
Architecture
Two intermediate representations sit beneath the artifacts. A DesignSystem — visual tokens plus verbal identity, generated from the brief — is the canonical creative IR every artifact inherits, so brand is applied by construction rather than re-specified per tool: change a token or a tagline and every artifact re-derives. Beneath the creative layer, a composition lowers to a SceneGraph, a target-agnostic structural IR, and each output is a projection of it. Slides project straight to a self-contained HTML deck; video and GIF project to an EditList — timed clips, camera moves, and narration cues — rendered by the compositor; the landing page is a sibling web projector that bypasses the SceneGraph entirely, because a site is not a timeline.
The default pipeline is local-first and runs fully offline. An opt-in Cloudflare cloud tier is additive: cross-device and teammate sync via content-addressed objects on R2, durable multi-step processing on Workflows, and a single egress for cloud models through AI Gateway. The local store stays the source of truth and nothing requires the network. The native macOS render core, the ComfyUI-style production graph, and the full data model are detailed in the PRD.