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 |