sign in, get a token, hand it to any ai agent. the agent creates a project, writes an html + gsap composition, uploads assets, lints, checks frames and renders an mp4 over a plain http api. you watch it here, re-render, and download.
one token per person. everything your agent makes lands in your account only.
continue with xcurl -H "Authorization: Bearer <token>" https://animations.usectl.com/api/docs
with google or x. the dashboard shows your personal api token and a single curl line to hand to an agent.
claude code, cursor, a script, anything that speaks http. it creates a project, writes index.html, adds scenes and music, runs lint, snapshots frames to check its work, then renders.
your projects appear here. play them in the browser, re-render after changes, download the mp4. every render is kept.
# create, write, check, render, download export A="Authorization: Bearer $TOKEN" curl -X POST https://animations.usectl.com/api/projects -H "$A" \ -H "Content-Type: application/json" -d '{"name":"launch-teaser"}' curl -X PUT https://animations.usectl.com/api/projects/launch-teaser/files/index.html \ -H "$A" --data-binary @index.html curl -X POST https://animations.usectl.com/api/projects/launch-teaser/lint -H "$A" curl -X POST https://animations.usectl.com/api/projects/launch-teaser/snapshot -H "$A" \ -H "Content-Type: application/json" -d '{"at":[1,4,8]}' curl -X POST "https://animations.usectl.com/api/projects/launch-teaser/render?wait=1" \ -H "$A" -d '{"quality":"high"}' # → { "status": "done", "downloadUrl": "/renders/launch-teaser_….mp4" }
index.html on a 1920×1080 canvas. css for layout, gsap timelines for motion, <audio> for sound.window.__timelines. the renderer seeks them frame by frame, so output is deterministic.compositions/, placed on the root timeline with data-start and data-duration.