Skip to content

Command line

Generated from prec 1.0.2 --help and each subcommand’s help. Input prec can’t parse gets clap’s short answer on stderr with exit 2; a refusal after parsing is one line, prec: …, with exit 1.

Deterministic renders of an app’s TUI and CLI, recorded in a pty and replayed frame by frame into exact video and PNG masters

Usage: prec <COMMAND>
Commands:
shots List an app's terminal shots
clip Render a clip: x264 master, poster and manifest
still Render a still: a 16-bit master and 8-bit PNG deliveries
record Record a shot's session in a pty into an asciicast v2 cast, without rendering
render Render a recorded cast at any size, fps and theme, without re-running the app
archive Retry queued archive copies or rebuild the archive catalog
themes List the themes
doctor Check the machine for everything a render needs
cache Show the machine cache (app sources, shared target dirs, cached builds), or prune it
help Print this message or the help of the given subcommand(s)
Options:
-h, --help Print help
-V, --version Print version

List an app’s terminal shots

Usage: prec shots [OPTIONS] <PRODUCT>
Arguments:
<PRODUCT>
Options:
--app-dir <APP_DIR> The app's folder in this repository, holding render/terminal.toml; default the repository's top
--rev <REV> A tag or commit of this repository to build, render and archive
-h, --help Print help

Render a clip: x264 master, poster and manifest

Usage: prec clip [OPTIONS] <PRODUCT> <SHOT>
Arguments:
<PRODUCT>
<SHOT>
Options:
--app-dir <APP_DIR> The app's folder in this repository, holding render/terminal.toml; default the repository's top
--rev <REV> A tag or commit of this repository to build, render and archive
--bin <BIN> A prebuilt folder holding the app's binary; skips the build
--size <SIZE> The largest delivery: 720p, 1080p, 1440p, 2160p or WxH
--derive <DERIVE> More still sizes from the same master; clips use pconv
--fps <FPS> One of 30, 60 or 120; pconv makes other clip rates
--poster <POSTER> Poster frame for a clip: first, before-closure, or seconds of shown time
--out <OUT> [default: tmp/renders]
--seed <SEED> [default: 7]
--set <SET> key=value: grid=<cols>x<rows>, typing, settle, closure, closure.crossfade, launch, ground
--theme <THEME> app, a built-in scheme (see `themes`), or omarchy:<name> [default: app]
--themes <THEMES> Render once per theme, e.g. "Catppuccin Latte,Catppuccin Mocha"
--font <FONT> The font family; default JetBrainsMono Nerd Font
--frame <FRAME> window or bare
--fixtures <FIXTURES> A materialized fixture set, passed through the app's door
--youtube Clip formats belong to pconv
--keep-frames Keep the raw frames under tmp/prec/run/
--no-encode Write frames only; implies --keep-frames
--web <WEB> Still web copies at these widths, each also at @2x
--profile <PROFILE> Clip formats belong to pconv
--no-archive Skip archive copying
-h, --help Print help

Render a still: a 16-bit master and 8-bit PNG deliveries

Usage: prec still [OPTIONS] <PRODUCT> <SHOT>
Arguments:
<PRODUCT>
<SHOT>
Options:
--app-dir <APP_DIR> The app's folder in this repository, holding render/terminal.toml; default the repository's top
--rev <REV> A tag or commit of this repository to build, render and archive
--bin <BIN> A prebuilt folder holding the app's binary; skips the build
--size <SIZE> The largest delivery: 720p, 1080p, 1440p, 2160p or WxH
--derive <DERIVE> More still sizes from the same master; clips use pconv
--fps <FPS> One of 30, 60 or 120; pconv makes other clip rates
--poster <POSTER> Poster frame for a clip: first, before-closure, or seconds of shown time
--out <OUT> [default: tmp/renders]
--seed <SEED> [default: 7]
--set <SET> key=value: grid=<cols>x<rows>, typing, settle, closure, closure.crossfade, launch, ground
--theme <THEME> app, a built-in scheme (see `themes`), or omarchy:<name> [default: app]
--themes <THEMES> Render once per theme, e.g. "Catppuccin Latte,Catppuccin Mocha"
--font <FONT> The font family; default JetBrainsMono Nerd Font
--frame <FRAME> window or bare
--fixtures <FIXTURES> A materialized fixture set, passed through the app's door
--youtube Clip formats belong to pconv
--keep-frames Keep the raw frames under tmp/prec/run/
--no-encode Write frames only; implies --keep-frames
--web <WEB> Still web copies at these widths, each also at @2x
--profile <PROFILE> Clip formats belong to pconv
--no-archive Skip archive copying
-h, --help Print help

Record a shot’s session in a pty into an asciicast v2 cast, without rendering

Usage: prec record [OPTIONS] <PRODUCT> <SHOT>
Arguments:
<PRODUCT>
<SHOT>
Options:
--app-dir <APP_DIR> The app's folder in this repository, holding render/terminal.toml; default the repository's top
--rev <REV> A tag or commit of this repository to build, render and archive
--bin <BIN> A prebuilt folder holding the app's binary; skips the build
--size <SIZE> The largest delivery: 720p, 1080p, 1440p, 2160p or WxH
--derive <DERIVE> More still sizes from the same master; clips use pconv
--fps <FPS> One of 30, 60 or 120; pconv makes other clip rates
--poster <POSTER> Poster frame for a clip: first, before-closure, or seconds of shown time
--out <OUT> [default: tmp/renders]
--seed <SEED> [default: 7]
--set <SET> key=value: grid=<cols>x<rows>, typing, settle, closure, closure.crossfade, launch, ground
--theme <THEME> app, a built-in scheme (see `themes`), or omarchy:<name> [default: app]
--themes <THEMES> Render once per theme, e.g. "Catppuccin Latte,Catppuccin Mocha"
--font <FONT> The font family; default JetBrainsMono Nerd Font
--frame <FRAME> window or bare
--fixtures <FIXTURES> A materialized fixture set, passed through the app's door
--youtube Clip formats belong to pconv
--keep-frames Keep the raw frames under tmp/prec/run/
--no-encode Write frames only; implies --keep-frames
--web <WEB> Still web copies at these widths, each also at @2x
--profile <PROFILE> Clip formats belong to pconv
--no-archive Skip archive copying
-h, --help Print help

Render a recorded cast at any size, fps and theme, without re-running the app

Usage: prec render [OPTIONS] <CAST>
Arguments:
<CAST>
Options:
--size <SIZE> The largest delivery: 720p, 1080p, 1440p, 2160p or WxH
--derive <DERIVE> More still sizes from the same master; clips use pconv
--fps <FPS> One of 30, 60 or 120; pconv makes other clip rates
--poster <POSTER> Poster frame for a clip: first, before-closure, or seconds of shown time
--out <OUT> [default: tmp/renders]
--seed <SEED> [default: 7]
--set <SET> key=value: closure, closure.crossfade, ground
--theme <THEME> app, a built-in scheme (see `themes`), or omarchy:<name> [default: app]
--themes <THEMES> Render once per theme
--font <FONT> The font family; default the cast's
--frame <FRAME> window or bare
--youtube Clip formats belong to pconv
--keep-frames Keep the raw frames under tmp/prec/run/
--no-encode Write frames only; implies --keep-frames
--web <WEB> Still web copies at these widths, each also at @2x
--profile <PROFILE> Clip formats belong to pconv
--no-archive Skip archive copying
-h, --help Print help

Retry queued archive copies or rebuild the archive catalog

Usage: prec archive <--retry|--reindex>
Options:
--retry
--reindex
-h, --help Print help

List the themes

Usage: prec themes [OPTIONS]
Options:
--all List every built-in scheme too
-h, --help Print help

Check the machine for everything a render needs

Usage: prec doctor
Options:
-h, --help Print help

Show the machine cache (app sources, shared target dirs, cached builds), or prune it

Usage: prec cache [OPTIONS] [COMMAND]
Commands:
prune Remove entries unused for a while (30 days unless --older-than); entries in use stay
help Print this message or the help of the given subcommand(s)
Options:
--json Print one JSON object on stdout
-h, --help Print help

Remove entries unused for a while (30 days unless –older-than); entries in use stay

Usage: prec cache prune [OPTIONS]
Options:
--json Print one JSON object on stdout
--older-than <OLDER_THAN> Age like 30d, 2w, 12h or 90m
--all Remove every entry that is not in use
--dry-run With --json, report what would be removed and remove nothing
-h, --help Print help