Retriever AI logo
Retriever AI
PricingBlogDashboard

Core Agent

Getting StartedWeb AgentSheets Workflows

Building Blocks

Recordings & GroundingTool CallingKnowledge Base (RAG)Enrichment Datasets

Platform Access

CLI & SDKAPI OverviewAgent APIScrape APIBrowser as API/MCP

Automation

ShortcutsTriggersWebhooksSchedules

Account & Security

Cookie SyncPermissions & Privacy
DocsRecordings & Grounding

Recordings & Grounding

Show the AI how to perform complex tasks by example. Recordings capture DOM interactions and the network calls the page makes, so the agent can either mimic the flow or compile it into a subroutine that calls the underlying API directly.

7 min read

Sometimes showing is easier than explaining. Recordings let you ground the agent by performing a task manually once so the AI can mimic the exact DOM interactions. Record a workflow in the Chrome Extension, then deploy it anywhere — cloud batches, API calls, shortcuts, schedules, or triggers.

What Gets Recorded

The recorder captures DOM interactions — clicks, typing, navigation, selections — not your screen. This makes it more robust than screen recording (no pixel-matching failures), more private (we never see your screen), and portable across different screen sizes and resolutions.

Alongside the interaction trace, the recorder captures the network calls the page makes while you work — the private JSON API behind the rendered HTML. That second layer is what lets rtrvr.ai turn a recording into a subroutine that hits the endpoint directly instead of replaying clicks. See From Recording to Subroutine below.

LayerWhat's captured
DOM interactionsClicks, typing, scrolls, selections, navigation, waits, back — with the element selectors and shadow-root paths needed to replay them
Network callsfetch, XHR, sendBeacon, and Resource Timing entries — method, URL, request headers, request body, response status, response headers, response body, duration
Page contextDOM snapshots at key steps plus server-rendered hydration payloads (the JSON already embedded in the page on load)
Privacy: We only record DOM interactions and the page's own network traffic. Your screen is never captured, stored, or transmitted. Secrets in captured traffic (authorization, cookie, x-api-key, CSRF and signature headers) are redacted before anything is sent to a model.
Capture is bounded: roughly 500 events per capture and ~64 KB per body by default. Larger bodies are kept as head + tail with the middle elided, and binary responses are flagged rather than stored.

How to Record

  • Click the Record button in the side panel toolbar (or search to name your recording)
  • Perform the task naturally in your browser — click buttons, fill forms, navigate pages
  • Optionally narrate what you're doing (add text annotations the agent can reference)
  • Click Stop when complete
  • Select the recording in chat to give the AI the perfect example

Dramatic Success Boost

Providing a recording demonstration dramatically increases task completion rates. For complex multi-step forms and interactions that are hard to describe in words, a recording often outperforms even the most detailed prompt. Record once, use forever.

Recordings often work better than detailed prompts for complex interactions — especially forms with unusual layouts, multi-step wizards, or sites with non-standard UI components.

From Recording to Subroutine

Because the recorder sees the page's own XHR/fetch traffic, it can do more than mimic your clicks. The AI Tool Generator reads the captured calls and compiles the flow into an AI Subroutine — a saved, callable tool that hits the underlying endpoint directly. Once generated it is deterministic code: no model call, and no tokens, per run. See AI Tool Generator and the writeup on zero-token deterministic automation.

  • Record the task once — click through the flow you want automated
  • Open the recording and generate a tool from it
  • The generator ranks the captured calls, picks the one that actually carries the data, and writes a runner for it
  • Save it, then call it with @toolName, from workflows, schedules, and triggers, or over the hosted MCP server
Saved subroutines are exposed as callable tools on the hosted MCP server at mcp.rtrvr.ai, so Claude, Codex, or any MCP client can invoke a discovered endpoint by name — no DOM scraping in the loop.

How the Generator Picks a Strategy

Not every endpoint is safe to call directly. rtrvr.ai classifies each captured request by the auth evidence in its headers, then chooses where the request runs and whether it is replayed at all. Requests that carry a client-computed signature are never forged.

Evidence in the captured requestWhere it runsStrategy
No auth headers (public/stateless)Background workerReplay
authorization only, no cookie or CSRFBackground worker, captured bearer forwardedReplay
cookie presentMain world of a real tab on that origin, credentials: includeReplay
x-csrf-token / x-xsrf-tokenSource tab first, so the app's current token is usedReplay
Same-site request with no explicit auth header (ambient session)Main world of a real tabReplay
Client signature (x-client-transaction-id, x-request-signature, x-signature, x-bogus, x-gorgon, x-khronos)Source tab — request is never reconstructedHarvest

Replay means the subroutine issues the request itself. Harvest means it lets the page issue its own signed calls and intercepts the responses, then transforms them. Either way you get the JSON — harvest just refuses to forge a signature it cannot legitimately compute.

Does Auth Survive the Tab Closing?

Yes for session-backed endpoints, but not by storing your session. Cookies are never replayed as a literal header — cookie and set-cookie are stripped from every generated request template. Instead, a cookie- or session-backed subroutine executes inside a real logged-in page: the runtime opens or reuses a tab on that origin and issues the request with credentials, so the browser attaches the current cookies itself.

  • The subroutine stays callable after you close the tab, because invoking it opens one. What it depends on is the session, not the tab.
  • If you are logged out, it fails the way a logged-out user would — there is no stored credential to fall back on.
  • Bearer tokens and API keys captured in the recording are replayed verbatim from a background worker with no tab at all — but only while that token is valid. When it rotates or expires, regenerate the tool or re-record.
  • In the Cloud, enable cookie sync in the extension so headless browsers open the same logged-in session.
  • Secrets are redacted at the prompt boundary — the model that writes your tool sees [REDACTED:x-api-key], never the value. The runtime substitutes the real captured header at call time, and captured values always win over anything the model wrote.

Signed, CSRF, and HMAC'd Parameters

CSRF is handled rather than replayed. A stale x-csrf-token copied out of a recording would 403 on the next run, so requests carrying one are executed in the source tab where the application's own current token applies. The same holds for double-submit and same-site session patterns.

Client-signed and HMAC'd requests are deliberately not replayed. When a captured request carries a signature the client computed — Twitter/X transaction IDs, TikTok's x-bogus / x-gorgon / x-khronos, or a generic x-request-signature — replay is prohibited and the generator falls back to harvest. Forging those would break the moment the site rotates its signing algorithm; harvesting the page's own responses does not.

Every replay is validated before it is trusted. A 401, 403, 407, 419, or 440, a login interstitial, or unexpected HTML where JSON was expected marks the attempt failed and retries it inside the source tab — rather than quietly handing you a login page as if it were data.

Rule of thumb: stable first-party JSON APIs replay well and run essentially free. Hashed GraphQL persisted-query IDs and rotating signature schemes drift — prefer a DOM-grounded subroutine or harvest there, and re-record when a site changes its API.

Cross-Platform Reuse

Recordings are a shared primitive — they're created in the extension but reusable across every rtrvr.ai surface. When you use a recording in a workflow, that recording is automatically bundled with the workflow artifact.

SurfaceHow Recordings Are Used
ReplayRecording is included automatically — the agent follows the same steps
ShortcutsRecording is bundled with the shortcut for perfect execution every time
SchedulesScheduled runs include the recording — no drift over time
TriggersTriggered workflows carry the recording for consistent execution
CloudExport to cloud — recording travels with the workflow for headless execution
API (replay_workflow)Replay a workflow by ID — recording is resolved server-side

Management & Sharing

Recordings sync across your devices when logged in. You can organize, share them via URL with teammates, or import recordings from others.

  • View all recordings from the Recordings section in the side panel
  • Share via URL — recipients can import with one click
  • Recordings bundle with workflows when shared, so teammates get the full context

Platform Availability

CapabilityExtensionCloudAPI
Create recordings✅——
Capture page network calls while recording✅——
Use recordings in workflows✅✅✅
Generate subroutines from a recording✅✅—
Call a generated subroutine✅✅✅
Share recordings via URL✅✅✅
Auto-bundle with shortcuts✅✅✅
Sync across devices✅✅—
Previous
Shortcuts
Next
Tool Calling

On this page

What Gets RecordedHow to RecordDramatic Success BoostFrom Recording to SubroutineCross-Platform ReuseManagement & SharingPlatform Availability

Ready to automate?

Join teams using rtrvr.ai to build playful, powerful web automation workflows.