How-to¶
Task-focused guides. The generation pipeline (storyboard → VO + music → cards →
assembled mp4) runs end-to-end today; posting + the studio are landing. Every
command's full behaviour is in its --help; this page is the workflow map.
Make a reel — one pass¶
reel make generates every missing artefact and builds, over an existing
storyboard. It auto-picks the first take of each stage and is idempotent — it
only generates what has no selection yet, so a re-run resumes and anything you've
already chosen is left untouched.
keryx reel new my-post --from-post post.md # workspace + AI-drafted storyboard
# review/edit storyboard.json (or use the studio)
keryx reel make -w my-post # VO + music + cards, each auto-picked, then build
keryx reel make -w my-post --dry-run # preview the plan + spend first
keryx reel make -w my-post --silent # text-only timing proof (no VO/music)
Make a reel — stage by stage (taste-gate each)¶
Each media stage is a gen → pick loop: generate N candidate takes, then promote
the one you want. reel build assembles the selected inputs (VO drives per-card
timing; the music bed is ducked under it).
keryx reel build -w my-post --silent # fast format/pacing proof (no audio)
keryx voice gen -w my-post --line 3 --takes 3 # 3 VO takes for card 3 → vo/takes/
keryx voice pick 3 2 -w my-post # promote take 2 → vo/03.mp3
# re-roll one line at a time; others' takes + selections are untouched
keryx music gen -w my-post --takes 2 # bed candidates (sized to the VO total)
keryx music pick 1 -w my-post # promote a bed
keryx cards gen -w my-post --takes 2 # per-card illustrations (screen for text leaks)
keryx cards pick 3 1 -w my-post # promote card 3's take 1
keryx reel build -w my-post # full assemble: VO drives timing, music ducked
Per-line voice tuning (steady a wobbly read, slow a fast one) is a per-card voice
override in the storyboard — see storyboard.
Use your own imagery / video / audio¶
Set up posting credentials¶
- Get Instagram posting credentials — token + account id (no Facebook Page, no App Review for your own account).
- Get YouTube posting credentials — Google OAuth (Desktop app) → refresh token; uploads stay private until the audit.
- Get TikTok posting credentials — TikTok OAuth (
client_key, hex PKCE, rotating refresh token); posts staySELF_ONLYuntil the audit. - Get LinkedIn posting credentials — LinkedIn OAuth (standard OAuth2); ~60-day access token, no refresh (re-auth) unless an MDP partner.
Compose & publish social¶
keryx social -w my-post --platform instagram # platform-appropriate caption/tags/link
keryx approve instagram -w my-post # required gate before posting
keryx post instagram -w my-post # on-demand
keryx post all -w my-post # every approved platform
Schedule unattended posting (CI)¶
keryx approve all -w my-post --at 2026-07-01T09:00 # approve + schedule per outlet
# a GitLab scheduled pipeline in the owning project runs:
keryx post due # posts what's approved + due
Manage themes¶
See 0002-interface-contracts.md
for every command's inputs, outputs, exit codes and testable requirements.