About this project

Open Presentation Format (OPF) is a portable, human-readable JSON document format for slide decks. This repository is the canonical home for the format specification, JSON Schemas, catalog presets, examples, generated developer types, local validation tooling and planning documents for a future render/edit/convert toolkit. It is published on npm as @openpresentation/opf, currently pre-stable (0.x, with breaking changes expected between minor versions before 1.0), under the MIT license. Motivation: .pptx is a zipped bundle of XML that is hard for humans to diff, hard for models to read and write reliably, and hard for git to track meaningfully, so every change looks like a binary blob. OPF is plain JSON — readable in an editor, writable by a model without guessing the schema by example, and trackable in version control alongside other work. The stated aim is to let LLMs take part in authoring decks (narrative structure, framing, data analysis, chart suggestions, revision) rather than fighting markup tags. Conventions and naming: OPF documents are JSON files named *.opf.json (for example board-review.opf.json) for complete presentations. The project advises against a bare *.opf extension because it is already used by other document and project formats. The name Open Presentation Format and the schemas, catalogs, packages and local tooling may be used by third-party tools to read, write, validate, render, convert and describe support without adopting product-specific branding. What the JavaScript/TypeScript package does: it exports the canonical schemas and bundled catalog records from spec/, a typed raw spec file manifest for package-addressable spec content, generated TypeScript types with Presentation as the top-level type, and local validation for OPF JSON and catalog records. Validation returns validity plus advisory warnings, for example unknown catalog ids. Focused subpath imports are available for schemas, catalogs, spec files, validator and types, and raw JSON schemas can be imported directly by engines or resolvers. The package also exposes pure composition geometry so downstream libraries share layout behavior. It explicitly does not render or parse .pptx, generate content with AI, fetch remote catalogs, call hosted APIs or provide managed services. Local tooling: an installable MIT-licensed CLI can create, validate, edit and inspect OPF files locally, for example creating a deck with a title, validating a file, or applying a patch in place. A CLI 0.5.0 command installs six OPF skills into a project for AI agents, using local copies, preserving existing instructions and refusing to overwrite customized skills, with documented targets and pre-release testing. Documentation covers agent skills, LLM authoring, dynamic composition and local ecosystem verification. Repository layout highlights: the canonical JSON Schema for top-level Presentation documents; conceptual introduction to the document model, content shapes, catalog resolution and validation philosophy; a design precedence algorithm (slide design, deck design, resolved theme, engine defaults); author-facing references for top-level fields, schema definitions, companion catalog schemas and slide/region content payloads including charts and tables; guides to technical fixtures and scenario-oriented gallery examples; live editor notes on browser canvas, font loading and current fidelity limits; and a maintainer release runbook. An optional reference OpenAPI contract exists for downstream services that choose to expose OPF over HTTP, but OpenPresentation does not host that API. Ecosystem boundary: render, edit and convert capabilities live in separate MIT sibling repositories — opf-render (OPF to SVG/PNG/PDF), opf-editor (headless editor primitives plus optional UI components) and opf-pptx (pure local PPTX import/export). These provide open-source primitives only; downstream applications own hosting, authentication, storage, collaboration, queues, previews, analytics, support and workflow UX. Future Python and Go packages are expected to follow the same local-first boundary, exposing schemas, models, catalogs, validation and package-addressable assets without required network calls or hidden telemetry. Human-browsable catalog presets such as layouts, themes, color and font schemes, chart types, narratives, audiences, purposes, tones, languages and social platforms are referenced through pptx.gallery.