> ## Documentation Index
> Fetch the complete documentation index at: https://www.tella.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Auto Capture

> Film a screen walkthrough of a public web page with no one recording it, then place the take in a video like an uploaded source.

Auto Capture films a screen walkthrough of a web page with no one at the keyboard: an agent opens the page in its own browser, explores it, scripts the demo, and records it with an animated cursor. Start a take with `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](https://www.tella.com/docs/mcp-tools/sources.md). For what Auto Capture is and how to use it from the editor, see [Record with AI agents using Auto Capture](https://www.tella.com/docs/help/integrations/auto-capture.md).

> [!NOTE]
>
> 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](https://www.tella.com/docs/help/billing/ai-credits.md) when it ends, including takes that end with a question, fail or are cancelled. When the user has [connected a ChatGPT or Claude plan](https://www.tella.com/docs/help/integrations/use-your-chatgpt-or-claude-plan.md), 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 with `get_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. A login is offered only when the host of the page the take starts on is one of the sites it is used on, or a subdomain of one, ignoring a leading `www.`: a login used on `app.acme.example` is not offered for `acme.example`, and a page that later redirects to the login's site doesn't count. Before a take that should sign in, call `check_auto_capture_logins` with the same URL to see which logins it would be offered and where each may sign in. Without one, a take of a page behind a sign-in ends as `needs_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](https://www.tella.com/docs/help/integrations/auto-capture-credentials.md).

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 a `sourceId` 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.

**targetUrl** `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.

**instructions** `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.

**model** `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.

**effort** `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.

**keyboardShortcuts** `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.

Returns the take in the same shape as `get_auto_capture`, with `status: "queued"`.

## check\_auto\_capture\_logins

List the user's saved logins, each with whether a take starting on a URL would be offered it and where it signs in. Returns names, scopes and hosts only, never a login's email or password. Check the exact URL you will pass to `create_auto_capture`: only the page a take starts on decides which logins it gets, not where it redirects.

During the take, a login's password and codes are typed only on its `signsInAt` hosts, and its email on those or its `usedOn` hosts, each with their subdomains. A login used on `acme.example` that signs in at `accounts.google.com` is offered to a take starting on `acme.example`, which may then follow the site's "Continue with Google"; a take starting on `accounts.google.com` is not offered it.

When several logins are offered, the take picks one by its name, so name the one to use in `instructions`. When none is offered and the site needs a password, don't start the take: compare the URL's host with each login's `usedOn`, and send the user to `credentialsUrl` to add the host to that login's **Use on**, or to save a login. A site that signs in with only an email and a code it sends needs no saved login: put the email in `instructions`, and the user enters the code at `codeUrl` while the take runs.

**targetUrl** `string` *required*

The URL you would pass to `create_auto_capture`

| Field | What it holds |
| - | - |
| `logins` | Every login the user can use: its `name`, `scope` (`personal` or `workspace`), `offered` (whether a take starting on `targetUrl` gets it), `usedOn` (a take starting on one of these hosts or a subdomain is offered it) and `signsInAt` (where its password and codes may be typed; the same as `usedOn` unless it signs in on another site). |
| `credentialsUrl` | The Tella page where the user saves a login or changes the sites it is used on. |

## get\_auto\_capture

Get a take's status and, once it is delivered, what it shows. Poll every 30-60 seconds until `status` is `delivered`, `needs_guidance`, `failed` or `cancelled`.

**sourceId** `string` *required*

The `sourceId` from `create_auto_capture` or `revise_auto_capture`

| Status | Meaning |
| - | - |
| `queued` | Waiting to start, which can include a few minutes waiting for a recording machine. |
| `authoring` | The agent is exploring the page and writing the script. |
| `validating` | The agent is running the script to check every step works. |
| `needs_code` | The agent is signing in and waits up to 10 minutes for a code only the user has. Send the user `codeUrl` at once and keep polling. |
| `recording` | The script is playing back in a clean browser and being filmed. |
| `processing` | The recording is being processed like an upload. |
| `cancelling` | `cancel_auto_capture` was called and the take is winding down. |
| `delivered` | Done. Place `sourceId` with `create_video` or `upload_clip`. |
| `needs_guidance` | The agent stopped on something only the user can answer. Ask them `question.question` and pass their answer to `revise_auto_capture`. |
| `failed` | The take ended without a recording. `error` says why. |
| `cancelled` | The take was cancelled and produced nothing to place. |

The take also returns:

| Field | When it is set |
| - | - |
| `model`, `effort` | Once the take has started: the model it runs on and how hard it thinks. |
| `progress` | While running: the agent's `turn` of `maxTurns`, and `remainingMs` before it runs out of time. |
| `handoff` | On `delivered`: the agent's account of what the clip shows, what it did off camera that the clip leaves out, and where it departed from the instructions. Read it before placing the take. |
| `result` | On `delivered`: the take's `name`, `durationSeconds`, `width`, `height`, `chapters` and `suggestedCuts`. |
| `accountChanges` | What the take left changed on the user's account. Tell the user. |
| `question` | On `needs_guidance`: what the agent `explored`, the `blocker`, and the `question` for the user. |
| `credentialsUrl` | The page needed a login the user hasn't saved. Send them there to add one, then start a new take. |
| `codeUrl` | On `needs_code`: the Tella page where the user enters their code. Never ask them for the code yourself. |
| `error`, `retryable` | On `failed`: why. When `retryable` is true the failure was temporary, so start the same take again in a few minutes. |

### 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](https://www.tella.com/docs/mcp-tools/clips.md#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 is `delivered` 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.

**sourceId** `string` *required*

The `sourceId` of the take to change

**change** `string` *required*

What to change, in the user's words, or their answer to the take's `question`

**keyboardShortcuts** `boolean`

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.

**sourceId** `string` *required*

The `sourceId` of the take to cancel

## report\_auto\_capture

Tell Tella that a take went wrong, in the user's words, so the cause gets found and fixed in Auto Capture. That covers what it filmed (the wrong page or feature, a step that was asked for missed or cut off, stopping short of the result, static pages shown like slides instead of the product being used) and how the recording came out (choppy or stuttering playback, frozen or black frames, a cursor that doesn't match what happened).

Call it when a take that ended has either kind of problem, whether the user said so or you saw it in `handoff` or the frames, and before you `revise_auto_capture` it: the revision gets the user a better take, the report gets Auto Capture fixed. Don't report a change of mind (another feature, pace or length) that the take did as asked.

Reporting changes nothing on the take, starts nothing and costs nothing. A take can be reported more than once, by the person who started it or anyone in the workspace it was made in; one that is still running can't be reported yet. Returns the take's `sourceId` and `reportedAt`, when the report was stored. The same report can be sent over the Public API with [`POST /v1/auto-captures/{sourceId}/reports`](https://www.tella.com/docs/api-reference/auto-capture/report-an-auto-capture-take).

**sourceId** `string` *required*

The `sourceId` of the take that went wrong

**reason** `string` *required*

What went wrong, in the user's words when they gave them, otherwise what you saw: what the take shows against what was asked, or how the recording plays. Never a password, code or sign-in link. At most 4000 characters.


## Related topics

- [Auto Capture example prompts](https://www.tella.com/docs/help/integrations/auto-capture-example-prompts.md)
- [Get started with Auto Capture](https://www.tella.com/docs/help/integrations/auto-capture-get-started.md)
- [Report an Auto Capture take](https://www.tella.com/docs/api-reference/auto-capture/report-an-auto-capture-take.md)
- [Record with AI agents using Auto Capture](https://www.tella.com/docs/help/integrations/auto-capture.md)
- [Let Auto Capture sign in to your product](https://www.tella.com/docs/help/integrations/auto-capture-credentials.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.