OpenBrowser is a framework for intelligent browser automation. It combines direct CDP communication with a CodeAgent architecture, where the LLM writes Python code executed in a persistent namespace, to navigate, interact with, and extract information from web pages autonomously.
> /plugin marketplace add billy-enrizky/openbrowser-ai> /plugin install openbrowser@openbrowser-ai
Repo: billy-enrizky/openbrowser-ai
What's inside
Cloud dashboard for saved cookies and scheduled tasks is available in the hosted version. Join the waitlist for early access: https://openbrowser.me :
https://github.com/user-attachments/assets/b17f97f3-f9f8-4707-8e39-abbbbe1a693b
Automating Walmart Product Scraping:
https://github.com/user-attachments/assets/c517c739-9199-47b0-bac7-c2c642a21094
OpenBrowserAI Automatic Flight Booking:
https://github.com/user-attachments/assets/632128f6-3d09-497f-9e7d-e29b9cb65e0f
OpenBrowserAI Automatic Form Filling:
https://github.com/user-attachments/assets/16f7ef1a-beb1-45e2-a733-9592536e0ef7
AI-powered browser automation using CodeAgent and CDP (Chrome DevTools Protocol)
OpenBrowser is a framework for intelligent browser automation. It combines direct CDP communication with a CodeAgent architecture, where the LLM writes Python code executed in a persistent namespace, to navigate, interact with, and extract information from web pages autonomously.
Full documentation: https://docs.openbrowser.me
-c flag for direct code execution from Bash, saved login state, and 10-minute auto-shutdowncurl -fsSL https://raw.githubusercontent.com/billy-enrizky/openbrowser-ai/main/install.sh | sh
irm https://raw.githubusercontent.com/billy-enrizky/openbrowser-ai/main/install.ps1 | iex
Detects uv, pipx, or pip and installs OpenBrowser automatically.
Install to ~/.local/bin without sudo:
curl -fsSL https://raw.githubusercontent.com/billy-enrizky/openbrowser-ai/main/install.sh | sh -s -- --local
brew tap billy-enrizky/openbrowser
brew install openbrowser-ai
pip install openbrowser-ai
uv pip install openbrowser-ai
Run directly without installing -- uvx downloads and caches the package automatically:
# MCP server mode
uvx openbrowser-ai --mcp
# CLI daemon mode
uvx openbrowser-ai -c "await navigate('https://example.com')"
pipx install openbrowser-ai
git clone https://github.com/billy-enrizky/openbrowser-ai.git
cd openbrowser-ai
uv pip install -e ".[agent]"
pip install openbrowser-ai[agent] # LLM agent support (langgraph, langchain, litellm)
pip install openbrowser-ai[all] # All LLM providers
pip install openbrowser-ai[anthropic] # Anthropic Claude
pip install openbrowser-ai[groq] # Groq
pip install openbrowser-ai[ollama] # Ollama (local models)
pip install openbrowser-ai[aws] # AWS Bedrock
pip install openbrowser-ai[azure] # Azure OpenAI
pip install openbrowser-ai[video] # Video recording support
No separate browser install needed. OpenBrowser auto-detects any installed Chromium-based browser (Chrome, Edge, Brave, Chromium) and uses it directly. If none is found and
uvxis available, Chromium is installed automatically on first run. To pre-install manually (requiresuvx):openbrowser-ai install
import asyncio
from openbrowser import CodeAgent, ChatGoogle
async def main():
agent = CodeAgent(
task="Go to google.com and search for 'Python tutorials'",
llm=ChatGoogle(model="gemini-3-flash"),
)
result = await agent.run()
print(f"Result: {result}")
asyncio.run(main())
from openbrowser import CodeAgent, ChatOpenAI, ChatAnthropic, ChatGoogle
# OpenAI
agent = CodeAgent(task="...", llm=ChatOpenAI(model="gpt-5.2"))
# Anthropic
agent = CodeAgent(task="...", llm=ChatAnthropic(model="claude-sonnet-4-6"))
# Google Gemini
agent = CodeAgent(task="...", llm=ChatGoogle(model="gemini-3-flash"))
import asyncio
from openbrowser import BrowserSession, BrowserProfile
async def main():
profile = BrowserProfile(
headless=True,
viewport_width=1920,
viewport_height=1080,
)
session = BrowserSession(browser_profile=profile)
await session.start()
await session.navigate_to("https://example.com")
screenshot = await session.screenshot()
await session.stop()
asyncio.run(main())
# Google (recommended)
export GOOGLE_API_KEY="..."
# OpenAI
export OPENAI_API_KEY="sk-..."
# Anthropic
export ANTHROPIC_API_KEY="sk-ant-..."
# Groq
export GROQ_API_KEY="gsk_..."
# AWS Bedrock
export AWS_ACCESS_KEY_ID="..."
export AWS_SECRET_ACCESS_KEY="..."
export AWS_DEFAULT_REGION="us-west-2"
# Azure OpenAI
export AZURE_OPENAI_API_KEY="..."
export AZURE_OPENAI_ENDPOINT="https://your-resource.openai.azure.com/"
from openbrowser import BrowserProfile
profile = BrowserProfile(
headless=True,
viewport_width=1280,
viewport_height=720,
disable_security=False,
extra_chromium_args=["--disable-gpu"],
record_video_dir="./recordings",
proxy={
"server": "http://proxy.example.com:8080",
"username": "user",
"password": "pass",
},
)
| Provider | Class | Models |
|---|---|---|
ChatGoogle | gemini-3-flash, gemini-3-pro | |
| OpenAI | ChatOpenAI | gpt-5.2, o4-mini, o3 |
| Anthropic | ChatAnthropic | claude-sonnet-4-6, claude-opus-4-6 |
| Groq | ChatGroq | llama-4-scout, qwen3-32b |
| AWS Bedrock | ChatAWSBedrock | anthropic.claude-sonnet-4-6, amazon.nova-pro |
| AWS Bedrock (Anthropic) | ChatAnthropicBedrock | Claude models via Anthropic Bedrock SDK |
| Azure OpenAI | ChatAzureOpenAI | Any Azure-deployed model |
| OpenRouter | ChatOpenRouter | Any model on openrouter.ai |
| DeepSeek | ChatDeepSeek | deepseek-chat, deepseek-r1 |
| Cerebras | ChatCerebras | llama-4-scout, qwen-3-235b |
| Ollama | ChatOllama | llama-4-scout, deepseek-r1 (local) |
| OCI | ChatOCIRaw | Oracle Cloud GenAI models |
| Browser-Use | ChatBrowserUse | External LLM service |
Install OpenBrowser as a Claude Code plugin:
# Add the marketplace (one-time)
claude plugin marketplace add billy-enrizky/openbrowser-ai
# Install the plugin
claude plugin install openbrowser@openbrowser-ai
This installs the MCP server and 6 built-in skills:
| Skill | Description |
|---|---|
web-scraping | Extract structured data, handle pagination |
form-filling | Fill forms, login flows, multi-step wizards |
e2e-testing | Test web apps by simulating user interactions |
page-analysis | Analyze page content, structure, metadata |
accessibility-audit | Audit pages for WCAG compliance |
file-download | Download files (PDFs, CSVs) using browser session |
See plugin/README.md for detailed tool parameter documentation.
OpenBrowser works with OpenAI Codex via native skill discovery.
Tell Codex:
Fetch and follow instructions from https://raw.githubusercontent.com/billy-enrizky/openbrowser-ai/refs/heads/main/.codex/INSTALL.md
# Clone the repository
git clone https://github.com/billy-enrizky/openbrowser-ai.git ~/.codex/openbrowser
# Symlink skills for native discovery
mkdir -p ~/.agents/skills
ln -s ~/.codex/openbrowser/plugin/skills ~/.agents/skills/openbrowser
# Restart Codex
Then configure the MCP server in your project (see MCP Server below).
Detailed docs: .codex/INSTALL.md
OpenBrowser works with OpenCode.ai via plugin and skill symlinks.
Tell OpenCode:
Fetch and follow instructions from https://raw.githubusercontent.com/billy-enrizky/openbrowser-ai/refs/heads/main/.opencode/INSTALL.md
# Clone the repository
git clone https://github.com/billy-enrizky/openbrowser-ai.git ~/.config/opencode/openbrowser
# Create directories
mkdir -p ~/.config/opencode/plugins ~/.config/opencode/skills
# Symlink plugin and skills
ln -s ~/.config/opencode/openbrowser/.opencode/plugins/openbrowser.js ~/.config/opencode/plugins/openbrowser.js
ln -s ~/.config/opencode/openbrowser/plugin/skills ~/.config/opencode/skills/openbrowser
# Restart OpenCode
Then configure the MCP server in your project (see MCP Server below).
Detailed docs: .opencode/INSTALL.md
OpenClaw supports OpenBrowser via the CLI daemon. Install OpenBrowser,
then use openbrowser-ai -c from the Bash tool:
openbrowser-ai -c "await navigate('https://example.com')"
openbrowser-ai -c "print(await evaluate('document.title'))"
FAQ
openbrowser-ai is a Claude Code plugin with 7 hand-picked skills for automation work, indexed on Flowy. Install it with the command on its page. It includes accessibility-audit, deep-research, e2e-testing. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.
Is this plugin yours?
Claim it with GitHubSubmit a pluginPromote it