# Quickstart

URL: https://docs.testvibe.com/testvibe-api/getting-started/quickstart

This walkthrough uses the `testvibe` CLI. Every step has a raw-HTTP equivalent — see the [API reference](/testvibe-api/reference) — and the same operations are available to AI tools through the [MCP server](/testvibe-api/mcp) .

1. ### Create an API key

In the TestVibe app, open **Settings → CLI & API keys** and create a key. The full key ( `tvb_…` ) is shown **once** — copy it now. warning
Treat API keys like passwords. The key acts as you, inside your workspace.

- ### Install the CLI and log in

With npm:
```bash
npm install -g testvibe
```

Or without npm — download it straight from your TestVibe server (needs Node 20+):
```bash
curl -fsSL https://YOUR-TESTVIBE-SERVER/api/v1/install.sh | sh      # macOS / Linux
iwr -useb https://YOUR-TESTVIBE-SERVER/api/v1/install.ps1 | iex     # Windows PowerShell
```

Then log in:
```bash
testvibe login --server https://YOUR-TESTVIBE-SERVER --key tvb_XXXXXXXX…
```

`login` verifies the key against the server before saving it to `~/.testvibe/config.json` . See the [CLI reference](/testvibe-api/cli#install) for all install options.

- ### Pick a project

```bash
testvibe projects
testvibe use "Acme Shop"
```

`use` sets the default project for every command that follows. You can always override it per call.

- ### Create a feature

A feature is desired behavior described in Gherkin: login.feature

```gherkin
Feature: Login Functionality
  Scenario: Valid user signs in
    Given I am on the login page
    When I sign in with valid credentials
    Then I see the inventory page
```

```bash
testvibe features create "Login Functionality" --file login.feature
```

- ### Generate its tests

```bash
testvibe generate "Login Functionality" --watch
```

AI generation runs in a cloud sandbox against your project's URL and takes a few minutes; `--watch` streams per-section progress until the feature reaches the `generated` status. info
Generation consumes account credits — see [Long-running operations](/testvibe-api/reference/async-operations) for how dispatch + polling works.

- ### Run the tests

```bash
testvibe run "Login Functionality" --wait
```

The run executes in an isolated sandbox and `--wait` prints per-test results when it finishes:
```text
Run #214 passed — 3/3 tests passed (31s)
  ✓ Valid user signs in (4.2s)
  ✓ Invalid password is rejected (3.8s)
  ✓ Locked-out user sees an error (3.1s)
```

- ### Grab the artifacts

```bash
testvibe runs artifacts 214
```

Returns short-lived download links for the run's Playwright traces, screenshots, and videos.
2. ### Install the CLI and log in

With npm:
```bash
npm install -g testvibe
```

Or without npm — download it straight from your TestVibe server (needs Node 20+):
```bash
curl -fsSL https://YOUR-TESTVIBE-SERVER/api/v1/install.sh | sh      # macOS / Linux
iwr -useb https://YOUR-TESTVIBE-SERVER/api/v1/install.ps1 | iex     # Windows PowerShell
```

Then log in:
```bash
testvibe login --server https://YOUR-TESTVIBE-SERVER --key tvb_XXXXXXXX…
```

`login` verifies the key against the server before saving it to `~/.testvibe/config.json` . See the [CLI reference](/testvibe-api/cli#install) for all install options.

- ### Pick a project

```bash
testvibe projects
testvibe use "Acme Shop"
```

`use` sets the default project for every command that follows. You can always override it per call.

- ### Create a feature

A feature is desired behavior described in Gherkin: login.feature

```gherkin
Feature: Login Functionality
  Scenario: Valid user signs in
    Given I am on the login page
    When I sign in with valid credentials
    Then I see the inventory page
```

```bash
testvibe features create "Login Functionality" --file login.feature
```

- ### Generate its tests

```bash
testvibe generate "Login Functionality" --watch
```

AI generation runs in a cloud sandbox against your project's URL and takes a few minutes; `--watch` streams per-section progress until the feature reaches the `generated` status. info
Generation consumes account credits — see [Long-running operations](/testvibe-api/reference/async-operations) for how dispatch + polling works.

- ### Run the tests

```bash
testvibe run "Login Functionality" --wait
```

The run executes in an isolated sandbox and `--wait` prints per-test results when it finishes:
```text
Run #214 passed — 3/3 tests passed (31s)
  ✓ Valid user signs in (4.2s)
  ✓ Invalid password is rejected (3.8s)
  ✓ Locked-out user sees an error (3.1s)
```

- ### Grab the artifacts

```bash
testvibe runs artifacts 214
```

Returns short-lived download links for the run's Playwright traces, screenshots, and videos.
3. ### Pick a project

```bash
testvibe projects
testvibe use "Acme Shop"
```

`use` sets the default project for every command that follows. You can always override it per call.

- ### Create a feature

A feature is desired behavior described in Gherkin: login.feature

```gherkin
Feature: Login Functionality
  Scenario: Valid user signs in
    Given I am on the login page
    When I sign in with valid credentials
    Then I see the inventory page
```

```bash
testvibe features create "Login Functionality" --file login.feature
```

- ### Generate its tests

```bash
testvibe generate "Login Functionality" --watch
```

AI generation runs in a cloud sandbox against your project's URL and takes a few minutes; `--watch` streams per-section progress until the feature reaches the `generated` status. info
Generation consumes account credits — see [Long-running operations](/testvibe-api/reference/async-operations) for how dispatch + polling works.

- ### Run the tests

```bash
testvibe run "Login Functionality" --wait
```

The run executes in an isolated sandbox and `--wait` prints per-test results when it finishes:
```text
Run #214 passed — 3/3 tests passed (31s)
  ✓ Valid user signs in (4.2s)
  ✓ Invalid password is rejected (3.8s)
  ✓ Locked-out user sees an error (3.1s)
```

- ### Grab the artifacts

```bash
testvibe runs artifacts 214
```

Returns short-lived download links for the run's Playwright traces, screenshots, and videos.
4. ### Create a feature

A feature is desired behavior described in Gherkin: login.feature

```gherkin
Feature: Login Functionality
  Scenario: Valid user signs in
    Given I am on the login page
    When I sign in with valid credentials
    Then I see the inventory page
```

```bash
testvibe features create "Login Functionality" --file login.feature
```

- ### Generate its tests

```bash
testvibe generate "Login Functionality" --watch
```

AI generation runs in a cloud sandbox against your project's URL and takes a few minutes; `--watch` streams per-section progress until the feature reaches the `generated` status. info
Generation consumes account credits — see [Long-running operations](/testvibe-api/reference/async-operations) for how dispatch + polling works.

- ### Run the tests

```bash
testvibe run "Login Functionality" --wait
```

The run executes in an isolated sandbox and `--wait` prints per-test results when it finishes:
```text
Run #214 passed — 3/3 tests passed (31s)
  ✓ Valid user signs in (4.2s)
  ✓ Invalid password is rejected (3.8s)
  ✓ Locked-out user sees an error (3.1s)
```

- ### Grab the artifacts

```bash
testvibe runs artifacts 214
```

Returns short-lived download links for the run's Playwright traces, screenshots, and videos.
5. ### Generate its tests

```bash
testvibe generate "Login Functionality" --watch
```

AI generation runs in a cloud sandbox against your project's URL and takes a few minutes; `--watch` streams per-section progress until the feature reaches the `generated` status. info
Generation consumes account credits — see [Long-running operations](/testvibe-api/reference/async-operations) for how dispatch + polling works.

- ### Run the tests

```bash
testvibe run "Login Functionality" --wait
```

The run executes in an isolated sandbox and `--wait` prints per-test results when it finishes:
```text
Run #214 passed — 3/3 tests passed (31s)
  ✓ Valid user signs in (4.2s)
  ✓ Invalid password is rejected (3.8s)
  ✓ Locked-out user sees an error (3.1s)
```

- ### Grab the artifacts

```bash
testvibe runs artifacts 214
```

Returns short-lived download links for the run's Playwright traces, screenshots, and videos.
6. ### Run the tests

```bash
testvibe run "Login Functionality" --wait
```

The run executes in an isolated sandbox and `--wait` prints per-test results when it finishes:
```text
Run #214 passed — 3/3 tests passed (31s)
  ✓ Valid user signs in (4.2s)
  ✓ Invalid password is rejected (3.8s)
  ✓ Locked-out user sees an error (3.1s)
```

- ### Grab the artifacts

```bash
testvibe runs artifacts 214
```

Returns short-lived download links for the run's Playwright traces, screenshots, and videos.
7. ### Grab the artifacts

```bash
testvibe runs artifacts 214
```

Returns short-lived download links for the run's Playwright traces, screenshots, and videos.

## Where next?

[Connect your AI tools
Let Claude or Codex do all of the above for you, via MCP.](/testvibe-api/getting-started/connect-ai-tools) [API reference
Every operation across REST, CLI, and MCP.](/testvibe-api/reference) [Run TestVibe in CI
Gate your deploys on a green TestVibe run.](/testvibe-api/guides/run-in-ci)
