Seeing exactly what the browser is doing while a test runs is invaluable for debugging failures and building confidence in your suite. QA Flow offers two distinct approaches: a zero-configuration integrated screencast that works in every deployment, and an advanced remote CDP mode that streams execution into your own local Chrome instance for direct interaction.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/davidG97/qa-flow/llms.txt
Use this file to discover all available pages before exploring further.
Option 1: Integrated Screencast (Recommended)
The easiest way to watch your tests run is to simply click ▶ Execute — no extra setup required. As soon as execution starts, QA Flow automatically opens the execution panel on the right side of the editor and begins rendering a live frame-by-frame view of the headless Chromium browser.Click ▶ Execute in the toolbar
The execution panel slides open immediately. Node status indicators on the canvas begin updating in real time.
Watch the screencast panel
The lower portion of the execution panel shows a live stream of the browser viewport. You can see navigation, form fills, clicks, and assertions happening as each node runs.
The screencast uses Chrome DevTools Protocol (CDP) internally. QA Flow connects to the headless Chromium process over CDP and pushes individual frames to the frontend via WebSocket. This works identically in both local
npx installations and Docker container deployments — no port mapping or extra configuration is needed.Option 2: Remote CDP (Advanced)
Remote CDP mode lets you route test execution through a Chrome browser running on your own machine. This is useful when you want to:- See the test in a full, non-headless browser window you can interact with
- Use QA Flow’s Visual Picker (🎯) to select page elements using your local Chrome’s native inspector
- Debug tests where the headless environment behaves differently from your regular browser
Setup Steps
Launch Chrome with remote debugging enabled
Open a terminal and start Chrome with the Chrome will open a new window. Leave it open — QA Flow will attach to it automatically when you run a test.
--remote-debugging-port=9222 flag. Use the command for your operating system:- Windows
- macOS
- Linux
Configure the CDP URL in QA Flow
There are two ways to point QA Flow at your remote Chrome instance:Via the Start node (per-project): Open the Start node in the canvas, scroll to the Advanced section, and enter
http://localhost:9222 in the CDP URL field. This setting is saved with the project.Via environment variable (global): Set CDP_URL=http://localhost:9222 before starting the server. This applies to all projects that don’t have a node-level CDP URL set.Docker + Remote CDP
When running QA Flow inside Docker,localhost inside the container refers to the container itself, not your host machine. Use the appropriate hostname to reach your host’s Chrome instance:
host.docker.internal is the magic hostname Docker Desktop provides on Windows and macOS to reach services on the host machine. On Linux, Docker Desktop also supports it in recent versions. If it does not resolve, use --network=host and point to http://localhost:9222, or replace it with your machine’s local IP address.| Platform | Recommended hostname |
|---|---|
| Windows (Docker Desktop) | host.docker.internal |
| macOS (Docker Desktop) | host.docker.internal |
| Linux (Docker Engine) | --network=host or host LAN IP |
Comparison: Screencast vs. Remote CDP
Integrated Screencast
Best for: Everyday test runs, CI/CD, Docker deployments
- ✅ Zero configuration
- ✅ Works everywhere (local & Docker)
- ✅ No Chrome installation needed on the host
- ✅ Frames streamed directly in the QA Flow UI
- ⚙️ Headless only — no browser window on your desktop
Remote CDP
Best for: Debugging, element selection, interactive testing
- ✅ Full visible Chrome browser on your desktop
- ✅ Enables the Visual Picker (🎯) element selector
- ✅ Useful for sites with anti-headless detection
- ⚙️ Requires Chrome open with remote debugging flag
- ⚙️ Extra network config needed inside Docker