Skip to main content

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)

Table of built distributions (wheels) for browsy-ai 0.1.1
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.1.1 This release

1 release file

0.1.0

4 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page