loading

Get Started

  • Overview
  • Quick Start
  • Workspace
  • Instant Preview
  • Rover in a Chrome Extension

Instruct & Customize

  • Instructing Rover
  • Journeys
  • Knowledge
  • Customize
  • Audience & Identity
  • Appearance

Connect AI

  • Connect Your AI
  • AI Discovery
  • Agent-to-Web (A2W)

Operate

  • Rover Analytics
  • Plan & Billing
  • Security & Policies
  • Roadmap

Reference

  • Configuration
  • API Reference
  • Instant Preview API
  • Examples

Platforms

  • Webflow
  • Wix

[ documentation ]

Instant Preview

Try Rover on a live site — yours or one you don't control — before installing the production snippet.

Instant Preview is the preview-first path: prove Rover on a live page before anything is installed. Start at Instant Preview. The website hosts preview creation and documents every path — Hosted Preview, the Preview Helper extension, console snippets, and bookmarklets — in one place.

Two config sources

Every preview path boots Rover from one of two config sources.

  • Hosted preview handoff config — temporary preview identifiers and runtime tokens created by the hosted preview backend under the signed-in tester's account. No Workspace setup needed.
  • Workspace site config (test config JSON) — persistent siteId, publicKey (pk_site_*), optional siteKeyId, plus allowedDomains and domainScopeMode, copied from Workspace and pasted into the preview page, the SDK, or the Preview Helper.

Workspace config comes in two shapes. The reusable wildcard config is auto-loaded or created when you sign in on the preview page: allowedDomains: ["*"], owned by the signed-in tester, with a 90-day TTL you can extend with Renew 90 days or kill with Revoke. Use it to test any domain. The exact site-scoped config carries a real Workspace site key and its real allowed domains — the advanced path for validating one site key's domain policy.

Path matrix

PathWhat you needPersistenceBest for
Hosted PreviewSign in, target URL, and a prompt — Rover creates temporary preview state for youRover-managed preview session owned by the signed-in testerFast demos, auto-run proof, and the mobile fallback
Preview HelperTest config JSON or hosted handoffRe-injects after reloads and navigationBest live desktop path for multi-page demos
ConsoleTest config JSON, then the generated snippetCurrent page onlyDevTools demos and debugging
BookmarkletTest config JSON, then the generated bookmarkletCurrent page onlyDrag-and-click demos
Script tagTest config JSON, then the generated snippetPersistent where installed — the site loads Rover directlySites whose code you can edit
Production installWorkspace install snippet (siteId + publicKey)Persistent site configYour real site — Workspace config is the source of truth for every other path

On mobile, use Hosted Preview — Helper, Console, and Bookmarklet are desktop-first. Script-tag and production installs work everywhere.

Config shape

Reusable wildcard config (recommended for testing)

{
  "siteId": "...",
  "publicKey": "pk_site_...",
  "siteKeyId": "...",
  "apiBase": "https://agent.rtrvr.ai",
  "allowedDomains": ["*"],
  "domainScopeMode": "registrable_domain",
  "sessionScope": "shared_site",
  "openOnInit": true,
  "mode": "full",
  "allowActions": true,
  "capabilities": {
    "roverEmbed": true,
    "cloudAgent": true,
    "cloudScrape": true,
    "externalWebContextScrape": true
  },
  "ui": {
    "voice": { "enabled": true },
    "experience": {
      "audio": {
        "narration": { "enabled": true, "rate": 1, "language": "en-US" }
      },
      "motion": {
        "actionSpotlight": true,
        "actionSpotlightColor": "#c6f24e"
      }
    }
  }
}

Exact site-scoped config

{
  "siteId": "site_123",
  "publicKey": "pk_site_123",
  "siteKeyId": "key_123",
  "apiBase": "https://agent.rtrvr.ai",
  "allowedDomains": ["example.com"],
  "domainScopeMode": "registrable_domain",
  "openOnInit": true,
  "mode": "full",
  "allowActions": true,
  "capabilities": { "roverEmbed": true },
  "ui": { "voice": { "enabled": true } }
}

Required fields for the generic path: siteId plus either publicKey or sessionToken. siteKeyId, apiBase, allowedDomains, domainScopeMode, openOnInit, mode, allowActions, and capabilities.roverEmbed are optional. The website tool validates the JSON before generating anything, so missing fields or bad domain scope surface early.

Preview sessions use Rover's built-in tab behavior: external pages open in a new tab with notice, and allowed-host hops use smart tab selection.

Get config from Workspace

  • 1.Open Workspace and create a Rover site, or reuse one whose domains and policy already fit. Workspace keeps the owner-readable pk_site_* install material available whenever you reopen Install. Rotate the production key only when you need new public install material.
  • 2.Select the site, open Install, and use Copy test config JSON on the Try Rover on Other Sites card.
  • 3.Open Instant Preview and stay on the Use Workspace config path. For testing arbitrary domains, skip Workspace and let the preview page auto-load or create the reusable wildcard config instead.
  • 4.Paste the JSON, enter the website URL you want to test, then choose Helper, Console, or Bookmarklet — the tool generates the exact artifact.

See Workspace docs for install material, site keys, and production setup.

Choose a client

Preview Helper (recommended)

An MV3 Chrome extension, public at rtrvr-ai/rover-preview-helper. It injects Rover from the reusable wildcard config, an exact site-scoped config, or a hosted preview handoff, and re-injects across reloads and history navigation while the page still matches allowedDomains — the most reliable live-inject path.

  • 1.Clone and build the extension (commands below), then open chrome://extensions, enable Developer mode, choose Load unpacked, and select the generated dist folder.
  • 2.From the preview page, enter the target site URL and click Open target with helper — config hands off automatically, no manual paste.
  • 3.If Rover does not inject, paste the test config JSON into the helper popup and click Inject Rover into this tab.
  • 4.Use Reconnect preview after reloads or navigation if needed.
git clone https://github.com/rtrvr-ai/rover-preview-helper.git
cd rover-preview-helper
pnpm install
pnpm build

The handoff uses a private URL fragment — #rover_helper_payload=<base64url(JSON)> — so config stays out of target-site query params and request logs. The helper reads the fragment, strips it from the URL, and injects Rover. It also remembers your last-used config: after the first handoff or manual paste, later sessions reuse the saved config automatically.

Console snippet

Best when DevTools is already open — fast demos, screen-sharing, and debugging. Generate the snippet from the preview page or the SDK, open DevTools on the target page, paste it into the Console, and press Enter. Injected JavaScript is lost on a full page reload.

Bookmarklet

Best for the drag-to-bookmarks moment and repeated one-click demos. Show the bookmarks bar (Cmd+Shift+B / Ctrl+Shift+B), then drag the Rover button from the preview page into it — drag from the dedicated drag control, never click it on the Rover page itself. Open the target site and click the bookmark. Still current-page only: reloads need another click, and some browsers and sites restrict bookmarklet behavior.

Script tag and SDK helpers

When you can edit the target site's code, generate a script tag instead — paste it into the site's head or body, reload, and Rover stays available on later pages because the site loads it directly. The SDK exports the same generators for your own tooling: console snippet, bookmarklet, and script-tag snippet, straight from Rover config. The SDK does not create the config; Workspace does.

Hosted Preview

Hosted Preview is the Rover-managed demo path. Use it when you do not want to think about site config yet, when you need a temporary demo token, or when mobile, CSP, or reload behavior makes live injection unreliable.

  • Flow — sign in at Instant Preview and stay on the Hosted Preview tab. Rover creates a temporary preview, shows the hosted browser inline, injects a short-lived preview bootstrap into the hosted page (re-injected after top-level navigations), and auto-runs your exact prompt inside it. Helper, Console, Bookmarklet, and full-screen hosted-shell options stay available below.
  • 12-minute cap — hosted sessions have a hard 12-minute maximum. The dedicated hosted viewer extends the hosted-browser TTL while you watch: its heartbeats refresh a short disconnect grace, but never the absolute expiry. Generic preview refreshes extend nothing.
  • Billing — Hosted Preview runs on the signed-in tester's credits. It does not inherit billing from a Workspace-installed site key on the target website.
  • Shared capacity — Hosted Preview leases from the same browser pool as normal automation on that worker. If the only browser is busy, the preview waits instead of creating a second browser.
  • Lifecycle — closing the viewer tab sends a best-effort close; if that signal is missed, a short server-side disconnect grace closes the session. On close, expiry, or failure the hosted browser is destroyed, never recycled, so no storage or cookies bleed between preview and normal automation. Sessions are sticky to one worker: if the owner lease goes stale, Rover fails closed and asks you to recreate the demo.

To drive the hosted service directly: create with signed-in Firebase bearer auth via POST /v2/rover/previews; the follow-on get/events/input/cancel/share/bootstrap routes take the preview token in query or body, or bearer auth. Instant Preview API is the source of truth for the contract — auth model, curl examples, response fields, and the OpenAPI spec.

Preview tokens vs site keys

Hosted preview tokens are short-lived demo credentials tied to the signed-in tester's temporary preview session. Workspace site keys are persistent production install credentials. Never treat preview tokens as production keys.

  • Test config JSON — portable Rover boot config for Helper, Console, Bookmarklet, and SDK testing on other sites.
  • Production install snippet — the snippet you put on your real website.
  • Hosted preview token — short-lived demo state created by Hosted Preview, not a replacement for site config.
  • Preview flow — temporary token, exact-host demo scope, tester billing, and the exact prompt auto-runs inside Rover's hosted page.
  • Production flow — Workspace-managed site config, persistent public key, generated install snippet.

Troubleshooting

  • Not sure what JSON to paste — use the Workspace test config JSON, not the install snippet and not a random code sample.
  • **This API key is missing capability: roverEmbed** — the Workspace key you copied is not embed-ready. Create or replace with an embed-enabled key, then copy the fresh test config JSON.
  • **The target host is outside allowedDomains** — with the reusable wildcard config, make sure allowedDomains contains ["*"]. With exact site-scoped config, test on a host that matches the key's domains, fix the domain policy in Workspace, or switch to the wildcard config.
  • Preview Helper rejects a host despite wildcard config — update the extension. Older versions do not recognize the * wildcard pattern.
  • Console or Bookmarklet worked only once — expected. Both are current-page only; a full reload drops the injected JavaScript. Use the Preview Helper for multi-page testing, or the script tag if you can edit the site.
  • **React has blocked a javascript: URL** — delete any old Rover bookmarklet and recreate it from the current preview page. The bookmarklet must be dragged from the drag control, not clicked on the Rover page.
  • Rover appears but takes no actions — the config is likely analytics_only, safe mode, or allowActions: false.
  • A site still blocks injection — some sites enforce strict CSP or reload aggressively. Use the Preview Helper or Hosted Preview.
  • Hosted Preview says you have no credits — it runs on the signed-in tester's credits. Sign in first, then add credits or upgrade before creating or continuing the demo.
  • **Open hosted shell does nothing** — Hosted Preview should show the hosted browser inline and open the dedicated hosted viewer route in a new tab. If it still fails, recreate the temporary demo. On the Workspace-config path this button does not apply — switch to the Hosted Preview tab.
  • The viewer stays blank and keeps polling — the hosted-browser session was never marked viewer-ready. Rover provisions the hosted browser first and mounts the viewer only after that session is ready; recreate the demo after the latest backend and website deploy.
  • Hosted Preview is slow to start — it shares the browser pool with normal automation on that worker and waits until the browser is released.
  • Hosted Preview expired while the viewer was open — expected at the hard 12-minute maximum. Heartbeats refresh only the disconnect grace, never the absolute expiry.
  • Hosted browser asks for a restart — Rover fails closed when the hosted browser owner dies or loses its lease. Recreate the demo instead of waiting for the old browser.
  • Mobile feels broken — use Hosted Preview on mobile. Helper, Console, and Bookmarklet are desktop-first.
Quick StartInstall the production snippet once the preview proves out.Instant Preview APIThe signed-in hosted preview contract — auth, routes, curl examples, and the OpenAPI spec.
← previousWorkspacenext →Rover in a Chrome Extension