BiDiWave Cross-Browser
Cross-browser testing with bidiwave using the W3C WebDriver BiDi protocol.
Skill by MathiasPaulenko
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.
About
Use cases: testing
Reviews
Write a reviewNo 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
- 0.581score
Skill Name
MathiasPaulenko
What this skill does and when to use it
SkillAFreshness: A★ 2Claude Code +9 - 0.559score
google-crawling-indexing
MathiasPaulenko
Practical guide to Google crawling and indexing: sitemaps, robots.txt, meta tags, canonical URLs, redirects, JavaScript, removals, and crawler management.
SkillBFreshness: B★ 2Claude Code +9 - 0.550score
google-seo-monitoring
MathiasPaulenko
Practical guide to Google SEO monitoring and debugging: Search Console, Google Analytics, Google Trends, search operators, traffic drops, security, spam, and…
SkillBFreshness: B★ 2Claude Code +9 - 0.550score
google-seo-fundamentals
MathiasPaulenko
Practical guide to Google Search SEO fundamentals: Search Essentials, technical requirements, spam policies, helpful content, generative AI guidelines, and…
SkillBFreshness: B★ 2Claude Code +9 - 0.550score
google-ranking-appearance
MathiasPaulenko
Practical guide to Google search ranking and appearance: title links, snippets, structured data, rich results, images, videos, Discover, and local features.
SkillBFreshness: B★ 2Claude Code +9 - 0.542score
CDPWave Debugging
MathiasPaulenko
Advanced debugging with cdpwave.
SkillBFreshness: B★ 2Claude Code +9 - 0.542score
CDPWave Testing
MathiasPaulenko
Write browser automation tests with cdpwave at the CDP level.
SkillBFreshness: B★ 2Claude Code +9 - 0.542score
BiDiWave Network Interception
MathiasPaulenko
Network interception with bidiwave.
SkillBFreshness: B★ 2Claude Code +9 - 0.504score
ebook-writer
MathiasPaulenko
Comprehensive ebook creation skill covering outlining, chapter writing, editing, formatting, and marketing.
SkillCFreshness: C★ 2Claude Code +9 - 0.504score
jmeter-load-testing
MathiasPaulenko
Load and performance testing with Apache JMeter.
SkillCFreshness: C★ 2Claude Code +9 - 0.504score
appian-lowcode
MathiasPaulenko
Appian low-code platform development guide.
SkillCFreshness: C★ 2Claude Code +9 - 0.504score
appium-mobile
MathiasPaulenko
Mobile automation with Appium: iOS and Android, gestures, device farms (BrowserStack, Sauce Labs), parallel execution, and CI/CD.
SkillCFreshness: C★ 2Claude Code +9
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
- Repository
- github.com/MathiasPaulenko/ai-toolkit
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from MathiasPaulenko
- 0.629score
WaveXisMCP
MathiasPaulenko
220 browser automation tools for Chrome, Edge, and Firefox via CDP + BiDi.
ConnectorAFreshness: ALocal★ 3↓ 92/wkClaude Code +5 - 0.581score
Skill Name
MathiasPaulenko
What this skill does and when to use it
SkillAFreshness: A★ 2Claude Code +9 - 0.559score
google-crawling-indexing
MathiasPaulenko
Practical guide to Google crawling and indexing: sitemaps, robots.txt, meta tags, canonical URLs, redirects, JavaScript, removals, and crawler management.
SkillBFreshness: B★ 2Claude Code +9 - 0.550score
google-ranking-appearance
MathiasPaulenko
Practical guide to Google search ranking and appearance: title links, snippets, structured data, rich results, images, videos, Discover, and local features.
SkillBFreshness: B★ 2Claude Code +9 - 0.550score
google-seo-fundamentals
MathiasPaulenko
Practical guide to Google Search SEO fundamentals: Search Essentials, technical requirements, spam policies, helpful content, generative AI guidelines, and…
SkillBFreshness: B★ 2Claude Code +9 - 0.550score
google-seo-monitoring
MathiasPaulenko
Practical guide to Google SEO monitoring and debugging: Search Console, Google Analytics, Google Trends, search operators, traffic drops, security, spam, and…
SkillBFreshness: B★ 2Claude Code +9
Cite this page
BiDiWave Cross-Browser skill. Agent Mart. https://agentmart.dev/skills/mathiaspaulenko-bidiwave-cross-browser (last updated 2026-10-24)