crl <command> <subcommand>.
The three-line version
Commands
generate aliases gen, creators aliases accounts, clips aliases posts.
Global flags
Both spellings of every flag work.
--aspect-ratio and --aspect_ratio are the
same flag. Model parameters are snake_case and CLI convention is kebab-case; guessing
wrong should not be a failure mode.The model’s flags are the model’s schema
crl gen create fetches the model’s schema first, then interprets the remaining flags
against it. The CLI hardcodes no model parameters, so a new model works the day it ships:
Media flags take a path or an id
--image ./face.png uploads the file and uses it. --image <asset-id> reuses an existing
asset. --image https://… passes the URL through. No separate upload step — though
crl upload <file> exists when you want to pin an id.
Prompts can come from stdin:
Pick a creator once
gen create and posts create runs as that creator. --account-id overrides
it for one command.
Scripting and agents
Results go to stdout, progress and errors to stderr, so pipes stay clean:--wait, crl gen create prints the media URL. Without it, the generation id.
Parallel fan-out is just shell job control — --wait blocks per process:
0 success · 1 usage or runtime error · 2 not authenticated · 3 out of
credits.
Configuration
Precedence: flags → environment → config file.
CI wants the environment variable — there is no interactive login there.