Elai
Purpose
Build AI avatar presenter videos with Elai: list available avatars, inspect videos and their render status, submit renders, and poll until a render finishes. Reach for this when the user wants a talking-head video generated from a script or slide deck.
Tooling
All commands go through bin/elai.py.
bashbin/elai.py auth # {"ok": true, "avatars": 40} on success bin/elai.py avatars # list available avatars (code, name, gender) bin/elai.py videos # list your videos (id, name, status) bin/elai.py video-get --id <VIDEO_ID> # one video: name, status; rendered video URL when ready bin/elai.py render --id <VIDEO_ID> # submit a render for a drafted video; consumes render credits (confirmation-gated) bin/elai.py render-status --id <VIDEO_ID> # poll render status; prints status and the video URL when the render completes
Notes:
- Rendering is asynchronous:
rendersubmits the job, then pollrender-statusuntilstatusleavesrendering. Download the resulting video promptly; do not treat the URL as a permanent artifact. - Custom-avatar footage submission (the PATCH-based workflow) and WebRTC real-time streaming are outside CLI scope.
Auth
- Provider id:
elai(credential is collected ascustom.elai) - Collection: Elai API token via the secure credential flow (
credentials.request_api_access); only the account primary (admin) user can generate one, under Settings, then API Keys - Allowed hosts:
apis.elai.io - Connect placement:
bearer_header(the token goes inAuthorization: Bearer <token>) - Status check:
bin/elai.py auth
Operating Rules
- Video renders consume credits and are confirmation-gated: confirm the exact video id with the user before running
render. Pollrender-statusafter submitting. - Custom-avatar submissions are confirmation-gated: confirm with the user before submitting custom-avatar footage (training a likeness).
- Slide layouts are complex. The recommended flow is: build the layout in the Elai UI, fetch it with
video-get, and use that structure as the base for API-created videos. - Never log or print the raw token; the CLI only ever handles the surrogate.
Files
- SKILL.md
- bin/elai.py
Maturity
🧪 Draft: written from Elai's public API reference with the host, auth header and render paths verified at build time; not yet live-tested end-to-end. Story API, personalization and the custom-avatar PATCH workflow are not yet in the CLI.


