> ## 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 a product demo with 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. 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"`.

## 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


## 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)
- [Record a product demo with 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)
- [Make videos for your help articles with Auto Capture](https://www.tella.com/docs/help/integrations/auto-capture-help-center-videos.md)


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