--project <path> is global and defaults to splice.json. Every command prints
one JSON object on stdout; view and find print plain text unless given --json.
Setup
init — create a project
init — create a project
splice init --size WxH --fps NWrites splice.json and prints {"ok":true,"canvas":{...},"project":"splice.json"}.doctor — is this machine usable?
doctor — is this machine usable?
splice doctorReports ffmpeg (version, path, which rule chose it), encoders, filters, the
resolved font, credentials, config path and cache usage. Exits 4 when ffmpeg
is missing or lacks libx264/libass.config — keys and models
config — keys and models
splice config set <provider>.<field> [VALUE] [--stdin] [--from-env VAR]
splice config listProviders: gemini, deepgram, whisper. Secrets only via --stdin or
--from-env. list shows set/missing, the source, and a key fingerprint.ffmpeg — fetch a verified engine
ffmpeg — fetch a verified engine
splice ffmpeg installDownloads a pinned static ffmpeg+ffprobe, verifies sha256, installs into the
user cache. A second run is a no-op. Codes: ffmpeg_install_network,
ffmpeg_install_hash, ffmpeg_install_io, ffmpeg_install_unsupported.update — move to the newest release
update — move to the newest release
splice update [--check]Asks the npm registry for latest and installs it with npm. Only moves
forward. Codes: update_network, update_no_npm, update_failed.