create_auto_capture, poll get_auto_capture until it is delivered, then place its sourceId with create_video or upload_clip, as you would an uploaded source. For what Auto Capture is and how to use it from the editor, see Record a product demo with Auto Capture.
Auto Capture is in beta. Its tools are listed for every workspace; starting a take needs an active paid plan (below).
Who can use Auto Capture, and what it costs
Auto Capture needs an active paid plan (a trial isn’t enough), and each take is charged to the workspace’s AI Credits when it ends, including takes that end with a question, fail or are cancelled. When the user has connected a ChatGPT or Claude plan, takes on that provider’s models run the AI on that plan and use credits only for the machines. A take can’t start while the workspace is too low on credits. Anyone in the workspace the take was started in can read it withget_auto_capture or stop it with cancel_auto_capture, given its sourceId. Only the person who started a take can revise it, from that same workspace.
Sign-ins and changes to the account
The agent uses the page for real. If the user has saved a login under Settings → Credentials for the page’s site, the agent may sign in with it while it explores, off camera, and the clip starts signed in. Without one, a take of a page behind a sign-in ends asneeds_guidance with credentialsUrl set, and no recording: send the user to credentialsUrl to save a login, then start a new take. See Save logins for Auto Capture.
Whatever the demo saves is saved while the agent explores, on every practice run, and in the recording. Before starting a take that saves something, ask the user whether the account may change and how, and pass their answer in instructions. When a delivered take reports accountChanges, tell the user what it left changed.
Because a take acts on the user’s account, create_auto_capture and revise_auto_capture are marked as destructive, so clients such as ChatGPT ask the user to confirm before a take starts.
Never put a password, a sign-in code or a sign-in link in instructions or change. A code the agent needs is entered by the user on a Tella page (codeUrl, below).
create_auto_capture
Start a take of one page or flow. Returns asourceId straight away; a take runs for several minutes, so poll get_auto_capture every 30-60 seconds. Nothing is added to a video until you place the delivered take. For a longer video, make one take per page or flow and add them in order with upload_clip.
Pass on what the user asked for rather than a flow of your own: the agent explores the page and picks the features and order that make the best demo, and treats any steps you add as a guess it may change. Steps the user named are followed.
string
required
The
http(s) page the agent starts on, on a public domain. IP addresses, URLs with a username or password, and hosts that resolve off the public internet are refused. The agent may move further into the site off camera to reach the feature.string
required
The user’s request in their words: what the video is for and who watches it, plus any steps, features, things to skip or length they named. Also say what you know about the account: whether it is a sandbox, which record to use, how a change is put back, and what must not change.
enum<string>
The model that explores the page and writes the script:
claude-sonnet-5-5, claude-opus-5-5, gpt-6.1-terra or gpt-6.1-sol. Leave it out unless the user asks for a model. Without it, a take uses claude-sonnet-5-5. It uses gpt-6.1-terra instead when ChatGPT is the only plan the user has connected, or when they’ve connected both and your client is ChatGPT or Codex.enum<string>
How hard the model thinks at each step:
low, medium, high, xhigh or max. More effort takes longer, uses more credits and handles harder pages better. Leave it out to use the model’s own default.boolean
Let the agent press keyboard shortcuts, such as undo or opening a command palette, where a person who knows the app would. Viewers see only what a shortcut did, so turn on the keystroke HUD for a take that uses them (
update_video’s keystrokes). The choice is filmed into the take, so changing it later takes a revision. Left out, the agent uses the pointer for everything.get_auto_capture, with status: "queued".
get_auto_capture
Get a take’s status and, once it is delivered, what it shows. Poll every 30-60 seconds untilstatus is delivered, needs_guidance, failed or cancelled.
string
required
The
sourceId from create_auto_capture or revise_auto_capture
The take also returns:
Use the chapters and suggested cuts
result.chapters (title, startTimeMs) says where each section of the take starts, for titles, narration or splitting it. result.suggestedCuts (startTimeMs, durationMs, reason) are ranges that can go without losing anything the viewer needs, such as waits for the page to load or over-long pauses.
Both are in milliseconds of the source, before any cuts. Suggested cuts are in update_clip’s cuts shape: for a take placed untrimmed, pass the ones you keep as cuts, each without its reason. To find a chapter on the playback timeline, subtract the cuts that come before it.
revise_auto_capture
Change a take that isdelivered or needs_guidance without starting over: a new take starts from what the earlier one learned about the page and the script it got working, so it costs less and finishes sooner. Use it for a change to what the browser does or shows (another feature, a slower step, showing the part done off camera) or to answer the take’s question. Trims, cuts and speed are edits to the placed clip instead.
The earlier take is unchanged. Returns a new sourceId straight away; poll get_auto_capture as for create_auto_capture. Each call starts a take, so after a call whose outcome is unclear, poll before calling again.
A take that stopped at a sign-in (credentialsUrl) or on a site that refused the browser can’t be revised; start a new take with create_auto_capture instead.
string
required
The
sourceId of the take to changestring
required
What to change, in the user’s words, or their answer to the take’s
questionboolean
As on
create_auto_capture. Left out, the new take keeps the earlier take’s choice.cancel_auto_capture
Stop a take that is still running, for example one started with the wrong URL or instructions. A cancelled take produces nothing to place. Returns the take’s status:cancelling while it winds down (usually seconds, at most a few minutes), then cancelled. A take that already ended is returned unchanged.
string
required
The
sourceId of the take to cancel