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:
| Crate | Description |
|---|---|
| browsr-core | Browser automation engine — chromium control, session management, HTML processing |
| browsr-cli | Command-line interface with local and remote execution modes |
| browsr-client | Rust HTTP client for the Browsr API |
| browsr-types | Shared 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
| Flag | Description |
|---|---|
--headless-browser | Run Chrome without UI |
--no-headless-browser | Show the browser window |
--local | Use local browsr-core instead of cloud API |
--verbose | Enable debug logging |
Local API
When running locally, Browsr exposes the same REST endpoints on http://localhost:8082:
| Method | Endpoint | Description |
|---|---|---|
GET | /sessions | List active sessions |
POST | /sessions | Create a new session |
DELETE | /sessions/{id} | Delete a session |
POST | /commands | Execute browser commands |
POST | /browser_step | Execute commands with observation capture |
POST | /observe | Get current page state (screenshot + DOM) |
POST | /v1/scrape | Scrape a URL |
POST | /v1/crawl | Crawl 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.