# Set a Project's Execution Target

URL: https://docs.testvibe.com/runners/set-default-runner

Each project runs on one execution target: the default **cloud** sandboxes, a **private runner** you host, or a **tunneled** sandbox that reaches a private app. New projects start on cloud; you only change this when the app under test isn't reachable from the public internet.

## Cloud (default)

Projects testing public or staging URLs need no configuration — every run gets an [isolated cloud sandbox](/runners/what-are-runners) automatically. There is nothing to install or select.

## Tunneled: pin a device

When a project runs in **tunneled** mode, the cloud sandbox routes through a tunnel device. A project uses its pinned device; if no device is pinned, it falls back to the **Default** device. You manage devices from **Settings → Tunnels** .

### Open the Tunnels panel

1. Sign in to TestVibe.
2. Select **Settings** from the navigation rail.
3. Select **Tunnels** under Workspace.
The panel lists every machine that has connected with the `tvtunnel` agent, with its online status.

### Set the Default device

1. Find the device you want most projects to use.
2. Mark it as **Default** .
Any tunneled project without a pinned device now routes through this device.

### Pin a device for one project

If a project's app lives in a different network than the Default device:

1. Open the project's device setting in **Settings → Tunnels** .
2. Pin the device that can reach that project's app.
Pinned projects always use their pinned device; everything else falls back to the Default device.

## Private runner

When a project runs on a **private runner** , runs are picked up by the runner you host inside your firewall — there is no device to pin. Make sure a runner is online for the project before starting a run. See [Private runners](/runners/self-hosted-runners) .

## After Changing Targets

Run one small test to confirm the new target works:

| What to verify | Expected result | The run leaves preparing | A sandbox or private runner picks up the job and starts executing. | The target site opens | The run reaches your app (directly, through the tunnel, or from the private runner). | Evidence is returned | Screenshots, videos, and traces appear in the Runs section. 

If the run cannot reach the site or stays stuck, see [Troubleshoot execution](/runners/troubleshooting-runners) .

## Related Help

- [Choose an execution target](/runners/choose-a-runner)
- [Private runners](/runners/self-hosted-runners)
- [Tunnel devices in Settings](/account-settings/tunnel-devices)
- [API keys](/account-settings/api-keys)
