Configuration
Full rover('boot', config) reference.
Workspace snippet generation includes required fields and only non-default overrides you set, so output stays minimal and accurate.
Generated Rover key snippets always include core runtime identity/policy fields:siteId,publicKey,allowedDomains,domainScopeMode,externalNavigationPolicy, and optional navigation.crossHostPolicy.
Rover v2 hard-isolates task state: each normal user send starts a fresh task boundary (new prevSteps and tab scope). Only ask_user answers continue the same boundary.task.followup.* controls optional heuristic chat-cue carryover only, never state carryover.
Workspace uses a Guided + Expert model: common settings are front-and-center, while low-level runtime controls live behind Expert mode. Visitor profile fields are intentionally not static workspace inputs; pass live identity with rover.identify(...).
Workspace journeys/greeting are persisted in cloud site-config and fetched at runtime via /v2/rover/session/open.Save Journey Config writes to the currently selected key target, while Create Rover Site Key auto-saves the current journeys/greeting to the newly created key. If the same field is set in both cloud config and boot snippet, boot config wins. Effective shortcut limits come from the authenticated site-key policy.
For runtime request/response schemas and stale conflict envelopes, see API Reference.
Core Identity
| Option | Type | Default | Description |
|---|
siteIdreq | string | - | Workspace site identifier for this embed deployment. |
publicKeyreq | string | - | Public Rover site key (`pk_site_*`) generated in Workspace. Required for cloud-backed runtime calls. |
siteKeyId | string | - | Optional key ID returned by Workspace. Included in generated snippets. |
apiBase | string | https://extensionrouter.rtrvr.ai | Optional API base override for custom proxying or self-managed backend routes. Rover uses `/v2/rover/*` under this base. |
visitorId | string | auto | Stable visitor identifier. Auto-generated when omitted unless checkpointing auto visitor is disabled. |
visitor | { name?: string; email?: string } | - | Optional visitor profile used for greeting personalization. Recommended flow is async updates via rover.identify(...) after login/user hydration. |
sessionId | string | auto | Explicit session identifier. Useful when you need hard control over restore boundaries. |
sessionScope | 'shared_site' | 'tab' | 'shared_site' | Cross-tab shared session (`shared_site`) or strict tab isolation (`tab`). |
workerUrl | string | bundled worker | Custom worker bundle URL, primarily for self-hosting and strict CSP setups. |
mode | 'full' | 'safe' | 'full' | Top-level runtime mode. `safe` is constrained execution mode. |
Domain Guardrails & Navigation
| Option | Type | Default | Description |
|---|
allowedDomainsreq | string[] | - | Allowed host/domain patterns for Rover runtime. Supports host (`example.com`), wildcard (`*.example.com`), exact host (`=app.example.com`), and URL-shaped entries (`https://example.com/path`, normalized to host). |
domainScopeMode | 'registrable_domain' | 'host_only' | 'registrable_domain' | Domain matching behavior for allowed host checks. |
externalNavigationPolicy | 'open_new_tab_notice' | 'block' | 'allow' | 'open_new_tab_notice' | Out-of-scope navigation policy for external domains. |
navigation.crossHostPolicy | 'same_tab' | 'open_new_tab' | 'same_tab' | In-scope cross-host navigation policy (for allowed destinations that change host). |
openOnInit | boolean | false | Open the Rover panel immediately after boot. |
allowActions | boolean | true | Allow/deny action tools (click/fill/navigate). Set false for read-only assistance. |
tabPolicy.observerByDefault | boolean | true | Observer behavior preference for multi-tab coordination. |
tabPolicy.actionLeaseMs | number | session default | Control lease duration used by shared session coordinator. |
Task Routing
| Option | Type | Default | Description |
|---|
taskRouting.mode | 'auto' | 'act' | 'planner' | 'act' | Route tasks directly to ACT, always planner, or automatic routing. In server-authoritative mode this is sent as requestedMode on /v2/rover/command. |
taskRouting.actHeuristicThreshold | number | 5 (auto mode) | Complexity threshold used only when taskRouting.mode is auto. |
taskRouting.plannerOnActError | boolean | true | In auto mode, retry through planner only when ACT does not produce a usable outcome. Planner fallback does not run after usable ACT success. |
Task Context
| Option | Type | Default | Description |
|---|
taskContext.resetMode | 'auto' | 'ask' | 'off' | 'auto' | Advisory prompt-level reset suggestion policy; run boundaries are still hard-isolated per new user prompt. |
taskContext.inactivityMs | number | - | Optional inactivity hint used by task continuity logic. |
taskContext.suggestReset | boolean | true | Allow Rover to surface reset suggestions when continuity is unclear. |
taskContext.semanticSimilarityThreshold | number (0..1) | - | Optional similarity hint for continuity scoring. |
task.followup.mode | 'heuristic_same_window' | 'heuristic_same_window' | Enable heuristic follow-up chat cues for fresh tasks in the same window. |
task.followup.ttlMs | number | 120000 | Max age of prior completed/ended task output eligible for follow-up cue carryover. |
task.followup.minLexicalOverlap | number (0..1) | 0.18 | Minimum normalized lexical overlap between last task intent and current prompt to attach chat cues. |
Checkpointing
| Option | Type | Default | Description |
|---|
checkpointing.enabled | boolean | true | Cloud checkpoint sync is enabled by default in Rover v2. Set false to disable. |
checkpointing.autoVisitorId | boolean | true | Auto-generate visitor ID when checkpointing is enabled. |
checkpointing.flushIntervalMs | number | - | Push interval for checkpoint writes. |
checkpointing.pullIntervalMs | number | - | Pull interval for checkpoint refresh. |
checkpointing.minFlushIntervalMs | number | - | Minimum debounce interval for checkpoint writes. |
checkpointing.ttlHours | number | 1 | Checkpoint document TTL in hours. |
API Execution
| Option | Type | Default | Description |
|---|
apiMode | boolean | auto (true when publicKey or sessionToken is present) | Force cloud API mode on/off instead of automatic behavior. |
apiToolsConfig.mode | 'allowlist' | 'profile' | 'none' | 'none' | Controls additional tool exposure in API mode. |
apiToolsConfig.enableAdditionalTools | string[] | - | Additional first-party tool names to enable. |
apiToolsConfig.userDefined | string[] | - | User-defined tool identifiers available to the runtime. |
Telemetry
| Option | Type | Default | Description |
|---|
telemetry.enabled | boolean | true | Enable Rover runtime telemetry event batching to cloud backend. |
telemetry.sampleRate | number (0..1) | 1 | Sampling ratio for telemetry events (1 = all events, 0.1 ≈ 10%). |
telemetry.flushIntervalMs | number | 12000 | Flush cadence for buffered telemetry events. |
telemetry.maxBatchSize | number | 30 | Maximum number of telemetry events sent per flush request. |
telemetry.includePayloads | boolean | false | Include richer per-event payload details (debug/tool context). Higher storage/network cost and may contain sensitive runtime content. |
Production default: telemetry.enabled=true, sampleRate=1, includePayloads=false. Enable payloads only for targeted debugging windows.
External Web Context & Client Tools
| Option | Type | Default | Description |
|---|
tools.web.enableExternalWebContext | boolean | false | Allow best-effort cloud context fetch for inaccessible external tabs. |
tools.web.scrapeMode | 'off' | 'on_demand' | 'off' | On-demand scrape of active external tab context when needed. |
tools.web.allowDomains | string[] | [] | Optional allowlist for external context fetch hostnames. |
tools.web.denyDomains | string[] | [] | Optional denylist for external context fetch hostnames. |
tools.client | ClientToolDefinition[] | - | Runtime-registered client tools. Usually configured in application code, not in script snippets. |
UI & Branding
| Option | Type | Default | Description |
|---|
ui.agent.name | string | 'Rover' | Assistant display name and runtime context name passed to the model. |
ui.mascot.disabled | boolean | false | Disable mascot video in launcher/header. |
ui.mascot.mp4Url | string | - | Custom mascot MP4 URL. |
ui.mascot.webmUrl | string | - | Custom mascot WebM URL. |
ui.muted | boolean | false | Start Rover UI in muted media mode. |
ui.thoughtStyle | 'concise_cards' | 'minimal' | 'concise_cards' | UI thought rendering style preference. |
ui.panel.resizable | boolean | true | UI panel resizing preference. |
ui.showTaskControls | boolean | true | Show/hide task lifecycle controls in the UI. |
ui.shortcuts | RoverShortcut[] | [] | Suggested journeys. Rover supports up to 100 stored shortcuts and renders up to 12 enabled shortcuts by default; site-key policy can lower these limits. |
ui.greeting | { text?: string; delay?: number; duration?: number; disabled?: boolean } | - | Greeting bubble configuration. Supports {name} placeholder and async profile updates via rover.identify(...). |