webrtc-timing-test

Measure WebRTC connection timing on Daily rooms. Use when testing Daily video call connection performance, measuring ICE negotiation time, benchmarking WebRTC setup latency, or when asked to test how long a Daily room takes to connect.

16 stars

Best use case

webrtc-timing-test is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Measure WebRTC connection timing on Daily rooms. Use when testing Daily video call connection performance, measuring ICE negotiation time, benchmarking WebRTC setup latency, or when asked to test how long a Daily room takes to connect.

Teams using webrtc-timing-test should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/webrtc-timing-test/SKILL.md --create-dirs "https://raw.githubusercontent.com/diegosouzapw/awesome-omni-skill/main/skills/fullstack-web/webrtc-timing-test/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/webrtc-timing-test/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How webrtc-timing-test Compares

Feature / Agentwebrtc-timing-testStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Measure WebRTC connection timing on Daily rooms. Use when testing Daily video call connection performance, measuring ICE negotiation time, benchmarking WebRTC setup latency, or when asked to test how long a Daily room takes to connect.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# WebRTC Connection Timing Test

Measure how long WebRTC connections take to establish on Daily video rooms.

## Prerequisites

- Chrome browser with Claude in Chrome extension
- Chrome window size: **705 x 942** pixels

## Procedure

### Step 1: Set up browser window

Resize Chrome window to 705 x 942 pixels using `mcp__claude-in-chrome__resize_window`.

### Step 2: Navigate to Daily room

Navigate to the Daily room URL (e.g., `kwindla.daily.co/gradient-ascent`). Wait for pre-join screen ("Get ready for your call") to load.

### Step 3: Inject interceptor

Execute `scripts/inject-interceptor.js` using `mcp__claude-in-chrome__javascript_tool`. This must be done BEFORE clicking Join.

### Step 4: Click Join

Execute `scripts/click-join.js` to click the Join button and record the exact time.

### Step 5: Retrieve results

Wait ~5 seconds for connection, then execute `scripts/retrieve-results.js` to get timing data.

## Key Metrics

| Metric | Description |
|--------|-------------|
| **totalConnectionTime** | Join click to `connectionState: connected` (user-perceived latency) |
| **callSetupTime** | Join click to RTCPeerConnection creation (Daily initialization) |
| **pureWebRTCTime** | RTCPeerConnection creation to connected (actual WebRTC negotiation) |
| **iceConnectionTime** | Join click to `iceConnectionState: connected` |

## Expected Results

| Metric | Typical Time |
|--------|--------------|
| callSetupTime | ~350-500ms |
| pureWebRTCTime | ~150-360ms |
| totalConnectionTime | ~500-900ms |

## Notes

- Daily creates 3 RTCPeerConnections (audio, video, data)
- The interceptor must be installed BEFORE clicking Join
- Network conditions affect ICE negotiation time
- Daily's iframe may cause timing variability between runs

Related Skills

a-b-testing

16
from diegosouzapw/awesome-omni-skill

The science of learning through controlled experimentation. A/B testing isn't about picking winners—it's about building a culture of validated learning and reducing the cost of being wrong. This skill covers experiment design, statistical rigor, feature flagging, analysis, and building experimentation into product development. The best experimenters know that every test, positive or negative, teaches something valuable. Use when "a/b test, experiment, hypothesis, statistical significance, sample size, feature flag, variant, control, treatment, p-value, conversion rate, test winner, split test, experimentation, testing, statistics, feature-flags, hypothesis, growth, optimization, learning, validation" mentioned.

web-testing

16
from diegosouzapw/awesome-omni-skill

Playwright automation, Chrome DevTools debugging, and browser interaction testing. Use for E2E/unit tests, capturing screenshots, inspecting network/console logs, or validating user flows in web applications.

qa-testing-mobile

16
from diegosouzapw/awesome-omni-skill

Mobile app testing strategy and execution for iOS and Android (native + cross-platform): choose automation frameworks, define device matrix, control flakes, validate performance/reliability/accessibility, and set CI + release gates. Use when you need a mobile QA plan, device lab/CI setup, or guidance on XCUITest/Espresso/Appium/Detox/Maestro/Flutter testing.

app-test-workflow

16
from diegosouzapw/awesome-omni-skill

Flutter 앱 테스트 워크플로우를 시작합니다. 테스트 계획 수립 -> 에뮬레이터 테스트 -> 실패 시 디버그 수정 -> 재테스트 순서로 진행합니다. "앱 테스트 워크플로우", "/app-test-workflow", "앱 테스트" 등의 명령으로 활성화됩니다.

anthropic-webapp-testing

16
from diegosouzapw/awesome-omni-skill

Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.

anthropic-web-testing

16
from diegosouzapw/awesome-omni-skill

Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.

test-cotton-components

16
from diegosouzapw/awesome-omni-skill

Guide AI agents on testing Django Cotton components using django-cotton-bs5 pytest fixtures. Covers when to use cotton_render vs cotton_render_soup vs cotton_render_string vs cotton_render_string_soup, best practices for component testing, DOM assertions, context handling, and multi-component testing patterns. Use when writing or reviewing Cotton component tests.

Frontend Verification & Testing

16
from diegosouzapw/awesome-omni-skill

Verify and test Angular 18 frontend changes using Chrome DevTools MCP. Automatically check console errors, network requests, and visual rendering after implementing tasks or when fixing UI bugs. Use when creating components, debugging visual issues, validating API integration, or ensuring UI requirements are met. File types: .ts, .html, .css, .scss

frontend-react-testing-strategy

16
from diegosouzapw/awesome-omni-skill

Standardized guidelines and patterns for Frontend React Testing Strategy.

browser-test

16
from diegosouzapw/awesome-omni-skill

Execute browser-based UI testing using Chrome MCP tools. Tests user interactions, visual outcomes, captures evidence. Use for UI features after implementation and security review.

angular-testing

16
from diegosouzapw/awesome-omni-skill

Write unit and integration tests for Angular v21+ applications using Vitest or Jasmine with TestBed, component harnesses, and modern testing patterns. Use for testing components with signals, OnPush change detection, services with inject(), and HTTP interactions. Triggers on test creation, testing signal-based components, mocking dependencies, or setting up test infrastructure.

testing-automation

16
from diegosouzapw/awesome-omni-skill

Automated testing workflow that orchestrates unit, integration, and E2E tests with CI/CD integration