573 lines
18 KiB
Plaintext
573 lines
18 KiB
Plaintext
import { pageMetadata } from "@/lib/page-metadata"
|
|
|
|
export const metadata = pageMetadata("changelog")
|
|
|
|
# Changelog
|
|
|
|
## v0.16.0
|
|
|
|
<p className="text-[#888] text-sm">March 2026</p>
|
|
|
|
### New Features
|
|
|
|
- **Native Rust daemon (experimental).** A pure Rust daemon that communicates with Chrome directly via the Chrome DevTools Protocol (CDP), eliminating Node.js and Playwright dependencies entirely. Enable with `--native`, `AGENT_BROWSER_NATIVE=1`, or `"native": true` in your config file. Supports 150+ commands with full parity to the default Node.js daemon.
|
|
|
|
```bash
|
|
# Via flag
|
|
agent-browser --native open example.com
|
|
|
|
# Via environment variable
|
|
export AGENT_BROWSER_NATIVE=1
|
|
agent-browser open example.com
|
|
```
|
|
|
|
Or add to `agent-browser.json`:
|
|
|
|
```json
|
|
{"native": true}
|
|
```
|
|
|
|
### Architecture
|
|
|
|
<table>
|
|
<thead>
|
|
<tr><th></th><th>Default (Node.js)</th><th>Native (<code>--native</code>)</th></tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr><td><strong>Runtime</strong></td><td>Node.js + Playwright</td><td>Pure Rust binary</td></tr>
|
|
<tr><td><strong>Protocol</strong></td><td>Playwright protocol</td><td>Direct CDP / WebDriver</td></tr>
|
|
<tr><td><strong>Install size</strong></td><td>Larger (Node.js + npm deps)</td><td>Smaller (single binary)</td></tr>
|
|
<tr><td><strong>Browser support</strong></td><td>Chromium, Firefox, WebKit</td><td>Chromium, Safari (via WebDriver)</td></tr>
|
|
<tr><td><strong>Stability</strong></td><td>Stable</td><td>Experimental</td></tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
### What's Supported
|
|
|
|
All core commands work in native mode: navigation, interaction (click, fill, type, press, hover, scroll, drag), observation (snapshot, screenshot, eval), state management (cookies, storage, state save/load), tabs, emulation (viewport, device, timezone, locale, geolocation), streaming, diffing, recording, and profiling.
|
|
|
|
The native daemon also includes a WebDriver backend for Safari and iOS support.
|
|
|
|
### Known Limitations
|
|
|
|
- Firefox and WebKit are not yet supported (Chromium and Safari only)
|
|
- Playwright trace format is not available (uses Chrome's built-in tracing)
|
|
- HAR export is not available
|
|
- Network route interception uses CDP Fetch domain instead of Playwright's route API
|
|
- The native and Node.js daemons share the same session socket. Use `agent-browser close` before switching between modes.
|
|
|
|
See the [Native Mode](/native-mode) page for full details.
|
|
|
|
---
|
|
|
|
## v0.15.0
|
|
|
|
<p className="text-[#888] text-sm">February 2026</p>
|
|
|
|
### New Features
|
|
|
|
- **Authentication vault** -- Store credentials locally (always AES-256-GCM encrypted) and reference them by name. The LLM never sees passwords. Commands: `auth save`, `auth login`, `auth list`, `auth show`, `auth delete`. Passwords can be piped via stdin (`--password-stdin`) to avoid shell history exposure.
|
|
- **Content boundary markers** -- `--content-boundaries` wraps page-sourced output in structural delimiters with a per-process CSPRNG nonce, so LLMs can distinguish trusted tool output from untrusted page content. In `--json` mode, a `_boundary` object is injected with `nonce` and `origin` fields.
|
|
- **Domain allowlist** -- `--allowed-domains` restricts navigation, sub-resource requests, WebSocket connections, and EventSource streams to trusted domains. Supports exact match and wildcard prefix patterns (e.g., `*.example.com`).
|
|
- **Action policy** -- `--action-policy` gates actions using a static JSON policy file with `allow`/`deny` lists across 13 action categories. Auth vault operations bypass policy enforcement.
|
|
- **Action confirmation** -- `--confirm-actions` requires explicit approval for sensitive action categories. New `confirm` and `deny` commands for orchestrator use. `--confirm-interactive` enables human-in-the-loop terminal prompts (auto-denies if stdin is not a TTY). Pending confirmations auto-deny after 60 seconds.
|
|
- **Output length limits** -- `--max-output` truncates large page outputs to prevent LLM context flooding.
|
|
- **`--download-path` option** -- Set a default download directory via flag, `AGENT_BROWSER_DOWNLOAD_PATH` env var, or `downloadPath` config key. Without it, downloads go to a temporary directory deleted when the browser closes.
|
|
- **`--selector` flag for scroll** -- Scroll within a specific container element instead of the page: `agent-browser scroll down 500 --selector "div.scroll-container"`
|
|
|
|
```bash
|
|
# Auth vault
|
|
echo "pass" | agent-browser auth save github --url https://github.com/login --username user --password-stdin
|
|
agent-browser auth login github
|
|
|
|
# Security flags
|
|
agent-browser --content-boundaries --allowed-domains "example.com,*.example.com" --max-output 50000 open https://example.com
|
|
|
|
# Download path
|
|
agent-browser --download-path ./downloads open https://example.com
|
|
|
|
# Scroll within container
|
|
agent-browser scroll down 500 --selector "div.content"
|
|
```
|
|
|
|
### Environment Variables
|
|
|
|
Six new environment variables for security configuration: `AGENT_BROWSER_CONTENT_BOUNDARIES`, `AGENT_BROWSER_MAX_OUTPUT`, `AGENT_BROWSER_ALLOWED_DOMAINS`, `AGENT_BROWSER_ACTION_POLICY`, `AGENT_BROWSER_CONFIRM_ACTIONS`, `AGENT_BROWSER_CONFIRM_INTERACTIVE`.
|
|
|
|
---
|
|
|
|
## v0.14.0
|
|
|
|
<p className="text-[#888] text-sm">February 2026</p>
|
|
|
|
### New Features
|
|
|
|
- **`keyboard` command** -- Type with real keystrokes, insert text, and press shortcuts at the currently focused element without needing a selector (`keyboard type`, `keyboard inserttext`).
|
|
- **`--color-scheme` flag** -- Persistent dark/light mode preference across browser sessions via flag or `AGENT_BROWSER_COLOR_SCHEME` env var.
|
|
|
|
```bash
|
|
agent-browser keyboard type "Hello world"
|
|
agent-browser keyboard inserttext "pasted text"
|
|
agent-browser --color-scheme dark open https://example.com
|
|
```
|
|
|
|
### Bug Fixes
|
|
|
|
- Fixed IPC EAGAIN errors (os error 35/11) with backpressure-aware socket writes, command serialization, and lowered default Playwright timeout to 25s (configurable via `AGENT_BROWSER_DEFAULT_TIMEOUT`).
|
|
- Fixed remote debugging (CDP) reconnection.
|
|
- Fixed state load failing when no browser is running.
|
|
- Fixed `--annotate` flag warning appearing when not explicitly passed via CLI.
|
|
|
|
---
|
|
|
|
## v0.13.0
|
|
|
|
<p className="text-[#888] text-sm">February 2026</p>
|
|
|
|
### New Features
|
|
|
|
- **Diff commands** -- Compare snapshots, screenshots, and URLs between page states. Run visual pixel diffs against baseline images, compare accessibility tree snapshots with customizable depth and selectors, and diff two URLs side-by-side with optional screenshot comparison.
|
|
|
|
```bash
|
|
agent-browser diff snapshot
|
|
agent-browser diff screenshot --baseline before.png
|
|
agent-browser diff url https://staging.example.com https://prod.example.com
|
|
```
|
|
|
|
---
|
|
|
|
## v0.12.0
|
|
|
|
<p className="text-[#888] text-sm">February 2026</p>
|
|
|
|
### New Features
|
|
|
|
- **Annotated screenshots** -- `--annotate` flag overlays numbered labels on interactive elements and prints a legend mapping each label to its element ref. Enables multimodal AI models to reason about visual layout while using the same `@eN` refs for subsequent interactions. Also settable via `AGENT_BROWSER_ANNOTATE` env var.
|
|
|
|
```bash
|
|
agent-browser screenshot --annotate
|
|
```
|
|
|
|
---
|
|
|
|
## v0.11.1
|
|
|
|
<p className="text-[#888] text-sm">February 2026</p>
|
|
|
|
### Documentation
|
|
|
|
- Added documentation for command chaining with `&&` across README, CLI help output, docs, and skill files.
|
|
|
|
---
|
|
|
|
## v0.11.0
|
|
|
|
<p className="text-[#888] text-sm">February 2026</p>
|
|
|
|
### New Features
|
|
|
|
- **Configuration file support** -- Automatic loading from user (`~/.agent-browser/config.json`) and project (`./agent-browser.json`) directories with priority-based merging.
|
|
- **Profiler commands** -- Chrome DevTools profiling with `profiler start` and `profiler stop`.
|
|
- **Browser extension loading** -- `--extension` flag to load browser extensions.
|
|
- **Storage state management** -- `state save` and `state load` commands for auth state persistence.
|
|
- **iOS device emulation** -- `--device` flag for device emulation.
|
|
- **Enhanced click** -- `--new-tab` option for click commands.
|
|
- **Enhanced find** -- Additional actions and filtering options.
|
|
- **CDP WebSocket URLs** -- `--cdp` now accepts WebSocket URLs in addition to ports.
|
|
|
|
---
|
|
|
|
## v0.10.0
|
|
|
|
<p className="text-[#888] text-sm">February 2026</p>
|
|
|
|
### New Features
|
|
|
|
- **Session persistence** - Automatic save/restore of cookies and localStorage across browser restarts using `--session-name` flag
|
|
- **Encrypted state** - Optional AES-256-GCM encryption for saved session state data
|
|
- **State management commands** - New commands for listing, showing, renaming, clearing, and cleaning up session state files
|
|
- **New tab on click** - Added `--new-tab` option for click commands to open links in new tabs
|
|
|
|
```bash
|
|
# Persist session state
|
|
agent-browser --session-name myapp open https://example.com
|
|
|
|
# Manage saved states
|
|
agent-browser state list
|
|
agent-browser state show myapp
|
|
agent-browser state clear myapp
|
|
```
|
|
|
|
---
|
|
|
|
## v0.9.4
|
|
|
|
<p className="text-[#888] text-sm">February 2026</p>
|
|
|
|
### Bug Fixes
|
|
|
|
- Fixed all Clippy lint warnings in the Rust CLI
|
|
|
|
---
|
|
|
|
## v0.9.3
|
|
|
|
<p className="text-[#888] text-sm">February 2026</p>
|
|
|
|
### Improvements
|
|
|
|
- Added support for custom executable path in CLI browser launch options
|
|
- Documentation site UI improvements including a new chat component with sheet-based interface
|
|
|
|
---
|
|
|
|
## v0.9.2
|
|
|
|
<p className="text-[#888] text-sm">February 2026</p>
|
|
|
|
### Improvements
|
|
|
|
- Migrated documentation site to MDX for improved content authoring
|
|
- Added AI-powered docs chat feature
|
|
- Updated README with Homebrew installation instructions for macOS users
|
|
|
|
---
|
|
|
|
## v0.9.1
|
|
|
|
<p className="text-[#888] text-sm">February 2026</p>
|
|
|
|
### New Features
|
|
|
|
- **`--allow-file-access` flag** - Enable opening and interacting with local `file://` URLs (PDFs, HTML files) by passing Chromium flags that allow JavaScript access to local files
|
|
- **`-C`/`--cursor` flag for snapshots** - Include cursor-interactive elements like divs with onclick handlers or `cursor:pointer` styles
|
|
|
|
```bash
|
|
agent-browser --allow-file-access open file:///path/to/document.pdf
|
|
agent-browser snapshot -C
|
|
```
|
|
|
|
---
|
|
|
|
## v0.9.0
|
|
|
|
<p className="text-[#888] text-sm">February 2026</p>
|
|
|
|
### New Features
|
|
|
|
- **iOS Simulator support** - Mobile Safari testing via Appium with real device and simulator support
|
|
|
|
```bash
|
|
# List available iOS simulators
|
|
agent-browser device list
|
|
|
|
# Launch on iOS device
|
|
agent-browser -p ios --device "iPhone 16 Pro" open https://example.com
|
|
|
|
# Touch interactions
|
|
agent-browser tap @e1
|
|
agent-browser swipe up
|
|
```
|
|
|
|
---
|
|
|
|
## v0.8.10
|
|
|
|
<p className="text-[#888] text-sm">January 2026</p>
|
|
|
|
### Improvements
|
|
|
|
- Added `--stdin` flag for eval command to read JavaScript from stdin, enabling heredoc usage for multiline scripts
|
|
- Fixed binary permission issues on macOS/Linux when postinstall scripts don't run
|
|
|
|
---
|
|
|
|
## v0.8.9
|
|
|
|
<p className="text-[#888] text-sm">January 2026</p>
|
|
|
|
### Improvements
|
|
|
|
- Added `--stdin` flag for eval command to read JavaScript from stdin
|
|
|
|
---
|
|
|
|
## v0.8.8
|
|
|
|
<p className="text-[#888] text-sm">January 2026</p>
|
|
|
|
### Improvements
|
|
|
|
- Added base64 encoding support for the eval command with `-b`/`--base64` flag to avoid shell escaping issues
|
|
- Updated documentation with AI agent setup instructions
|
|
|
|
---
|
|
|
|
## v0.8.7
|
|
|
|
<p className="text-[#888] text-sm">January 2026</p>
|
|
|
|
### Bug Fixes
|
|
|
|
- Fixed browser launch options not being passed correctly when using persistent profiles
|
|
- Added pre-flight checks for socket path length limits and directory write permissions
|
|
- Improved error handling to properly exit with failure status when browser launch fails
|
|
|
|
---
|
|
|
|
## v0.8.6
|
|
|
|
<p className="text-[#888] text-sm">January 2026</p>
|
|
|
|
### Bug Fixes
|
|
|
|
- Improved daemon connection reliability with automatic retry logic for transient errors
|
|
- CLI now cleans up stale socket and PID files before starting a new daemon
|
|
|
|
---
|
|
|
|
## v0.8.5
|
|
|
|
<p className="text-[#888] text-sm">January 2026</p>
|
|
|
|
### Bug Fixes
|
|
|
|
- Fixed version synchronization to automatically update Cargo.lock alongside Cargo.toml during releases
|
|
- Made the CLI binary executable in the npm package
|
|
|
|
---
|
|
|
|
## v0.8.4
|
|
|
|
<p className="text-[#888] text-sm">January 2026</p>
|
|
|
|
### Bug Fixes
|
|
|
|
- Fixed "Daemon not found" error when running through AI agents by resolving symlinks in the executable path
|
|
|
|
---
|
|
|
|
## v0.8.3
|
|
|
|
<p className="text-[#888] text-sm">January 2026</p>
|
|
|
|
### Improvements
|
|
|
|
- Replaced shell-based CLI wrappers with a cross-platform Node.js wrapper to enable npx support on Windows
|
|
- Added postinstall logic to patch npm bin entry on global installs for zero-overhead native binary invocation
|
|
- Added CI tests to verify global installation across all platforms
|
|
|
|
---
|
|
|
|
## v0.8.2
|
|
|
|
<p className="text-[#888] text-sm">January 2026</p>
|
|
|
|
### Bug Fixes
|
|
|
|
- Fixed the Windows CMD wrapper to use the native binary directly instead of routing through Node.js
|
|
- Added retry logic to CI install command for transient browser installation failures
|
|
|
|
---
|
|
|
|
## v0.8.1
|
|
|
|
<p className="text-[#888] text-sm">January 2026</p>
|
|
|
|
### Improvements
|
|
|
|
- Improved release workflow to validate binary file sizes and ensure binaries are executable after npm install
|
|
- Updated documentation site with a new mobile navigation system
|
|
|
|
---
|
|
|
|
## v0.8.0
|
|
|
|
<p className="text-[#888] text-sm">January 2026</p>
|
|
|
|
### New Features
|
|
|
|
- **Kernel cloud browser provider** - Connect to Kernel (kernel.sh) for remote browser infrastructure with stealth mode and persistent profiles
|
|
|
|
```bash
|
|
# Via -p flag
|
|
agent-browser -p kernel open https://example.com
|
|
|
|
# Via environment variable
|
|
export AGENT_BROWSER_PROVIDER=kernel
|
|
export KERNEL_API_KEY=your-api-key
|
|
agent-browser open https://example.com
|
|
|
|
# With persistent profile
|
|
export KERNEL_PROFILE_NAME=my-profile
|
|
agent-browser open https://example.com
|
|
```
|
|
|
|
- **Ignore HTTPS certificate errors** - New flag for working with self-signed certificates and development environments
|
|
|
|
```bash
|
|
agent-browser --ignore-https-errors open https://localhost:3000
|
|
```
|
|
|
|
- **Enhanced cookie management** - Extended `cookies set` command with additional flags for setting cookies before page load
|
|
|
|
```bash
|
|
agent-browser cookies set session_id "abc123" --url https://app.example.com --httpOnly --secure
|
|
agent-browser cookies set token "xyz" --domain .example.com --path /api --expires 1735689600
|
|
```
|
|
|
|
### Bug Fixes
|
|
|
|
- Fixed tab list command not recognizing new pages opened via clicks or `target="_blank"` links
|
|
- Fixed `check` command hanging indefinitely
|
|
- Fixed `set device` not applying deviceScaleFactor - HiDPI screenshots now work correctly
|
|
- Fixed state load and profile persistence not working in v0.7.6
|
|
- Screenshots now save to temp directory when no path is provided
|
|
|
|
### Security
|
|
|
|
- Daemon and stream server now reject cross-origin connections
|
|
|
|
---
|
|
|
|
## v0.7.1
|
|
|
|
<p className="text-[#888] text-sm">January 2026</p>
|
|
|
|
### Bug Fixes
|
|
|
|
- **Fix native binary distribution** - Native binaries for all platforms (Linux x64/arm64, macOS x64/arm64, Windows x64) are now included in the npm package. Previously, the release workflow published to npm before building binaries, causing "No binary found" errors on installation.
|
|
|
|
---
|
|
|
|
## v0.7.0
|
|
|
|
<p className="text-[#888] text-sm">January 2026</p>
|
|
|
|
### New Features
|
|
|
|
- **Cloud browser providers** - Connect to Browserbase or Browser Use for remote browser infrastructure
|
|
|
|
```bash
|
|
# Via -p flag (recommended)
|
|
agent-browser -p browserbase open https://example.com
|
|
agent-browser -p browseruse open https://example.com
|
|
|
|
# Via environment variable
|
|
export AGENT_BROWSER_PROVIDER=browserbase
|
|
agent-browser open https://example.com
|
|
```
|
|
|
|
- **Persistent browser profiles** - Store cookies, localStorage, and login sessions across browser restarts
|
|
|
|
```bash
|
|
agent-browser --profile ~/.myapp-profile open myapp.com
|
|
# Login persists across restarts
|
|
```
|
|
|
|
- **Remote CDP WebSocket URLs** - Connect to remote browser services via WebSocket
|
|
|
|
```bash
|
|
agent-browser --cdp "wss://browser-service.com/cdp?token=..." snapshot
|
|
```
|
|
|
|
- **`download` command** - Trigger downloads and wait for completion
|
|
|
|
```bash
|
|
agent-browser download @e1 ./file.pdf
|
|
agent-browser wait --download ./output.zip --timeout 30000
|
|
```
|
|
|
|
- **Browser launch configuration** - Fine-grained control over browser startup
|
|
|
|
```bash
|
|
agent-browser --args "--disable-gpu,--no-sandbox" open example.com
|
|
agent-browser --user-agent "Custom UA" open example.com
|
|
agent-browser --proxy-bypass "localhost,*.internal" open example.com
|
|
```
|
|
|
|
- **Enhanced skills** - Hierarchical structure with references and templates for Claude Code
|
|
|
|
### Bug Fixes
|
|
|
|
- Screenshot command now supports refs and has improved error messages
|
|
- WebSocket URLs work in `connect` command
|
|
- Fixed socket file location (uses `~/.agent-browser` instead of TMPDIR)
|
|
- Windows binary path fix (.exe extension)
|
|
- State load and path-based actions now show correct output messages
|
|
|
|
### Documentation
|
|
|
|
- Added Claude Code marketplace plugin installation instructions
|
|
- Updated skill documentation with references and templates
|
|
- Improved error documentation
|
|
|
|
---
|
|
|
|
## v0.6.0
|
|
|
|
<p className="text-[#888] text-sm">January 2026</p>
|
|
|
|
### New Features
|
|
|
|
- **Video recording** - Record browser sessions to WebM using Playwright's native recording
|
|
|
|
```bash
|
|
agent-browser record start ./demo.webm
|
|
agent-browser click @e1
|
|
agent-browser record stop
|
|
```
|
|
|
|
- **`connect` command** - Connect to a browser via CDP and persist the connection for subsequent commands
|
|
|
|
```bash
|
|
agent-browser connect 9222
|
|
agent-browser snapshot # No --cdp needed after connect
|
|
```
|
|
|
|
- **`--proxy` flag** - Configure browser proxy with optional authentication
|
|
|
|
```bash
|
|
agent-browser --proxy http://user:pass@proxy.com:8080 open example.com
|
|
```
|
|
|
|
- **`get styles` command** - Extract computed styles from elements
|
|
|
|
```bash
|
|
agent-browser get styles "button"
|
|
```
|
|
|
|
- **Claude marketplace plugin** - Added `.claude-plugin/marketplace.json` for Claude Code integration
|
|
- **Enhanced network output** - `network requests` now shows method, URL, and resource type
|
|
- **`--version` flag** - Display CLI version
|
|
|
|
### Bug Fixes
|
|
|
|
- Fix Windows daemon startup and port calculation
|
|
- Support `libasound2t64` on newer Ubuntu versions (24.04+)
|
|
- Prevent CDP timeout on empty URL tabs
|
|
- Output screenshot as base64 when no path provided
|
|
- Resolve refs in `get value` command
|
|
- Support URL parameter in `tab new` command
|
|
- Allow `about:`, `data:`, and `file:` URL schemes
|
|
- Detect stale unix socket by attempting connection
|
|
- Respect `AGENT_BROWSER_HEADED` environment variable
|
|
- Handle SIGPIPE to prevent panic when piping to `head`/`tail`
|
|
- Fix null path validation in screenshot command
|
|
|
|
### Protocol Alignment
|
|
|
|
These changes align the CLI with the daemon protocol for consistency:
|
|
|
|
- `select` command now uses `values` field (supports multiple selections)
|
|
- `frame main` uses `mainframe` action
|
|
- `mouse wheel` uses `wheel` action
|
|
- `set media` uses `emulatemedia` action
|
|
- Console output uses `messages` field
|
|
|
|
### Documentation
|
|
|
|
- Expanded SKILL.md with comprehensive command reference
|
|
- Updated README with new commands and options
|
|
- Updated CDP mode documentation with `connect` workflow
|