Open source · MIT

Let AI agents drive your browser

QwebBridge gives AI agents full control over your real Chrome browser — navigate, click, fill forms, screenshot, and extract data using your own login sessions.

Get started View on GitHub
16
Tools
4
Protocols
1
Command to install

How it works

A three-layer pipeline connects your AI agent to your real browser through Chrome DevTools Protocol.

🤖
AI Agent
Claude Code, Kimi Code, Cursor ...
🌉
QwebBridge Daemon
localhost:10086
🔌
Chrome Extension
CDP via chrome.debugger
🌐
Your Browser
Real tabs, real sessions

16 browser automation tools

Everything an AI agent needs to browse the web, interact with pages, and extract information.

🧭

navigate

Navigate to any URL. Opens new tabs with session-based grouping and auto-load waiting.

📋

snapshot

Get the full accessibility tree with @eN refs for reliable element targeting.

📸

screenshot

Capture screenshots in PNG, JPEG, or WebP. Supports full-page and element capture.

👆

click

Click elements by CSS selector or accessibility ref. Auto-scrolls into view.

✏️

fill

Fill forms, textareas, and rich editors (ProseMirror, Lexical, Slate, Quill).

evaluate

Run arbitrary JavaScript in the page. Supports async/await.

🖱️

mouse_click

Real mouse event dispatch at element coordinates.

⌨️

key_type

Type text character by character via CDP.

🔑

send_keys

Keyboard shortcuts with modifier keys — Control, Alt, Shift, Meta.

📎

upload

Upload files to inputs. Supports multiple files.

🌐

network

Monitor network requests — start, stop, list, inspect.

🔍

find_tab

Find an open tab by URL. Target active tab or first match.

📑

list_tabs

List all open tabs with URL, title, and session group.

close_tab

Close the current tab or a specific tab by ID.

🧹

close_session

Close all tabs in an AI session — one command cleanup.

📄

save_as_pdf

Render page to PDF with configurable format and scale.

What you can build

From automated testing to AI-powered research — if you can do it in a browser, your AI agent can too.

🔍

Web research at scale

Have your agent search, read, and compile information from hundreds of pages automatically.

📊

Data extraction

Pull structured data from SaaS dashboards, CRM systems, and internal tools — APIs not required.

🧪

Automated testing

Run end-to-end tests through real browser sessions with full network monitoring.

🔄

Workflow automation

Automate repetitive browser tasks: form filling, file uploads, multi-step approvals.

👀

Monitoring & alerts

Track prices, job listings, product changes, and competitor moves as they happen.

🎯

Form & CAPTCHA handling

Let your agent handle login forms, job applications, and vendor portals.

Works with any AI agent

Connect your preferred coding agent through the protocol that fits your workflow.

WebSocket

WebSocket API

Kimi WebBridge compatible protocol. Connect any agent that speaks WebSocket.

ws://localhost:10086/selector/command
MCP

Model Context Protocol

Standard MCP server for Claude Desktop, Cursor, Windsurf, and any MCP client.

qweb-bridge mcp
REST

HTTP API

Simple HTTP POST interface for custom scripts and integrations.

POST /api/tool/<name>
CLI

Command Line

Direct terminal access for quick browser automation from your shell.

qweb-bridge <command>

Get started in 1 minute

One-curl install or build from source — pick your path. Prerequisites: Chrome browser and Node.js ≥ 18.

# One-command install (macOS / Linux)
curl -fsSL https://github.com/hu-qi/QwebBridge/raw/main/install.sh | bash
# Not yet published to npm — use curl or manual build
# Stay tuned: npm package coming soon
# Install dependencies
pnpm install

# Build all packages
pnpm build
$ git clone https://github.com/hu-qi/QwebBridge.git
$ cd QwebBridge
$ pnpm install
$ pnpm build
$ node packages/daemon/dist/cli.js run

Setup steps

  1. 1
    Start the daemon

    Run qweb-bridge start or node packages/daemon/dist/cli.js run. The daemon listens on localhost:10086.

  2. 2
    Install the Chrome extension

    Open chrome://extensions, enable Developer mode, click "Load unpacked", and select packages/extension/dist.

  3. 3
    Connect your AI agent

    Point your agent to ws://localhost:10086/selector/command (WebSocket) or run qweb-bridge mcp (MCP).

  4. 4
    Verify the connection

    Run qweb-bridge status — you should see extensions_connected: true. Your agent is ready to browse.

Chrome browser Node.js ≥ 18 pnpm

Frequently asked questions

How does QwebBridge work?
QwebBridge pairs a local daemon with a Chrome extension. The AI agent sends commands via WebSocket, MCP, or HTTP to the daemon on localhost:10086, which forwards them to the Chrome extension. The extension uses Chrome DevTools Protocol (CDP) to control the browser — navigating, clicking, screenshotting, and reading pages. Everything runs locally on your machine.
What's the difference from Kimi WebBridge?
QwebBridge is an open-source, self-hosted reimplementation that is protocol-compatible with Kimi WebBridge. Any agent that works with Kimi WebBridge can use QwebBridge seamlessly. QwebBridge additionally supports MCP (Model Context Protocol), HTTP REST API, and a full CLI, giving you more integration options.
Which AI agents are supported?
QwebBridge works with any agent that can connect via WebSocket or MCP. This includes Claude Code, Kimi Code, Cursor, GitHub Copilot (Codex), Hermes, OpenClaw, and custom-built agents. The project ships with a reusable SKILL.md that AI agents can auto-discover.
Is my data safe?
Yes. The daemon and extension communicate over localhost only. No browser data, login sessions, cookies, or page content ever leaves your machine. The daemon is not accessible from external networks. QwebBridge is fully self-hosted and open source — you control everything.
How do I build from source?
Clone the repo, run pnpm install && pnpm build, then start with node packages/daemon/dist/cli.js run. Load the extension from packages/extension/dist in Chrome via chrome://extensions with Developer mode enabled. See the install section above for step-by-step instructions.
What permissions does the extension need?
The extension requires tabs, debugger, storage, alarms, tabGroups, windows, and host permissions for <all_urls>. These are necessary for CDP-based browser control and tab management. All data stays local.