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.