cd /news/ai-agents/bruster-rust-browser-automation-tool… · home › topics › ai-agents › article
[ARTICLE · art-164967] src=github.com ↗ pub= topic=ai-agents verified=true sentiment=↑ positive

Bruster – Rust browser automation tool and MCP

Bruster, an open-source browser automation tool and Model Context Protocol (MCP) server written in Rust, has been released by developer aliilyas, letting AI agents, Python scripts, and test runners control native webviews on macOS (WKWebView), Linux (WebKitGTK), and Windows (WebView2) without Node.js. Bruster ships a built-in runner for a line-oriented `.bru` test DSL, a JSON-lines API, a Docker image for amd64 and arm64, and MCP configuration for Claude Desktop and Cursor, with install scripts for macOS and Linux. The release matters for developers building agent-driven workflows or smoke tests who want browser control through MCP or a lightweight native-webview stack instead of Playwright's Node.js dependency.

read2 min views3 publishedNov 5, 2026
Bruster – Rust browser automation tool and MCP
Image: Michielbdejong (auto-discovered)

Bruster is an open-source Rust browser automation tool and Model Context Protocol (MCP) server. Control native webviews from AI agents, Python scripts, or your own test runner through MCP or a JSON-lines API. No Node.js required.

Documentation · UI testing · MCP setup · Compare with Playwright · Benchmarks · Releases

Navigate pages, inspect the DOM, fill forms, take screenshots, and manage tabs and persistent sessions on macOS (WKWebView), Linux (WebKitGTK), and Windows (WebView2). Bruster fits native-webview scripts, focused smoke tests, and agent-driven workflows. Run .bru tests with the built-in runner or use your own.

For AI tools: documentation index · full CLI and API reference.

Scripted MCP session with real WebKitGTK captures. Try the demo.

On macOS and Linux:

curl -fsSL https://raw.githubusercontent.com/aliilyas/bruster/main/install.sh | sh
export PATH="$HOME/.local/bin:$PATH"

Linux also needs WebKitGTK 4.1. On Ubuntu or Debian:

sudo apt install libwebkit2gtk-4.1-0

Without a desktop display, also install xvfb and xauth. Other Linux distributions.

On Windows, download an archive from Releases and install the WebView2 runtime.

The Docker image includes the Linux browser runtime and virtual display for amd64 and arm64:

docker run --rm -i ilyastmn/bruster:latest

Starts an MCP server over stdio. Docker client setup.

Add this server to Claude Desktop's claude_desktop_config.json or Cursor's .cursor/mcp.json:

{
  "mcpServers": {
    "bruster": {
      "command": "bruster",
      "args": ["--mcp", "--quiet"]
    }
  }
}

Use the executable's absolute path if your client cannot find bruster. Add --visible to watch the browser or --profile ./profile to save cookies and storage.

Setup for other clients and troubleshooting.

Run bruster, then send requests on stdin, waiting for each response before the next request:

{"id":1,"method":"navigate","params":{"url":"https://example.com"}}
{"id":2,"method":"snapshot","params":{"format":"text"}}
{"id":3,"method":"screenshot","params":{"path":"example.png"}}
{"id":4,"method":"close"}

Responses carry the matching id; page events also arrive on stdout. Protocol and API reference.

Bruster includes a compact, line-oriented DSL for repeatable UI checks. It handles browser startup, waits, assertions, and failure evidence so you can focus on the flow being tested. Write a login.bru file:

base_url "http://localhost:3000"

test "opens the dashboard"
  navigate "/login"
  fill "#email" "tester@example.com"
  fill "#password" "test-password"
  click "button[type=submit]"
  expect url "/dashboard"
  expect text "h1" "Dashboard"
end

Run bruster test login.bru. Assertions retry until their deadline; each test gets a fresh browser and profile. Failures include source lines, screenshots, and page diagnostics. The runner writes a JSON report and returns a nonzero exit code on failure. No Node.js or Python is needed to run tests.

Use before_each for shared setup and --base-url to run the same tests against another environment. The time savings are in authoring and debugging tests.

The runner is available in source builds from main; older release binaries may not include bruster test yet.

Bruster uses WKWebView on macOS, WebKitGTK on Linux, and WebView2 on Windows. Input events are synthetic; cross-origin iframes and OS-level controls aren't supported. See the full limitations when choosing a browser backend.

Build with cargo build --release --locked. See Contributing for dependencies, tests, and documentation changes.

Dependency security checks: daily RustSec, cargo-deny, OSV-Scanner, and Trivy scans, plus Dependabot and Socket setup.

── more in #ai-agents 4 stories · sorted by recency
── more on @bruster 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/bruster-rust-browser…] indexed:0 read:2min 2026-11-05 · —