Skip to content

CLI reference ​

Every reelforge command and option, generated from the command definition in packages/cli/src/index.ts. On Windows run reelforge.cmd, on macOS and Linux ./reelforge, or pnpm reelforge from a source checkout. Exit codes: 0 success, 1 failure (or validation errors), 2 usage error. The command line guide explains environment variables and common workflows.

Global options ​

These options go before or after any command.

OptionDescriptionDefaultRequired
-V, --versionoutput the version number
--verbosemore output (info messages, logs)
--jsonmachine-readable JSON output
--root <dir>project root (default: $REELFORGE_ROOT or the current directory)

Commands ​

CommandDescription
reelforge studioopen the project dashboard: create episodes, upload voice, open the editor, validate and render
reelforge newcreate episodes/<id>/episode.yaml from a commented template
reelforge packslist industry packs and their templates with slots
reelforge cueopen the editor in Cues mode: mark when each line starts (writes cues.json)
reelforge alignmark cues automatically from the voice recording (lines and words; writes cues.json)
reelforge editopen the visual editor: canvas, layers, inspector and timeline (writes episode.yaml)
reelforge devopen the editor in Review mode: checks, safe zones, element outlines
reelforge validatecheck schema, cues, timing, layout, safe zones and text overflow
reelforge renderrender master + share MP4, SRT, contact sheet and publish.md
reelforge snapwrite PNG frames at times (seconds or time expressions) and a contact sheet
reelforge doctorcheck Node, ffmpeg, Chromium and fonts; print install steps
reelforge theme newgenerate a complete themes/<name>.theme.yaml (WCAG AA contrast) from one accent color
reelforge mcprun the Model Context Protocol server on stdio (for AI assistants and agents)
reelforge schemawrite the episode JSON Schema (editor autocompletion)

reelforge studio ​

open the project dashboard: create episodes, upload voice, open the editor, validate and render

text
reelforge studio [options]
OptionDescriptionDefaultRequired
--port <port>port (default 4310 or $REELFORGE_PORT)
--host <address>bind address (default 127.0.0.1 or $REELFORGE_HOST); other addresses require the bearer token
--no-opendo not open the browser

reelforge new ​

create episodes/<id>/episode.yaml from a commented template

text
reelforge new [options] <id>
ArgumentDescriptionRequired
idepisode id (slug)yes
OptionDescriptionDefaultRequired
--series <name>series name shown in the header
--episode <n>episode number
--lang <en|ar>language of the template script (default en)
--pack <id>start from an industry pack template (see reelforge packs)
--template <id>template of the pack (default: the pack's first template)
--slot <key=value>template slot value (repeatable); missing slots keep their defaults

reelforge packs ​

list industry packs and their templates with slots

text
reelforge packs [options]
OptionDescriptionDefaultRequired
--lang <en|ar>language of names and slot defaults (default en)

reelforge cue ​

open the editor in Cues mode: mark when each line starts (writes cues.json)

text
reelforge cue [options] <id>
ArgumentDescriptionRequired
idepisode id or pathyes
OptionDescriptionDefaultRequired
--draftwrite estimated cues instead (preview before recording)
--port <port>port (default 4317 or $REELFORGE_PORT)
--preset <name>override meta.preset
--no-opendo not open the browser

reelforge align ​

mark cues automatically from the voice recording (lines and words; writes cues.json)

text
reelforge align [options] [id]
ArgumentDescriptionRequired
idepisode id or path
OptionDescriptionDefaultRequired
--engine <name>auto: whisper when installed, else dsp (one of auto, dsp, whisper)
--model <size>whisper model size (default base) (one of tiny, base, small)
--no-vaddetect speech by energy only (skip Silero VAD)
--no-wordsonly line cues
--forcereplace cues you marked by hand
--dry-runprint the result without writing cues.json
--setupinstall the optional speech models (one time, ~180 MB in the user cache)
--statusshow which speech models are installed

reelforge edit ​

open the visual editor: canvas, layers, inspector and timeline (writes episode.yaml)

text
reelforge edit [options] <id>
ArgumentDescriptionRequired
idepisode id or pathyes
OptionDescriptionDefaultRequired
--port <port>port (default 4317 or $REELFORGE_PORT)
--preset <name>override meta.preset
--no-opendo not open the browser

reelforge dev ​

open the editor in Review mode: checks, safe zones, element outlines

text
reelforge dev [options] <id>
ArgumentDescriptionRequired
idepisode id or pathyes
OptionDescriptionDefaultRequired
--port <port>port (default 4317 or $REELFORGE_PORT)
--preset <name>override meta.preset
--no-opendo not open the browser

reelforge validate ​

check schema, cues, timing, layout, safe zones and text overflow

text
reelforge validate [options] <id>
ArgumentDescriptionRequired
idepisode id or pathyes
OptionDescriptionDefaultRequired
--strictfail on warnings too
--preset <name>override meta.preset
--no-measureskip the headless V-9/V-10 checks

reelforge render ​

render master + share MP4, SRT, contact sheet and publish.md

text
reelforge render [options] [id]
ArgumentDescriptionRequired
idepisode id or path (or a folder of episodes with --all)
OptionDescriptionDefaultRequired
--allrender every episode in episodes/ (or in the given folder)
--preset <name>tiktok | reels | shorts (default: meta.preset, $REELFORGE_PRESET)
--workers <n>parallel Chromium workers (default: CPU cores − 1, $REELFORGE_WORKERS)
--from <t>partial render start (seconds) → <id>.part.mp4
--to <t>partial render end (seconds)
--share-size <MB>share file size cap (default 28, $REELFORGE_SHARE_SIZE)
--no-sfxrender without sound effects
--no-shareskip the share file
--losslesscapture PNG frames instead of JPEG
--fastfaster master/share encoding (preset medium)
--silentallow rendering without a voice recording
--keep-tmpkeep out/.tmp/<run-id>/ on failure
--no-measureskip the headless V-9/V-10 checks
--denoiseremove background noise from the voice (default: audio.denoise)
--no-denoisekeep the voice as recorded, even when audio.denoise is true

reelforge snap ​

write PNG frames at times (seconds or time expressions) and a contact sheet

text
reelforge snap [options] <id> [times...]
ArgumentDescriptionRequired
idepisode id or pathyes
times...times: 12.5, 12.5s, l7, "l7:'word'", l7.end+0.2
OptionDescriptionDefaultRequired
--every <seconds>one frame every N seconds
--out <dir>output folder (default out/snaps)
--preset <name>override meta.preset
--coverwrite a single 1080×1920 cover image to out/<id>.cover.png

reelforge doctor ​

check Node, ffmpeg, Chromium and fonts; print install steps

text
reelforge doctor [options]
OptionDescriptionDefaultRequired
--fixinstall the pinned Chromium if missing

reelforge theme new ​

generate a complete themes/<name>.theme.yaml (WCAG AA contrast) from one accent color

text
reelforge theme new [options] <name>
ArgumentDescriptionRequired
nametheme name (slug)yes
OptionDescriptionDefaultRequired
--accent <hex>accent color, e.g. #b8ff3c (adjusted only if it would be hard to read)yes
--mode <mode>light or dark background (default dark)
--font <family>bundled font for its slot (display, mono or arabic): Space Grotesk, JetBrains Mono, Cairo, Inter, Manrope, Playfair Display, Noto Kufi Arabic, Noto Naskh Arabic, Readex Pro
--out <file>output file

reelforge mcp ​

run the Model Context Protocol server on stdio (for AI assistants and agents)

text
reelforge mcp [options]
OptionDescriptionDefaultRequired
--toolsets <list>only these toolsets: basic, design, render or all (default all)

reelforge schema ​

write the episode JSON Schema (editor autocompletion)

text
reelforge schema [options]
OptionDescriptionDefaultRequired
--out <file>output file (default schema/episode.schema.json)