For the complete documentation index, see llms.txt. This page is also available as Markdown.

Private Runners

Host the TestVibe runner inside your firewall so tests run on your own infrastructure against fully private applications.

A private runner is the same runner image TestVibe uses in the cloud, run by you on a machine inside your firewall. It exists for applications that are fully private and whose traffic must never leave your network: the tests execute on your own infrastructure and reach the app directly.

The connection is outbound-only: the runner dials out to TestVibe, picks up the next job, runs it locally, and uploads the results. Nothing inbound is opened.

Private Runner vs Tunneled

Both targets let you test an app the public internet can't reach. They differ in where the test code runs:

Private runner

Where the AI-generated test code runs

Your infrastructure

TestVibe's isolated sandbox

What you host

The runner image

The small tvtunnel agent

App traffic

Never leaves your network

Relayed to the sandbox (encrypted end-to-end)

When To Use A Private Runner

Need
Why a private runner fits

Fully private or on-prem app

The runner sits inside the network that hosts your app and reaches it directly.

Traffic must stay in your network

Nothing about the run transits TestVibe — only job metadata and uploaded results do.

Strict outbound-only posture

The runner dials out; no inbound firewall changes are needed.

How A Private Runner Works

A private runner is pull-based — it asks TestVibe for work rather than receiving it:

  1. The runner registers with TestVibe and sends a periodic heartbeat (all outbound).

  2. It long-polls for the next job assigned to your project.

  3. When a job arrives, it runs the Playwright tests locally against your app.

  4. It uploads screenshots, videos, traces, and logs to TestVibe's cloud, then posts the result.

Results, live status, and evidence appear in the Runs section exactly as they do for cloud runs.

Set A Project To Use A Private Runner

Switch a project to the private-runner target, then point a runner at your project. While no runner is online, a run waits in preparing (TestVibe is waiting for an online runner) and times out with an error if none connects.

For choosing between targets, see Choose an execution target. To pick a project's default target, see Set a project's execution target.

Keep It Reliable

Area
Recommendation

Uptime

Run the runner as a service on a stable machine — a laptop that sleeps stops picking up jobs.

Network access

The runner only needs outbound access to TestVibe plus reach to the apps your tests target.

Tokens

Treat the runner token like any credential; rotate or revoke it from Settings → CLI & API keys if the machine is retired.

Last updated

Was this helpful?