Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

browsy_ai-0.1.1-cp39-abi3-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.9+Windows x86-64

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

Hashes for browsy_ai-0.1.1-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 70424493b6a0f15a2815bd48b804e6042d7808f7d82cb06bad50e2c636f05707
MD5 f5abc5ebd233be6e68f3788e316e1a54
BLAKE2b-256 5e2cd98f48b333e87cbccbae57476a09fd155099aca6ad433c7fdff9a894ddf0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page