Skip to content
Agentmart
Submit a tool

BiDiWave Cross-Browser

Cross-browser testing with bidiwave using the W3C WebDriver BiDi protocol.

Skill by MathiasPaulenko

IndexedMIT★ 2
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/mathiaspaulenko-bidiwave-cross-browser

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Cross-browser testing with bidiwave using the W3C WebDriver BiDi protocol. Works with Chrome, Firefox, and Edge. RemoteValue pattern matching, preload scripts, web extensions, CDP bridge.

Use cases: testing

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found
Runs as
Python package

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/bidiwave-cross-browser

What's inside

Skill name
BiDiWave Cross-Browser
Description
Cross-browser testing with bidiwave using the W3C WebDriver BiDi protocol. Works with Chrome, Firefox, and Edge. RemoteValue pattern matching, preload scripts, web extensions, CDP bridge.
License
MIT
Instructions
737 lines in SKILL.md · view on GitHub

Before installing

  • Ships executable scripts

Agent Skills spec issues

  • name: only lowercase letters, digits and single hyphens allowed
  • name: "BiDiWave Cross-Browser" does not match folder "bidiwave-cross-browser"
  • body: 737 lines (spec recommends under 500)

Files (9)

  • SKILL.md
  • conftest.py · assets/templates/
  • test_cross_browser.py · assets/templates/
  • test_emulation.py · assets/templates/
  • test_network_intercept.py · assets/templates/
  • bidi-modules.md · references/
  • browser-setup.md · references/
  • protocol-reference.md · references/
  • remote-value-patterns.md · references/

SKILL.md (first lines)

# BiDiWave Cross-Browser

## Description

bidiwave is a low-level WebDriver BiDi client for Python. It speaks the W3C WebDriver BiDi protocol directly — no Selenium, no Playwright, no Node.js. Unlike CDP (which is Chromium-specific), BiDi is a W3C standard that works across Chrome, Firefox, and Edge. It is the BiDi backend that powers wavexis and wavexis-mcp.

This skill covers cross-browser testing with bidiwave, including browsing contexts, script evaluation with RemoteValue pattern matching, input simulation, network interception, storage, emulation, permissions, preload scripts, web extensions, CDP bridge, event streaming, and reconnection.

## When to Invoke

- Writing cross-browser tests that must work on Chrome, Firefox, and Edge
- Needing W3C WebDriver BiDi protocol access in Python
- Using RemoteValue `match` pattern narrowing for typed JS results
- Setting up preload scripts that run before page load
- Installing web extensions during tests
- Using CDP bridge for Chrome-specific features within BiDi workflows
- Migrating from Selenium/Playwright to a standard protocol
- Needing network interception, emulation, or permissions in cross-browser tests

## Prerequisites

- Python 3.11+
- A BiDi-capable browser endpoint:
  - Chrome/Edge: ChromeDriver or EdgeDriver running with BiDi support
  - Firefox: Firefox with `--remote-debugging-port` (BiDi is native, no driver needed)
- `pip install bidiwave`
- `pip install pytest pytest-asyncio` (for testing)

## BiDiClient Setup

### Connect to a BiDi endpoint

```python
import asyncio
from bidiwave import BiDiClient, StringValue

async def main():
    async with await BiDiClient.connect("ws://localhost:9515/session") as client:
        async with await client.browsing.open("https://example.com") as page:
            result = await page.evaluate("document.title")
            match result:
                case StringValue(value=title):
                    print(f"Title: {title}")
```

### Connect to Chrome/Edge via ChromeDriver

```bash
# Start ChromeDriver
chromedriver --port=9515
```

```python
async with await BiDiClient.connect("ws://localhost:9515/session") as client:
    # ...
```

### Connect to Firefox (native BiDi)

```bash
# Start Firefox with remote debugging
firefox --headless --remote-debugging-port=9223 --no-remote
```

```python
async with await BiDiClient.connect("ws://localhost:9223/session") as client:
    # ...
```

### Connect to Edge via EdgeDriver

```bash
# Start EdgeDriver
msedgedriver --port=9516
```

```python
async with await BiDiClient.connect("ws://localhost:9516/session") as client:
    # ...
```

### Connection options

```python
client = await BiDiClient.connect(
    "ws://localhost:9515/session",
    reconnect=True,
    max_retries=5,
    backoff_base=0.5,
)
```

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `url` | `str` | Required | WebSocket URL of BiDi endpoint |
| `reconnect` | `bool` | `True` | Auto-reconnect on disconnect |
| `max_retries` | `int` | `5` | Max reconnection attempts |
| `backoff_base` | `float` | `0.5` | Base delay for exponential backoff |

## Browsing Contexts

### Open and close contexts

```python
async with await client.browsing.open("https://example.com") as page:
    result = await page.evaluate("document.title")
    # Page auto-closes on context exit
```

### Navigation

```python
async with await client.browsing.open("https://example.com") as page:
    # Navigate
    await page.navigate("https://example.org")

    # Reload
    await page.reload()

From MathiasPaulenko/ai-toolkit, MIT.

More from MathiasPaulenko/ai-toolkit

Signals

Stars
2
Forks
0
Open issues
0
Last commit (this folder)
Oct 1, 2026 (27 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from MathiasPaulenko

Cite this page

BiDiWave Cross-Browser skill. Agent Mart. https://agentmart.dev/skills/mathiaspaulenko-bidiwave-cross-browser (last updated 2026-10-24)