Recipes.
One task, one page. Commands you can copy, outcomes you can reproduce. Grouped by the tool they apply to.
screenjson-cli
16 recipes
-
Convert FDX to ScreenJSON
Take a Final Draft .fdx file and produce a valid ScreenJSON document using the CLI.
beginner
-
Convert Fountain to ScreenJSON
Convert a .fountain or .spmd file to a valid ScreenJSON document, with language tagging and optional YAML output.
beginner
-
Convert FadeIn to ScreenJSON
Convert a FadeIn .fadein archive (OSF XML inside a ZIP) to ScreenJSON.
beginner
-
Convert PDF to ScreenJSON
Turn a PDF screenplay into a structured ScreenJSON document using the CLI and Poppler's pdftohtml.
intermediate
-
Export ScreenJSON to FDX
Emit a valid Final Draft .fdx file from a ScreenJSON document.
beginner
-
Export ScreenJSON to Fountain
Emit a plain-text .fountain screenplay from a ScreenJSON document.
beginner
-
Export ScreenJSON to PDF
Render a ScreenJSON document as a studio-quality PDF screenplay with Courier Prime, correct margins, and pagination.
intermediate
-
Export ScreenJSON to FadeIn
Emit a FadeIn .fadein archive (OSF XML inside a ZIP) from a ScreenJSON document.
beginner
-
Validate a ScreenJSON document
Check a ScreenJSON document against the published JSON Schema, locally or in CI.
beginner
-
Encrypt a ScreenJSON document
Apply AES-256 encryption to the text runs in a ScreenJSON document while keeping structure, UUIDs, and metadata visible.
intermediate
-
Decrypt a ScreenJSON document
Recover plain text from an encrypted ScreenJSON document using the shared secret.
intermediate
-
Round-trip FDX → JSON → FDX
Take a Final Draft file, convert it to ScreenJSON, and export back to a new Final Draft file to verify structural fidelity.
beginner
-
Batch convert a folder of FDX files
Shell one-liners for converting every .fdx in a directory, with optional parallelism and validation.
beginner
-
Run screenjson-cli in Docker
Use the official Docker image for conversion, export, validation, and server mode without installing Go locally.
beginner
-
Run screenjson-cli in GitHub Actions
Validate every ScreenJSON document in your repo on every push and pull request.
beginner
-
Start the ScreenJSON REST API server
Run screenjson-cli in server mode and hit its REST endpoints for convert, export, and validate operations.
intermediate
screenjson-ui
5 recipes
-
Embed screenjson-ui in a plain HTML page
Add the ScreenJSON viewer to any HTML page with a single script tag and a target element — no build step required.
beginner
-
Embed screenjson-ui in React
Wrap the ScreenJSON viewer in a React component and hand it a ScreenJSON document.
beginner
-
Embed screenjson-ui in Svelte
Drop the native Svelte component into a SvelteKit app, with type-safe props and reactive theme switching.
beginner
-
Theme screenjson-ui dark and light
Switch the ScreenJSON viewer between dark and light themes, and persist the user's choice.
beginner
-
Load a ScreenJSON document by URL
Fetch a ScreenJSON file from any reachable URL and render it with screenjson-ui.
beginner
Greenlight
6 recipes
-
Deploy Greenlight with Docker Compose
Stand up Greenlight locally with Redis, MinIO, and the Greenlight service in one docker-compose command.
beginner
-
Configure task pipelines in Greenlight
Declaratively compose conversion, validation, encryption, and packaging tasks into repeatable Greenlight pipelines.
intermediate
-
Use S3 as blob storage for Greenlight
Configure Greenlight to ingest from and deliver to AWS S3 buckets.
intermediate
-
Use MinIO as blob storage for Greenlight
Run Greenlight against a self-hosted MinIO instance — ideal for local dev, on-prem deployments, or air-gapped pipelines.
intermediate
-
Use Azure Blob Storage for Greenlight
Point Greenlight at an Azure Blob Storage container for ingest and delivery.
intermediate
-
Migrate an FDX archive to ScreenJSON
A practical pipeline for migrating a large back-catalogue of Final Draft files into validated ScreenJSON documents with preserved originals.
advanced
Schema & data
13 recipes
-
Store ScreenJSON in MongoDB
Write ScreenJSON documents directly into a MongoDB collection from the CLI, or index them programmatically.
intermediate
-
Store ScreenJSON in DynamoDB
Use DynamoDB as the authoritative store for ScreenJSON documents keyed by UUID.
intermediate
-
Store ScreenJSON in Elasticsearch
Index ScreenJSON into an Elasticsearch cluster for full-text search, faceted browsing, and aggregations.
intermediate
-
Query ScreenJSON with jq
Useful jq one-liners for extracting counts, cast lists, per-character dialogue, and scene tags from a ScreenJSON document.
beginner
-
Extract dialogue for a single character
Pull every line of dialogue spoken by a specific character across the whole screenplay, in source order.
beginner
-
Count speaking lines per character
Produce a tally of how many lines each character speaks across the whole screenplay, sorted descending.
beginner
-
Version-control screenplays as ScreenJSON
Commit ScreenJSON files to Git, diff drafts line-by-line, and keep every revision reviewable.
beginner
-
Diff two drafts of a screenplay
Compare two ScreenJSON files and produce a human-readable, scene-accurate diff report.
intermediate
-
Generate a production report from ScreenJSON
Produce a scene breakdown, cast report, and location summary from a single ScreenJSON file.
intermediate
-
Localise dialogue into multiple languages
Add translated text to a ScreenJSON document by merging language-keyed entries into each element's text map.
intermediate
-
Generate embeddings for semantic search
Populate the analysis.embeddings block in a ScreenJSON document for RAG and semantic search pipelines.
advanced
-
Feed ScreenJSON into an LLM for analysis
Prompt patterns and context-assembly techniques for asking an LLM structured questions about a ScreenJSON document.
advanced
-
Build a screenplay search index
Turn a folder of ScreenJSON documents into a searchable index using a lightweight JS search library or a full-text search engine.
intermediate