> ## Documentation Index
> Fetch the complete documentation index at: https://docs.qawolf.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Client Reference

> Reference for @qawolf/testkit/client, the runner-facing entry point used to create and configure the testkit client for flow helpers.

`@qawolf/testkit/client` is the runner-facing entry point.

## Primary Export

* `createTestkitClient(...)`

Example:

```ts theme={null}
import { createTestkitClient } from "@qawolf/testkit/client";

const client = createTestkitClient({
  mountCifsShare: async () => "/Volumes/shared",
  startOpenVpn: async () => "vpn-started",
  startWireGuard: async () => "wireguard-started",
});
```

## Input Ports

The client is built from environment-specific ports such as:

* `mountCifsShare`
* `saveSnapshot`
* `startOpenVpn`
* `startWireGuard`

If `saveSnapshot` is present, the created client exposes `saveBaselineScreenshot(...)`. Otherwise, that helper remains unavailable.

Example with screenshot support:

```ts theme={null}
import { createTestkitClient } from "@qawolf/testkit/client";

const client = createTestkitClient({
  mountCifsShare: async ({ mountPoint }) => mountPoint,
  saveSnapshot: async (name, bytes) => {
    console.log(name, bytes.length);
  },
  startOpenVpn: async ({ configPath }) => configPath,
  startWireGuard: async ({ configPath }) => configPath,
});

await client.saveBaselineScreenshot?.(
  {
    screenshot: async () => Buffer.from("image"),
  },
  "login-page",
);
```
