Showwright compiles JSON show definitions into vMix broadcast presets (.vmix / .vmixZip).
I use it to turn a one-file episode definition (guests, cameras, assets, scripts) into a portable vMix bundle ready to open on a studio machine.
shows/demo-episode.json + templates/ + profiles/
│
▼
vmix-compile build
│
▼
output/demo.vmixZip
From a clone (supported path):
# requires Python 3.11+ and uv: https://docs.astral.sh/uv/
uv sync --extra dev
# optional YAML round-trip converter
uv sync --extra dev --extra convertConsole scripts: vmix-compile, vmix-convert.
There is no published PyPI package yet. Install from source as above. The installable package name is showwright; console scripts remain vmix-compile and vmix-convert.
uv run vmix-compile validate shows/demo-episode.json
# Episode mode is stricter (closing_url, guest_assets, guest headline).
# Use it on your own complete show files; the demo show is basic-mode only.
uv run vmix-compile build shows/demo-episode.json \
--templates-dir templates \
--profiles-dir profiles \
-o output/demo.vmixZipLoose .vmix instead of zip:
uv run vmix-compile build shows/demo-episode.json --loose -o output/demo.vmixuv sync --extra convert
uv run vmix-convert to-yaml path/to/file.vmix -o exploded/
uv run vmix-convert to-vmix exploded/ -o roundtrip.vmix| Piece | Role |
|---|---|
| Show JSON | Episode: guests, assets, lower thirds, scripts |
| Templates | Base vMix preset structure |
| Machine profile | Device labels for cameras and audio |
| Asset library | File paths for intros, music, titles |
vmix-compile |
Validate and build |
vmix-convert |
Explode/rebuild .vmix as YAML |
Production rule sets under jcs/ and validators named jcs are the studio rule pack used in tests and demos. Examples under shows/ and profiles/ are synthetic.
- Driving a live vMix instance over the network
- Shipping real client presets or guest rosters
- A published PyPI wheel (source install only for now)
uv sync --extra dev --extra convert
uv run pytest
uv run python scripts/template_drift_check.pyMIT. See LICENSE.