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
Metadata
Release files for browsy-ai 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| browsy_ai-0.1.1-cp39-abi3-win_amd64.whl | CPython 3.9 | abi3 | Windows x86-64 | Details |
Release files / browsy_ai-0.1.1-cp39-abi3-win_amd64.whl
| Download URL | browsy_ai-0.1.1-cp39-abi3-win_amd64.whl |
|---|---|
| Size | 1.8 MB |
| Tags | CPython 3.9 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
70424493b6a0f15a2815bd48b804e6042d7808f7d82cb06bad50e2c636f05707
|
|
BLAKE2b-256 checksum How to use checksums |
5e2cd98f48b333e87cbccbae57476a09fd155099aca6ad433c7fdff9a894ddf0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.2
|