Skip to content

CLI reference

Every command, grouped by verb. Each page lists the flags, the defaults and the errors you get when a value is wrong. keryx <command> --help is always the authoritative, build-current flag set; these pages add the behaviour --help has no room for.

Exit codes

Code Meaning
0 success
1 the run failed — a provider was unreachable, a file was missing, a render broke
2 the input was rejected: a malformed or invalid storyboard.json, or a command invoked wrongly. Nothing was attempted

The distinction is there so a script does not have to read stderr to know what to do next. 2 means edit something and re-run; 1 means the same invocation might succeed on a second attempt. A storyboard is validated before any generation, so a 2 never leaves half-finished work or spend behind.

keryx reel build --workspace launch || case $? in
  2) echo "storyboard needs fixing" ;;
  *) echo "build failed — worth a retry" ;;
esac

Setting up and checking the install

These come from the tool framework rather than from Keryx itself, and none of them touch a reel. They have no page of their own — --help covers them — but the first two matter enough to know about.

Command What it does
keryx init Writes ~/.keryx/config.yaml. Every other command fails until this has been run, with failed to load configuration: no config file found. --skip-ai --skip-login --skip-key suppress the interactive credential wizards; --clean resets to defaults.
keryx doctor Runs pass/warn/fail/skip checks over the Go runtime, configuration, credentials and git. keryx doctor report prints a redacted, paste-ready support bundle.
keryx version Version, commit and build date, plus whether a newer release exists.
keryx update Replaces the running binary. --version pins a target, --from-file installs from a local .tar.gz for an offline machine.
keryx changelog The changelog embedded at build time. --latest, --since, --version filter it.
keryx docs Browses the embedded documentation in the terminal. Needs a build that carries the docs assets — a plain go install build omits them.
keryx mcp Runs and registers the MCP server for AI assistants and editors.
keryx completion Generates a shell completion script.

What the MCP surface tells an assistant about cost

keryx mcp exposes most commands as tools. Seven of them spend real money — cover, portrait, cards gen, voice gen, music gen, storyboard draft and reel make — and each one says so in its own description, which is the text an MCP client reads before it decides to call anything. The description names the billing axis, points at --dry-run, and asks the assistant to get your agreement before spending on your behalf.

That disclosure is the confirm. MCP has no interactive prompt: a tool runs as a subprocess with no stdin, so reel make's over-cap question cannot be answered there and such a run is refused rather than asked about. Telling the assistant what a tool costs, and letting it ask you, is the form the protocol actually supports.

The five publishing and credential commands — publish, approve, auth, auth refresh and studio — are not exposed as tools at all. That exclusion is built into the binary and has no runtime switch.

Reel commands

Command Description
approve Approve a platform's reel for posting (the posting gate)
auth Authenticate a platform for posting (interactive OAuth)
auth refresh Refresh/rotate platform tokens and alert on impending expiry
auth migrate Move platform credentials out of the user config into ~/.keryx/accounts.yaml
avatar Manage the avatar registry (recurring actors composited into reels)
avatar add Register an avatar and auto-analyse its likeness/style/palette
avatar list List registered avatars
avatar show Show a registered avatar's profile
cards Generate and select card illustrations; build the contact sheet
cards gen Generate AI card illustrations as candidate takes (--takes)
cards pick Promote a generated card take to the selected slot
cards set Set a card's selected slot from a pre-rendered file
cards sheet Build the contact-sheet screen from card takes
cards screen OCR-screen card takes for accidental text (R-GEN-26)
cover Generate themed cover art for a reel
font Manage the typefaces reels are drawn with
font add Install a font into this project or your user library
font list List the fonts that resolve, and the scope each comes from
font promote Copy a project font into your user library
font rm Remove an installed font
font show Show where one font resolves from, and its declared licence
font use Point a theme's card text at an installed font
music Generate and select the music bed (ElevenLabs Music)
music gen Compose a music bed (standalone --prompt, or --takes into a workspace)
music pick Promote a generated bed take to the selected slot
portrait Generate a stylised avatar portrait (image-to-image)
post Manage an article's posts (social-media posts of an article)
post new Create a post in an article
post list List an article's pieces
post rm Remove a post from an article
publish Publish approved outlets to a platform (or all/due)
reel Build and manage reels
reel build Assemble a reel from a storyboard
reel duplicate Duplicate a reel workspace (starts the copy as a draft)
reel link Associate a reel with a content directory
reel list List the project's reels
reel make Generate every artefact + build the reel in one pass
reel new Create a reel workspace
reel prune Drop candidate takes + cache (keep selected)
reel rename Rename a reel workspace
reel rm Remove a reel workspace
reel plan Show VO-driven timing + pre-build sanity for a reel workspace
reel lock Mark a selected asset as reviewed/approved (immutable until unlocked)
reel unlock Clear the reviewed/approved state for an asset
social Compose a piece's copy, per platform
social gen Generate a piece's copy (LLM)
social set Set a piece's social fields on a platform (inject)
social show Show an article's outlets with constraint checks
storyboard Author the storyboard (draft from a post or inject)
storyboard draft Draft a storyboard from a post (LLM) or inject one
storyboard migrate Apply pending storyboard schema migrations to a workspace
studio Run the local web studio (authoring UI over a reel workspace)
theme Manage the theme catalog (config-driven aesthetics)
theme add Register a new theme
theme edit Edit an existing theme
theme list List the theme catalog
theme rm Remove a theme
theme show Show a theme's full definition
theme use Make a theme the default
theme promote Move a project theme into your user library
theme pin Copy a user theme into this project so CI resolves it
theme migrate Move the theme catalog into ~/.keryx/themes.yaml and flatten it (spec 0047)
voice Generate and select voice-over narration (ElevenLabs)
voice gen Synthesize narration (standalone --text, or --takes into a workspace)
voice pick Promote a generated VO take to the selected slot
voice takes List VO candidate takes with durations + the selected marker
voice lexicon Manage the pronunciation dictionary from a local pronunciation.yaml
voice lexicon list List the pronunciation rules declared in pronunciation.yaml
voice lexicon add Add or update a pronunciation rule in pronunciation.yaml
voice lexicon sync Push pronunciation.yaml rules to the voice provider's dictionary
voice quota Show the voice provider's character quota (used / limit / remaining)
media Sync workspace media with the object store
media push Push changed workspace media to the object store
media pull Pull workspace media from the object store (hydrate a fresh clone)
media versions List a media file's version history
media rollback Roll a media file back to an earlier version
media migrate Migrate a workspace to the content-addressed layout
media gc Reclaim object-store blobs no workspace references