Releases: vercel-labs/agent-browser
Releases · vercel-labs/agent-browser
v0.26.0
New Features
doctorcommand - Addedagent-browser doctorfor 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--offlineto skip network probes,--quickto skip the launch test,--fixfor opt-in repairs (install missing Chrome, close version-mismatched daemons, prune expired state files), and--jsonfor structured output (#1254)- Stable tab ids and labels - Tabs now have stable string ids like
t1,t2,t3that don't shift when other tabs close or popups appear. Tabs can be created with a memorable label viatab new --label <name> [<url>], and labels are interchangeable witht<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) coreskill - Renamed the built-inagent-browserskill tocoreand 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 corenow returns content agents can use directly;--fulladds references and templates. Added ahidden:frontmatter flag so the originalagent-browserstub stays reachable fornpx skills adddiscovery without pollutingskills list(#1253)- JSON Schema for config files - Added
agent-browser.schema.jsondescribing every config option with types and descriptions, enabling IDE autocomplete and validation when referenced via$schemainagent-browser.jsonor~/.agent-browser/config.json. The schema is served from the docs site athttps://agent-browser.dev/schema.json(#1242, #1248)
Bug Fixes
- Fixed
--state/AGENT_BROWSER_STATEnot 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
--helpoutput now shows the skills section first so agents discoverskills get core(the canonical usage guide) before the core command list (#1251)
Contributors
v0.25.5
Bug Fixes
- Fixed
--auto-connectCDP 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 boxandget stylesprinting 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
New Features
skillscommand - Addedagent-browser skillscommand 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-errorsnot 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
Bug Fixes
- Fixed hidden radio/checkbox inputs missing from snapshot refs when a
<label>wraps adisplay: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
Bug Fixes
- Fixed Chrome being killed after ~10s idle on Linux caused by
PR_SET_PDEATHSIGtracking 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 inChromeProcess::kill()(#1157, #1173)
Contributors
v0.25.1
v0.25.0
New Features
- AI chat command - Added
chatcommand 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. RequiresAI_GATEWAY_API_KEY. Configure the model with--modelorAI_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/--urlsflag 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
batchcommand now accepts commands as inline arguments in addition to reading from stdin, simplifying single-invocation multi-command workflows (#1160)
Bug Fixes
- Fixed
getByRolematching 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
uploadcommand not supporting accessibility tree refs (@eN) for file upload element selection (#1156) - Fixed
AGENT_BROWSER_DEFAULT_TIMEOUTnot being applied towaitcommands. 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
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. Addedprofilescommand to list available Chrome profiles with--jsonsupport (#1131)
Bug Fixes
- Fixed
--ignore-https-errorsnot passing--ignore-certificate-errorsas a Chrome launch flag, causing TLS errors likeERR_SSL_PROTOCOL_ERRORto 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_PDEATHSIGensures 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
.versionsidecar file and auto-restarts on version mismatch (#1134) - Fixed stale daemon/socket recovery where
close --allfailed 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 honouringAGENT_BROWSER_PROVIDERfor 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_changelaunching 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_loginflake 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
New Features
- AWS Bedrock AgentCore provider - Added AWS Bedrock AgentCore as a cloud browser provider. Connect with
--provider agentcoreorAGENT_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 withAGENTCORE_REGION,AGENTCORE_PROFILE_ID, andAGENTCORE_BROWSER_IDenvironment 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
Bug Fixes
- Fixed daemon hang on Linux caused by a
waitpid(-1)race condition in the SIGCHLD handler that stole exit statuses from Rust'sChildhandles, leaving the daemon in a broken state. Replaced the global signal handler with targeted crash detection via the existing drain interval (#1098)