selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

GitHub
auto-browser logo

Self-host auto-browser

v1.11.1

MCP browser automation with human takeover

ReleaseOpen SourceMIT
Docker ComposeCompose file & guide
docker compose up --build
Updated8 hours ago
LanguagePython
Setup difficultyModerate
Stars
914
Ports
8000 (FastAPI controller: REST API, MCP endpoint, dashboard), 6080 (noVNC visual takeover of the browser desktop), 5900 (Raw VNC on the browser node)
Docker
ghcr.io/lvcidpsyche/auto-browser-controller
auto-browser screenshot 1

What is auto-browser?

Should you self-host auto-browser?

auto-browser scores 48/100 on selfhost.directory (how scoring works) and ranks #8 of 11 in Browser Automation. It has 914 GitHub stars.

It shipped 22 stable releases in the past year. The latest, v1.11.1, came out on 27 October 2026. New versions land roughly every 2 days.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is MIT-licensed and written mostly in Python.

Its closest alternative on selfhost.directory is Lightpanda (79/100, 37 078 stars). It scores higher overall, so compare the two before you pick. See auto-browser vs Lightpanda side by side.

Features

  • Approval gates
  • Audit Logging
  • Compliance presets
  • Host allowlisting
  • Human browser takeover
  • MCP Server
  • Multi-operator isolation
  • Multiple LLM providers
  • Per-session browser isolation
  • PII scrubbing
  • Playwright browser sessions
  • REST API
  • Reusable auth profiles
  • Signed evidence receipts
  • Skill induction harnessDocumented as a Stage 0 harness; candidates stay staged until explicitly reviewed.

auto-browser README

How to install auto-browser

Install auto-browser with Docker Compose

git clone https://github.com/LvcidPsyche/auto-browser.git
cd auto-browser
docker compose up --build

Optional: cp .env.example .env and run make doctor. Published ports bind to 127.0.0.1 by default.

How to configure auto-browser

  • ACTION_TIMEOUT_MS15000
  • AGENT_JOB_WORKER_COUNT1
  • ALLOWED_HOSTS
  • ANTHROPIC_API_KEY
  • ANTHROPIC_BASE_URLhttps://api.anthropic.com/v1
  • ANTHROPIC_VERSION2023-06-01
  • API_BEARER_TOKEN
  • API_BEARER_TOKENSNamed credentials: `alice:token-a,bob:token-b`. A request authenticating with one of these has a verified operator identity, so X-Operator-Id can no longer claim to be someone else. Sessions and auth profiles then belong to the operator who created them, and other operators neither see nor use them, down to their approvals, agent jobs, cron jobs and /artifacts files. The shared API_BEARER_TOKEN ab

    Named credentials: `alice:token-a,bob:token-b`. A request authenticating with one of these has a verified operator identity, so X-Operator-Id can no longer claim to be someone else. Sessions and auth profiles then belong to the operator who created them, and other operators neither see nor use them, down to their approvals, agent jobs, cron jobs and /artifacts files. The shared API_BEARER_TOKEN ab

  • API_BIND_SCOPEloopback | exposed. The base compose publishes the API on 127.0.0.1 and declares `loopback`, which is what lets it run with no token. Set `exposed` whenever the API is reachable from anywhere else — the controller then refuses to start without an API_BEARER_TOKEN of at least 32 characters.

    loopback | exposed. The base compose publishes the API on 127.0.0.1 and declares `loopback`, which is what lets it run with no token. Set `exposed` whenever the API is reachable from anywhere else — the controller then refuses to start without an API_BEARER_TOKEN of at least 32 characters.

  • API_PORT8000
  • APP_ENVdevelopment
  • APPROVAL_ROOT/data/approvals
  • APPROVAL_TTL_MINUTESApproval workflow

    Approval workflow

  • APPROVAL_WEBHOOK_SECRET
  • APPROVAL_WEBHOOK_URLApproval webhooks (optional — called when a tool needs human approval)

    Approval webhooks (optional — called when a tool needs human approval)

  • ARTIFACT_RETENTION_HOURS168
  • ARTIFACT_ROOTStorage roots (rarely need changing when using docker-compose volumes)

    Storage roots (rarely need changing when using docker-compose volumes)

  • AUDIT_MAX_EVENTS10000
  • AUDIT_ROOT/data/audit
  • AUTH_RETENTION_HOURS168
  • AUTH_ROOT
  • AUTH_STATE_ENCRYPTION_KEY
  • AUTH_STATE_MAX_AGE_HOURS72
  • AUTONOMOUS_APPROVALSAutonomous mode: let agents approve their own actions instead of waiting for an operator. The built-in agent approves and carries on, and MCP clients may call browser.approve_approval. This covers every kind, payments and destructive actions included. Each approval is still created and recorded, marked decided_via=agent in the audit log and witness chain.

    Autonomous mode: let agents approve their own actions instead of waiting for an operator. The built-in agent approves and carries on, and MCP clients may call browser.approve_approval. This covers every kind, payments and destructive actions included. Each approval is still created and recorded, marked decided_via=agent in the audit log and witness chain.

  • BROWSER_HEIGHT800
  • BROWSER_URLabout:blank
  • BROWSER_WIDTH1280
  • BROWSER_WS_ENDPOINT_FILE/data/browser-profile/browser-ws-endpoint.txt
  • CDP_CONNECT_URLCDP connect mode — attach to an existing Chrome (--remote-debugging-port)

    CDP connect mode — attach to an existing Chrome (--remote-debugging-port)

  • CLAUDE_AUTH_MODEapi
  • CLAUDE_CLI_MODEL
  • CLAUDE_CLI_PATHclaude
  • CLAUDE_MODELclaude-sonnet-4-6
  • CLEANUP_INTERVAL_SECONDS3600
  • CLEANUP_ON_STARTUPtrue
  • CLI_HOME/data/cli-home
  • CLI_HOST_HOME/home/youruserOptional: when using docker-compose.host-subscriptions.yml, point this at the host home that already contains your signed-in CLI state.

    Optional: when using docker-compose.host-subscriptions.yml, point this at the host home that already contains your signed-in CLI state.

  • CODEX_BRIDGE_ALLOW_HOST_EXECfalse
  • CODEX_SANDBOX_MODEread-onlyHow the Codex CLI may execute. read-only | workspace-write | danger-full-access. Codex is only asked for a JSON decision about a screenshot here, so read-only is enough. CODEX_BRIDGE_ALLOW_HOST_EXEC=true restores the old behaviour of passing --dangerously-bypass-approvals-and-sandbox: a model decision can then run any command on the host. Only inside an environment that is itself sandboxed.

    How the Codex CLI may execute. read-only | workspace-write | danger-full-access. Codex is only asked for a JSON decision about a screenshot here, so read-only is enough. CODEX_BRIDGE_ALLOW_HOST_EXEC=true restores the old behaviour of passing --dangerously-bypass-approvals-and-sandbox: a model decision can then run any command on the host. Only inside an environment that is itself sandboxed.

  • COMPLIANCE_MANIFEST_PATHCompliance Templates COMPLIANCE_TEMPLATE=HIPAA # HIPAA | SOC2 | GDPR | PCI-DSS

    Compliance Templates COMPLIANCE_TEMPLATE=HIPAA # HIPAA | SOC2 | GDPR | PCI-DSS

  • CONNECT_RETRIES60
  • CONNECT_RETRY_DELAY_SECONDS1
  • CONTROLLER_ALLOWED_HOSTSHost names the controller answers to. Left empty on a controller with no API_BEARER_TOKEN, only loopback names are accepted (DNS-rebinding guard).

    Host names the controller answers to. Left empty on a controller with no API_BEARER_TOKEN, only loopback names are accepted (DNS-rebinding guard).

  • CRON_MAX_JOBS
  • CRON_STORE_PATHCron / webhook trigger store

    Cron / webhook trigger store

  • CURATOR_ENABLEDSkills Curator — reviews each closed session with an LLM. Off by default: it makes a paid model call on every session close.

    Skills Curator — reviews each closed session with an LLM. Off by default: it makes a paid model call on every session close.

  • DEEPSEEK_API_KEYDeepSeek (text-only; driven from the DOM/accessibility outline)

    DeepSeek (text-only; driven from the DOM/accessibility outline)

  • DEEPSEEK_BASE_URLhttps://api.deepseek.com/v1
  • DEEPSEEK_MODELdeepseek-chat
  • DEFAULT_PROXY_PASSWORD
  • DEFAULT_PROXY_SERVERProxy routing (optional — per-session override also supported in POST /sessions)

    Proxy routing (optional — per-session override also supported in POST /sessions)

  • DEFAULT_PROXY_USERNAME
  • DEFAULT_VIEWPORT_HEIGHT
  • DEFAULT_VIEWPORT_WIDTHViewport defaults for new sessions

    Viewport defaults for new sessions

  • ENABLE_TRACINGtrue
  • FORCE_GOVERNED_APPROVALSMake governed approvals the server's rule rather than each agent's choice. Off, a write asks for approval only when the caller passes workflow_profile=governed (the default is fast). On, approval is required whatever the caller passed, and a caller cannot downgrade it to fast, for: - every MCP tool with a governed kind (16 in the full tool profile, such as browser.execute_action, browser.set_cooki

    Make governed approvals the server's rule rather than each agent's choice. Off, a write asks for approval only when the caller passes workflow_profile=governed (the default is fast). On, approval is required whatever the caller passed, and a caller cannot downgrade it to fast, for: - every MCP tool with a governed kind (16 in the full tool profile, such as browser.execute_action, browser.set_cooki

  • GEMINI_API_KEY
  • GEMINI_AUTH_MODEapi
  • GEMINI_BASE_URLhttps://generativelanguage.googleapis.com/v1beta
  • GEMINI_CLI_MODEL
  • GEMINI_CLI_PATHgemini
  • GEMINI_MODELgemini-3.5-flash
  • HARNESS_EXECUTOR_MODEL
  • HARNESS_EXPLORER_MODELModels recorded for cost provenance; the executor one is the minimum tier on staged skills.

    Models recorded for cost provenance; the executor one is the minimum tier on staged skills.

  • HARNESS_ROOTConvergence harness (docs/convergence-harness.md)

    Convergence harness (docs/convergence-harness.md)

  • HARNESS_UV_COMMANDPinned command for the UV verifier adapter; empty leaves it unverified.

    Pinned command for the UV verifier adapter; empty leaves it unverified.

  • HARNESS_VERIFIERprogrammatic | uv | ensemble

    programmatic | uv | ensemble

  • HARNESS_VERIFIER_MODEL
  • HUMAN_TYPING_MAX_DELAY_MS130
  • HUMAN_TYPING_MIN_DELAY_MS40Interaction pacing

    Interaction pacing

  • INSTALL_AGENT_CLISfalse*_AUTH_MODE=cli runs the codex/claude/gemini CLIs inside the controller. The image includes them (plus Node.js, ~750 MB) only when built with this set to true: `docker compose build controller` after changing it.

    *_AUTH_MODE=cli runs the codex/claude/gemini CLIs inside the controller. The image includes them (plus Node.js, ~750 MB) only when built with this set to true: `docker compose build controller` after changing it.

  • ISOLATED_BROWSER_BIND_HOST127.0.0.1
  • ISOLATED_BROWSER_CONTAINER_PREFIXbrowser-session
  • ISOLATED_BROWSER_CPUS0
  • ISOLATED_BROWSER_IMAGEauto-browser-browser-node:latest
  • ISOLATED_BROWSER_KEEP_CONTAINERSfalse
  • ISOLATED_BROWSER_MEM_LIMIT4gResource caps for per-session browser containers (docker_ephemeral mode). MEM_LIMIT accepts Docker size strings ("" disables). PIDS_LIMIT/CPUS of 0 disable the cap.

    Resource caps for per-session browser containers (docker_ephemeral mode). MEM_LIMIT accepts Docker size strings ("" disables). PIDS_LIMIT/CPUS of 0 disable the cap.

  • ISOLATED_BROWSER_NETWORK
  • ISOLATED_BROWSER_PIDS_LIMIT2048
  • ISOLATED_BROWSER_WAIT_TIMEOUT_SECONDS45
  • ISOLATED_DOCKER_HOST
  • ISOLATED_HOST_DATA_ROOT
  • ISOLATED_TAKEOVER_HOST127.0.0.1
  • ISOLATED_TAKEOVER_PATH/vnc.html?autoconnect=true&resize=scale
  • ISOLATED_TAKEOVER_SCHEMEhttp
  • ISOLATED_TUNNEL_ACCESS_MODEprivate
  • ISOLATED_TUNNEL_ENABLEDfalse
  • ISOLATED_TUNNEL_HOST
  • ISOLATED_TUNNEL_INFO_INTERVAL_SECONDS10
  • ISOLATED_TUNNEL_INFO_ROOT/data/tunnels/sessions
  • ISOLATED_TUNNEL_KEY_PATH
  • ISOLATED_TUNNEL_KNOWN_HOSTS_PATH/data/ssh/known_hosts
  • ISOLATED_TUNNEL_LOCAL_HOSThost.docker.internalOptional override. By default the controller tunnels directly to the isolated browser container over the Docker network instead of hairpinning through a host-published port.

    Optional override. By default the controller tunnels directly to the isolated browser container over the Docker network instead of hairpinning through a host-published port.

  • ISOLATED_TUNNEL_PORT22
  • ISOLATED_TUNNEL_PUBLIC_HOST
  • ISOLATED_TUNNEL_PUBLIC_SCHEMEhttp
  • ISOLATED_TUNNEL_REMOTE_BIND_ADDRESS127.0.0.1
  • ISOLATED_TUNNEL_REMOTE_PORT_END16240
  • ISOLATED_TUNNEL_REMOTE_PORT_START16181
  • ISOLATED_TUNNEL_SERVER_ALIVE_COUNT_MAX3
  • ISOLATED_TUNNEL_SERVER_ALIVE_INTERVAL30
  • ISOLATED_TUNNEL_STARTUP_GRACE_SECONDS1
  • ISOLATED_TUNNEL_STRICT_HOST_KEY_CHECKING
  • ISOLATED_TUNNEL_USER
  • JOB_STORE_ROOT/data/jobs
  • LOG_LEVELINFOLogging

    Logging

  • MAX_SESSIONS1
  • MCP_ALLOWED_ORIGINS
  • MCP_SESSION_STORE_PATHMCP session persistence

    MCP session persistence

  • MCP_TOOL_PROFILEcurated
  • MEMORY_ENABLEDtrue
  • MEMORY_ROOT/data/memoryAgent Memory Profiles

    Agent Memory Profiles

  • MESH_ENABLEDMesh (peer-to-peer delegation; off by default)

    Mesh (peer-to-peer delegation; off by default)

  • MESH_IDENTITY_DIR
  • MESH_PEERS_PATH
  • MESH_TIMESTAMP_WINDOW
  • METRICS_ENABLEDtrue
  • MINIMAX_API_KEYMiniMax

    MiniMax

  • MINIMAX_BASE_URLhttps://api.minimax.io/v1
  • MINIMAX_MODELMiniMax-M3
  • MODEL_MAX_RETRIES2
  • MODEL_REQUEST_TIMEOUT_SECONDS60
  • MODEL_RETRY_BACKOFF_SECONDS1
  • NETWORK_INSPECTOR_BODY_MAX_BYTES
  • NETWORK_INSPECTOR_CAPTURE_BODIES
  • NETWORK_INSPECTOR_ENABLEDNetwork inspector

    Network inspector

  • NETWORK_INSPECTOR_MAX_ENTRIES
  • NOVNC_ALLOWED_HOSTSnoVNC accepts a WebSocket only from the noVNC page's own origin on a loopback name, so pages the browser visits cannot read or drive the desktop. Host names (not loopback) that the takeover URL uses, e.g. a LAN IP or bastion name:

    noVNC accepts a WebSocket only from the noVNC page's own origin on a loopback name, so pages the browser visits cannot read or drive the desktop. Host names (not loopback) that the takeover URL uses, e.g. a LAN IP or bastion name:

  • NOVNC_ALLOWED_ORIGINSFull origins to accept when a proxy in front of port 6080 rewrites Host:

    Full origins to accept when a proxy in front of port 6080 rewrites Host:

  • NOVNC_PORT6080
  • OCR_ENABLEDtrue
  • OCR_LANGUAGEeng
  • OCR_MAX_BLOCKS20
  • OCR_SKIP_WHEN_TEXT_AVAILABLEtrueSkip OCR when the page already exposes readable text; false always runs it.

    Skip OCR when the page already exposes readable text; false always runs it.

  • OCR_TEXT_LIMIT1200
  • OPENAI_API_KEY
  • OPENAI_AUTH_MODEapi
  • OPENAI_BASE_URLhttps://api.openai.com/v1
  • OPENAI_CLI_MODEL
  • OPENAI_CLI_PATHcodex
  • OPENAI_COMPATIBLE_API_KEYAny other OpenAI-compatible endpoint: self-hosted Ollama / vLLM / LM Studio, Azure OpenAI, Together, Groq, Fireworks, ... Set base URL + model.

    Any other OpenAI-compatible endpoint: self-hosted Ollama / vLLM / LM Studio, Azure OpenAI, Together, Groq, Fireworks, ... Set base URL + model.

  • OPENAI_COMPATIBLE_BASE_URL
  • OPENAI_COMPATIBLE_MODEL
  • OPENAI_HOST_BRIDGE_SOCKET/data/host-bridge/codex.sock
  • OPENAI_MODELgpt-6.1-sol
  • OPENROUTER_API_KEYOpenAI-compatible providers (one generic adapter -> effectively every model) Set an API key to enable a provider. base_url has a sensible default; set the model where marked. Vision (screenshots) is on for all except DeepSeek (text). OpenRouter: one key proxies ~every frontier model (Claude, GPT, Gemini, Grok, DeepSeek, Llama, Mistral, Qwen, ...). Pick the model, e.g. anthropic/claude-3.7-sonnet.

    OpenAI-compatible providers (one generic adapter -> effectively every model) Set an API key to enable a provider. base_url has a sensible default; set the model where marked. Vision (screenshots) is on for all except DeepSeek (text). OpenRouter: one key proxies ~every frontier model (Claude, GPT, Gemini, Grok, DeepSeek, Llama, Mistral, Qwen, ...). Pick the model, e.g. anthropic/claude-3.7-sonnet.

  • OPENROUTER_BASE_URLhttps://openrouter.ai/api/v1
  • OPENROUTER_MODEL
  • OPERATOR_ID_HEADERX-Operator-Id
  • OPERATOR_NAME_HEADERX-Operator-Name
  • PERCEPTION_PRESET_DEFAULTPerception preset for /observe (fast | normal | rich)

    Perception preset for /observe (fast | normal | rich)

  • PII_SCRUB_ACTION_SCREENSHOTSRedacting the before/after snapshot of every action runs OCR twice per action, the biggest cost an action has. false makes actions much faster and leaves those snapshots unredacted; observation screenshots stay redacted.

    Redacting the before/after snapshot of every action runs OCR twice per action, the biggest cost an action has. false makes actions much faster and leaves those snapshots unredacted; observation screenshots stay redacted.

  • PII_SCRUB_AUDIT_REPORT
  • PII_SCRUB_CONSOLE
  • PII_SCRUB_ENABLEDPII scrubbing (all on by default)

    PII scrubbing (all on by default)

  • PII_SCRUB_NETWORK
  • PII_SCRUB_REPLACEMENTPII_SCRUB_PATTERNS= # blank = all 20 built-in pattern classes except generic_hex_token

    PII_SCRUB_PATTERNS= # blank = all 20 built-in pattern classes except generic_hex_token

  • PII_SCRUB_SCREENSHOTScreenshot redaction paints over OCR-detected words, so it needs the tesseract binary (the Docker image ships it). Without it screenshots are returned unscrubbed and /readyz warns. Page content (HTML, DOM, cookies, raw CDP) is never scrubbed: docs/deployment.md, "What PII scrubbing covers".

    Screenshot redaction paints over OCR-detected words, so it needs the tesseract binary (the Docker image ships it). Without it screenshots are returned unscrubbed and /readyz warns. Page content (HTML, DOM, cookies, raw CDP) is never scrubbed: docs/deployment.md, "What PII scrubbing covers".

  • PROXY_PERSONA_FILEProxy persona file — JSON map of named proxy configs

    Proxy persona file — JSON map of named proxy configs

  • REDIS_URL
  • REMOTE_ACCESS_INFO_PATH/data/tunnels/reverse-ssh.json
  • REMOTE_ACCESS_STALE_AFTER_SECONDS45
  • REQUEST_RATE_LIMIT_ENABLEDtrue
  • REQUEST_RATE_LIMIT_EXEMPT_PATHS/healthz,/readyz,/docs,/openapi.json,/redoc,/artifacts,/metrics
  • REQUEST_RATE_LIMIT_MAX_BUCKETS4096
  • REQUEST_RATE_LIMIT_REQUESTS120
  • REQUEST_RATE_LIMIT_WINDOW_SECONDS60
  • REQUIRE_APPROVAL_FOR_UPLOADStrue
  • REQUIRE_AUTH_STATE_ENCRYPTIONfalse
  • REQUIRE_OPERATOR_IDfalse
  • REVERSE_SSH_ACCESS_MODEprivate
  • REVERSE_SSH_ALLOW_NONLOCAL_BINDfalse
  • REVERSE_SSH_HOSTOptional reverse-SSH profile for private remote access. Start with: docker compose --profile reverse-ssh up --build The controller will read REMOTE_ACCESS_INFO_PATH and automatically prefer the tunnel's public_takeover_url/public_api_url when that metadata file exists.

    Optional reverse-SSH profile for private remote access. Start with: docker compose --profile reverse-ssh up --build The controller will read REMOTE_ACCESS_INFO_PATH and automatically prefer the tunnel's public_takeover_url/public_api_url when that metadata file exists.

  • REVERSE_SSH_INFO_INTERVAL_SECONDS15
  • REVERSE_SSH_KEY_PATH
  • REVERSE_SSH_KNOWN_HOSTS_PATH/ssh/known_hosts
  • REVERSE_SSH_PORT22
  • REVERSE_SSH_PUBLIC_API_URL
  • REVERSE_SSH_PUBLIC_HOST
  • REVERSE_SSH_PUBLIC_SCHEMEhttp
  • REVERSE_SSH_PUBLIC_TAKEOVER_URL
  • REVERSE_SSH_REMOTE_API_PORT18000
  • REVERSE_SSH_REMOTE_BIND_ADDRESS127.0.0.1
  • REVERSE_SSH_REMOTE_NOVNC_PORT16080
  • REVERSE_SSH_SERVER_ALIVE_COUNT_MAX3
  • REVERSE_SSH_SERVER_ALIVE_INTERVAL30
  • REVERSE_SSH_STALE_AFTER_SECONDS45
  • REVERSE_SSH_STRICT_HOST_KEY_CHECKING
  • REVERSE_SSH_USER
  • SESSION_ISOLATION_MODEshared_browser_node
  • SESSION_STORE_REDIS_PREFIXauto_browser:sessions
  • SESSION_STORE_ROOT/data/sessions
  • SHADOW_BROWSE_ENABLEDShadow browsing — reopen a session in a headed Chromium inside the controller, for debugging on a host run. Off by default: that browser runs unsandboxed next to the controller's secrets, and the Docker image has no browser for it.

    Shadow browsing — reopen a session in a headed Chromium inside the controller, for debugging on a host run. Off by default: that browser runs unsandboxed next to the controller's secrets, and the Docker image has no browser for it.

  • SHARE_TOKEN_SECRETShared session links (HMAC-signed observer tokens)

    Shared session links (HMAC-signed observer tokens)

  • SHARE_TOKEN_TTL_MINUTES
  • SKILLS_STAGING_ROOTCURATOR_PROVIDER=claude # claude | openai | gemini CURATOR_MODEL= # override default model per provider

    CURATOR_PROVIDER=claude # claude | openai | gemini CURATOR_MODEL= # override default model per provider

  • SSE_KEEPALIVE_SECONDSSSE keepalive interval in seconds (prevents proxy timeouts)

    SSE keepalive interval in seconds (prevents proxy timeouts)

  • STATE_DB_PATH
  • STEALTH_ENABLEDBrowser fingerprint / stealth

    Browser fingerprint / stealth

  • STEALTH_PROFILEStealth (humanized browser actions; off by default) off — raw Playwright speed light — timing jitter + Bézier mouse (recommended) aggressive — full fingerprint noise + tight human mimicry

    Stealth (humanized browser actions; off by default) off — raw Playwright speed light — timing jitter + Bézier mouse (recommended) aggressive — full fingerprint noise + tight human mimicry

  • TAKEOVER_URLhttp://127.0.0.1:6080/vnc.html?autoconnect=true&resize=scale
  • TYPING_DELAY_MS20
  • UPLOAD_RETENTION_HOURS168
  • UPLOAD_ROOT
  • VISION_MODELclaude-haiku-4-5-20251001
  • VNC_PASSWORDOptional VNC authentication for noVNC takeover and raw VNC, on the shared browser-node and on isolated session containers. Needed only if those ports are published beyond loopback. The VNC protocol uses the first 8 characters.

    Optional VNC authentication for noVNC takeover and raw VNC, on the shared browser-node and on isolated session containers. Needed only if those ports are published beyond loopback. The VNC protocol uses the first 8 characters.

  • VNC_PORT5900
  • WITNESS_ENABLEDtrue
  • WITNESS_PROTECTION_MODE_DEFAULTnormal
  • WITNESS_REMOTE_API_KEY
  • WITNESS_REMOTE_REQUIRED_FOR_CONFIDENTIALfalse
  • WITNESS_REMOTE_TENANT_ID
  • WITNESS_REMOTE_TIMEOUT_SECONDS0.75
  • WITNESS_REMOTE_URL
  • WITNESS_REMOTE_VERIFY_TLStrue
  • WITNESS_ROOT/data/witness
  • XAI_API_KEYxAI (Grok)

    xAI (Grok)

  • XAI_BASE_URLhttps://api.x.ai/v1
  • XAI_MODELgrok-4

auto-browser releases & version history

More in Browser Automation

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…