Skip to content

Releases: vercel-labs/agent-browser

v0.26.0

16 Apr 23:40
717d1b0

Choose a tag to compare

New Features

  • doctor command - Added agent-browser doctor for one-shot diagnosis of an install. Checks environment, Chrome, running daemons, config files, security, providers, and network connectivity; auto-cleans stale daemon sidecar files on every run; and performs a live headless launch test. Supports --offline to skip network probes, --quick to skip the launch test, --fix for opt-in repairs (install missing Chrome, close version-mismatched daemons, prune expired state files), and --json for structured output (#1254)
  • Stable tab ids and labels - Tabs now have stable string ids like t1, t2, t3 that don't shift when other tabs close or popups appear. Tabs can be created with a memorable label via tab new --label <name> [<url>], and labels are interchangeable with t<N> ids everywhere a tab ref is accepted (tab <id|label>, tab close <id|label>). Bare-integer input is rejected with a teaching error so agents can't mistake stable handles for positional indices (#892, #1249, #1250)
  • core skill - Renamed the built-in agent-browser skill to core and replaced its ~40-line discovery stub with a ~420-line usage guide covering the core snapshot-ref-act loop, reading, interacting, waiting, common workflows, troubleshooting, and global flags. agent-browser skills get core now returns content agents can use directly; --full adds references and templates. Added a hidden: frontmatter flag so the original agent-browser stub stays reachable for npx skills add discovery without polluting skills list (#1253)
  • JSON Schema for config files - Added agent-browser.schema.json describing every config option with types and descriptions, enabling IDE autocomplete and validation when referenced via $schema in agent-browser.json or ~/.agent-browser/config.json. The schema is served from the docs site at https://agent-browser.dev/schema.json (#1242, #1248)

Bug Fixes

  • Fixed --state / AGENT_BROWSER_STATE not actually loading saved browser state (cookies and localStorage) at launch. The flag had been fully plumbed through parsing, env propagation, and validation since the native Rust rewrite, but the load step was never wired up. Storage state now loads after launch across all four paths: explicit launch, auto-connect, provider, and local Chrome (#1241)

Documentation

  • --help output now shows the skills section first so agents discover skills get core (the canonical usage guide) before the core command list (#1251)

Contributors

v0.25.5

16 Apr 06:26
a884960

Choose a tag to compare

Bug Fixes

  • Fixed --auto-connect CDP discovery preferring HTTP endpoint discovery over the DevToolsActivePort websocket path, which could fail on some setups. The CLI now reads the websocket path from DevToolsActivePort first and only falls back to HTTP discovery (#1218)
  • Fixed recording context viewport not inheriting the active viewport dimensions, causing recordings to use default resolution instead of the configured viewport (#1208)
  • Fixed get box and get styles printing no data in text mode (#1231, #1233)
  • Fixed active page changing when closing or removing earlier tabs. The previously focused page is now preserved correctly (#1220)

Contributors

v0.25.4

12 Apr 18:50
2114bdf

Choose a tag to compare

New Features

  • skills command - Added agent-browser skills command for discovering and installing agent skills, with built-in evaluation support for testing skills against live browser sessions (#1225, #1227)

Bug Fixes

  • Fixed custom viewport dimensions not being used in streaming frame metadata and image resolution (#1033)
  • Fixed --ignore-https-errors not being re-applied to recording contexts, causing TLS errors during screen recordings (#1178)
  • Fixed duplicate option numbering in the auth skill documentation (#1161)

Documentation

  • The docs site header now dynamically fetches the GitHub star count (#1202)

Contributors

v0.25.3

07 Apr 02:11
6d05a94

Choose a tag to compare

Bug Fixes

  • Fixed hidden radio/checkbox inputs missing from snapshot refs when a <label> wraps a display:none <input type="radio"> or <input type="checkbox">. Chrome excludes these inputs from the accessibility tree entirely, making it impossible for AI agents to identify radio buttons and checkboxes via refs. Hidden inputs inside elements are now detected during cursor-interactive scanning and their parent nodes are promoted to the correct role with proper name and checked state (#1085)

Documentation

  • Added clickable heading anchors to the docs site, making it easy to link directly to any section (#1175)

Contributors

v0.25.2

07 Apr 00:02
b75fba1

Choose a tag to compare

Bug Fixes

  • Fixed Chrome being killed after ~10s idle on Linux caused by PR_SET_PDEATHSIG tracking the blocking thread that spawned Chrome rather than the daemon process. When Tokio reaped the idle thread, the kernel sent SIGKILL to Chrome even though the daemon was still alive. Orphan cleanup is handled by the existing process-group kill in ChromeProcess::kill() (#1157, #1173)

Contributors

v0.25.1

06 Apr 16:00
7b3f826

Choose a tag to compare

Improvements

  • Embedded dashboard - The observability dashboard is now bundled directly into the CLI binary using rust-embed, eliminating the need for dashboard install. The dashboard is available immediately after installing agent-browser (#1169)

Contributors

v0.25.0

06 Apr 15:27
3896ed0

Choose a tag to compare

New Features

  • AI chat command - Added chat command for AI-powered browser automation. Supports single-shot mode (chat "open google.com") and an interactive REPL. The AI agent can execute any agent-browser command via tool calls. Requires AI_GATEWAY_API_KEY. Configure the model with --model or AI_GATEWAY_MODEL (#1160, #1163)
  • Dashboard AI chat - The observability dashboard now includes a built-in AI chat interface for conversational browser control alongside live session views (#1160, #1163)
  • snapshot --urls - New -u/--urls flag to include href URLs for link elements in snapshot output, giving agents direct access to link targets without additional queries (#1160)
  • Batch argument mode - The batch command now accepts commands as inline arguments in addition to reading from stdin, simplifying single-invocation multi-command workflows (#1160)

Bug Fixes

  • Fixed getByRole matching wrong elements (e.g. <link> stylesheet elements instead of <a> anchors) by rewriting the implementation to use the CDP accessibility tree with ref-based element resolution instead of CSS selectors (#1145)
  • Fixed upload command not supporting accessibility tree refs (@eN) for file upload element selection (#1156)
  • Fixed AGENT_BROWSER_DEFAULT_TIMEOUT not being applied to wait commands. The environment variable now propagates to all wait variants (wait, wait --url, wait --text, wait --load, wait --fn, wait --download) (#1153)
  • Fixed dashboard download error handling with improved retry logic for more reliable dashboard installation (#1154)

Tests

  • Fixed CI test failures on Windows and E2E (#1165)

Contributors

v0.24.1

04 Apr 17:56
1205e2c

Choose a tag to compare

New Features

  • Chrome profile login state reuse - --profile <name> now resolves Chrome profile names (e.g. Default, Profile 1) and copies the profile to a temp directory to reuse login state, cookies, and extensions without modifying the original. Added profiles command to list available Chrome profiles with --json support (#1131)

Bug Fixes

  • Fixed --ignore-https-errors not passing --ignore-certificate-errors as a Chrome launch flag, causing TLS errors like ERR_SSL_PROTOCOL_ERROR to be rejected at the network layer before CDP could intervene (#1132)
  • Fixed orphaned Chrome processes on daemon exit by spawning Chrome in its own process group and killing the entire group on shutdown. On Linux, PR_SET_PDEATHSIG ensures Chrome is killed even if the daemon is OOM-killed (#1137)
  • Fixed CDP attach hang on Chrome 144+ when connecting to real browser sessions. Targets paused waiting for the debugger after attach are now resumed with Runtime.runIfWaitingForDebugger (#1133)
  • Fixed stale daemon after upgrade silently reusing the old daemon process with broken CDP behavior. The daemon now writes a .version sidecar file and auto-restarts on version mismatch (#1134)
  • Fixed stale daemon/socket recovery where close --all failed to clean up zombie daemons and stale files. Unreachable daemons are now force-killed and orphaned socket/pid files are removed (#1136)
  • Fixed idle timeout not being respected because the sleep future was recreated on every select loop iteration, preventing the deadline from being reached (#1110)
  • Fixed browser not relaunching when launch options change (e.g. adding extensions to config.json) between consecutive launch commands (#996)
  • Fixed auto_launch() not honouring AGENT_BROWSER_PROVIDER for cloud providers, causing non-launch commands to fall back to local Chrome instead of connecting via the provider API (#1126)
  • Fixed HAR capture missing API requests under heavy traffic by increasing the CDP broadcast buffer from 256 to 4096 events, reducing the drain interval from 500ms to 100ms, and enabling network tracking in cross-origin iframes (#1135)

Tests

  • Fixed e2e_relaunch_on_options_change launching headed Chrome on CI where no display is available. The test now stays headless and only changes extensions to trigger the relaunch (#996)
  • Fixed e2e_auth_login flake by reducing the SPA render delay from 1200ms to 800ms, giving more headroom within the selector wait window on slower CI runners

Contributors

v0.24.0

03 Apr 01:48
2a44b51

Choose a tag to compare

New Features

  • AWS Bedrock AgentCore provider - Added AWS Bedrock AgentCore as a cloud browser provider. Connect with --provider agentcore or AGENT_BROWSER_PROVIDER=agentcore. Uses lightweight manual SigV4 signing for authentication with support for the full AWS credential provider chain (environment variables, AWS CLI, SSO, IAM roles). Configure with AGENTCORE_REGION, AGENTCORE_PROFILE_ID, and AGENTCORE_BROWSER_ID environment variables. Returns session ID and Live View URL in the launch response (#397)

Documentation

  • Added AgentCore provider page to docs site, README options table, SKILL.md, and dashboard provider icons (#1120)

Contributors

v0.23.4

31 Mar 07:32
8959583

Choose a tag to compare

Bug Fixes

  • Fixed daemon hang on Linux caused by a waitpid(-1) race condition in the SIGCHLD handler that stole exit statuses from Rust's Child handles, leaving the daemon in a broken state. Replaced the global signal handler with targeted crash detection via the existing drain interval (#1098)

Contributors