Skip to main content

Open Source

Browsr is fair-code distributed under the Sustainable Use License. The source code is always visible, self-hostable, and extensible.

Architecture

The open-source project is a Rust workspace with four crates:

CrateDescription
browsr-coreBrowser automation engine — chromium control, session management, HTML processing
browsr-cliCommand-line interface with local and remote execution modes
browsr-clientRust HTTP client for the Browsr API
browsr-typesShared types — commands, responses, configuration

CLI

Install

cargo install browsr-cli

Commands

# Scrape a URL (outputs markdown by default)
browsr scrape https://example.com

# Navigate to a URL and observe the page
browsr navigate https://example.com

# Execute raw browser commands (JSON)
browsr exec '[{"command":"navigate_to","data":{"url":"https://example.com"}},{"command":"get_content","data":{"kind":"markdown"}}]'

# Run an AI agent task (requires Distri)
browsr run "find the pricing page and extract all plan details"

CLI flags

FlagDescription
--headless-browserRun Chrome without UI
--no-headless-browserShow the browser window
--localUse local browsr-core instead of cloud API
--verboseEnable debug logging

Local API

When running locally, Browsr exposes the same REST endpoints on http://localhost:8082:

MethodEndpointDescription
GET/sessionsList active sessions
POST/sessionsCreate a new session
DELETE/sessions/{id}Delete a session
POST/commandsExecute browser commands
POST/browser_stepExecute commands with observation capture
POST/observeGet current page state (screenshot + DOM)
POST/v1/scrapeScrape a URL
POST/v1/crawlCrawl a website

These endpoints accept the same request/response format as the cloud API. See the API Reference for payload details.

Configuration

browsr.toml

name = "browsr"

[model_settings]
model = "gpt-4.1-mini"
temperature = 0.5
max_tokens = 2000

[model_settings.provider]
name = "vllora"
base_url = "http://localhost:1237/v1"

[analysis_model_settings]
model = "gpt-4.1-mini"
temperature = 0.3
max_tokens = 800

Environment variables

BROWSR_API_KEY=bak_...                   # API key (for cloud)
BROWSR_DB_PATH=.browsr/browsr.db # SQLite path for sequences

Agent customization

Customize agent behavior by editing agents/browsr.md. See the agents folder for templates.

Local debugging

Use vLLora to debug and fine-tune the system prompt, iterate locally, and test selectors while designing sequences.

License

Browsr is distributed under the Sustainable Use License. Free for personal and internal use. See the project repository for full license terms.