Zero-render browser engine for AI agents
Project description
browsy-ai
Zero-render browser SDK for AI agents. Browse, interact with, and extract data from web pages without launching a browser.
browsy converts HTML into a Spatial DOM — a flat list of interactive elements with bounding boxes, roles, and states — at a fraction of the cost and latency of screenshot-based automation.
| Screenshot-based | browsy | |
|---|---|---|
| Runtime | Chromium process | None (Rust library) |
| Memory | ~300MB/page | ~5MB/page |
| Latency | 2-5s | <100ms |
| Token cost | ~10k+ | ~200-800 |
Install
pip install browsy-ai
With framework integrations:
pip install browsy-ai[langchain] # LangChain tools
pip install browsy-ai[crewai] # CrewAI tool
pip install browsy-ai[openai] # OpenAI function calling
pip install browsy-ai[autogen] # AutoGen integration
pip install browsy-ai[smolagents] # HuggingFace smolagents
pip install browsy-ai[all] # All integrations
Quick Start
import browsy
# Parse HTML directly
dom = browsy.parse(html, 1920.0, 1080.0)
print(dom.page_type)
print(dom.suggested_actions)
# Session-based browsing
session = browsy.Session()
dom = session.goto("https://example.com")
session.type_text(19, "hello")
session.click(34)
LangChain
from browsy.langchain import get_tools
from langchain_openai import ChatOpenAI
from langgraph.prebuilt import create_react_agent
llm = ChatOpenAI(model="gpt-4o")
tools = get_tools()
agent = create_react_agent(llm, tools)
result = agent.invoke({
"messages": [{"role": "user", "content": "Go to news.ycombinator.com and list the top 5 stories"}]
})
CrewAI
from browsy.crewai import BrowsyTool
from crewai import Agent, Task, Crew
browsy_tool = BrowsyTool()
researcher = Agent(
role="Web Researcher",
goal="Find and summarize information from web pages",
tools=[browsy_tool],
)
OpenAI Function Calling
from browsy.openai import get_tool_definitions, handle_tool_call
tools = get_tool_definitions()
result = handle_tool_call("browsy_browse", {"url": "https://example.com"})
AutoGen
from browsy.autogen import BrowsyBrowser
from autogen import ConversableAgent
browser = BrowsyBrowser()
assistant = ConversableAgent(name="web_assistant", llm_config={...})
browser.register(assistant)
Smolagents
from browsy.smolagents import BrowsyTool
from smolagents import CodeAgent, HfApiModel
tool = BrowsyTool()
agent = CodeAgent(tools=[tool], model=HfApiModel("Qwen/Qwen2.5-Coder-32B-Instruct"))
result = agent.run("Go to example.com and extract the heading.")
Documentation
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file browsy_ai-0.1.1-cp39-abi3-win_amd64.whl.
File metadata
- Download URL: browsy_ai-0.1.1-cp39-abi3-win_amd64.whl
- Upload date:
- Size: 1.8 MB
- Tags: CPython 3.9+, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
70424493b6a0f15a2815bd48b804e6042d7808f7d82cb06bad50e2c636f05707
|
|
| MD5 |
f5abc5ebd233be6e68f3788e316e1a54
|
|
| BLAKE2b-256 |
5e2cd98f48b333e87cbccbae57476a09fd155099aca6ad433c7fdff9a894ddf0
|