Study Configuration
Complete reference for all study configuration options: domains, capture rules, experiment pane, sessions, recruitment, and privacy.
Configuration is usually set up for you
Allowed Domains
The domain whitelist controls which websites participants can visit during a study.
Navigation to a domain not on the list shows a "blocked" page. Subdomains must be
listed explicitly — google.com does not match maps.google.com.
allowed_domains string[] | "*" Default: "*" (all domains)
"*" to allow any domain.
When set to an explicit list, only those domains are reachable. The default allows all domains.free_web boolean Default: true
allowed_domains.Input Capture Rules
Input capture rules define how LaBrowser detects and records text input from form fields. Each rule matches a specific type of input on a specific service, identified by URL pattern and CSS selector.
input_capture_rules InputCaptureRule[] Default: []
Rule Fields
name string Requireddescription string Default: ""
field_role string Requiredsearch_query, chat_prompt, site_search, generic_input.
Custom roles use the custom_* prefix.service string Requiredgoogle, chatgpt, claude, perplexity, amazon, gemini, custom_tool, or any.url_pattern string Requiredselector string Requiredcapture_mode "submit_only" Default: submit_only
submit_only is supported,
meaning text is recorded when a submission trigger fires.submit_triggers object submit_triggers.enter_key boolean Default: true
submit_triggers.form_submit boolean Default: true
submit_triggers.button_click boolean Default: true
submit_button_selector).submit_triggers.dom_change_heuristic boolean Default: false
submit_button_selector string | null Default: null
button_click is enabled as a submit trigger.Response Capture Rules
Response capture rules define how LaBrowser detects and records AI assistant responses. Each rule targets a specific service and specifies how to extract the response text and detect when generation is complete.
response_capture_rules ResponseCaptureRule[] Default: []
Rule Fields
name string Requireddescription string Default: ""
service string Requiredurl_pattern string Requiredresponse_selector string Requiredresponse_text_selector string | null Default: null
completion_signal ResponseCompletionSignal Requiredextract_last_only boolean Default: true
max_response_bytes number Default: 524288 (512KB)
Completion Signal
The completion signal determines how LaBrowser knows an AI response has finished streaming. Three detection methods are available, each suited to different service behaviors.
completion_signal.method "mutation_silence" | "class_removal" | "element_removal" Requiredmutation_silence waits for DOM mutations to stop for silence_ms. class_removal fires when signal_class is removed from the response element. element_removal fires when the element matching signal_selector is removed from the DOM.completion_signal.silence_ms number Default: 2000
mutation_silence method.completion_signal.signal_class string | null Default: null
class_removal method.completion_signal.signal_selector string | null Default: null
element_removal method.Experiment Pane
The experiment pane is an optional side panel displayed alongside the browser. Use it to show study instructions, surveys, or custom web content to participants while they browse.
experiment_pane.enabled boolean Default: false
experiment_pane.mode "markdown" | "url" Requiredmarkdown for
static instructions or url to embed an external page.experiment_pane.markdown string | null Default: null
markdown.experiment_pane.url string | null Default: null
url.experiment_pane.params ExperimentPaneParams Default: {}
Pane Parameters
When using URL mode, these parameters control what session context is appended as query parameters to the embedded URL. This allows external survey tools to receive participant context.
params.pass_participant_id boolean Default: true
params.pass_session_id boolean Default: true
params.pass_participant_fields boolean Default: false
params.extra_params Record<string, string> Default: {}
Session Settings
start_url string | null Default: null
start_url_params string[] Default: []
max_session_length_seconds number | null Default: null (no limit)
allow_rejoin boolean Default: false
Recruitment
Recruitment settings control how external participant identifiers (from platforms like Prolific or MTurk) are captured and stored alongside session data.
recruitment.participant_id_param string | null Default: null
PROLIFIC_PID.recruitment.platform_study_id_param string | null Default: null
recruitment.capture_params string[] Default: []
Join URL parameters
Privacy & Artifacts
anonymize_emails boolean Default: true
consent_text string | null Default: null
show_recording_indicator boolean Default: true
Screenshot Config
Controls automatic screenshot capture during sessions.
screenshot_config.enabled boolean Default: false
screenshot_config.on_events CaptureTriggerEvent[] Default: []
NAVIGATE, PAGE_LOADED, INPUT_SUBMIT, AI_RESPONSE, CLICK, TAB_SWITCHED.screenshot_config.on_idle_ms number | null Default: null
screenshot_config.interval_seconds number | null Default: null
screenshot_config.jpeg_quality number Default: 80
DOM Snapshot Config
Controls automatic DOM snapshot capture during sessions.
dom_snapshot_config.enabled boolean Default: false
dom_snapshot_config.on_events CaptureTriggerEvent[] Default: []
NAVIGATE, PAGE_LOADED, INPUT_SUBMIT, AI_RESPONSE, CLICK, TAB_SWITCHED.dom_snapshot_config.on_idle_ms number | null Default: null
dom_snapshot_config.interval_seconds number | null Default: null
dom_snapshot_config.compress boolean Default: true
enabled_parsers string[] Default: []
Rule Catalog
LaBrowser ships with pre-built capture rules for common services. These can be added to a study directly from the console UI, or used as templates for custom rules.
Input Capture Rules
- Capture All Inputs (default) — catches text from all standard input fields on every page. Acts as a safety net for sites without a specific rule.
- Google Search — captures search queries submitted to Google via the search box.
- ChatGPT Prompt — captures prompts sent to ChatGPT via the message input.
Response Capture Rules
- ChatGPT Response — captures AI responses from ChatGPT using mutation silence detection (2s).
- Claude Response — captures AI responses from Claude.ai using mutation silence detection (3s).
- Gemini Response — captures AI responses from Google Gemini by detecting removal of the progress bar element.