The testvibe CLI
The testvibe npm package wraps the REST API for your terminal, and doubles as the MCP server (testvibe mcp). It's a single bundled file with zero runtime dependencies — all it needs is Node 20+.
Install
Pick whichever fits your setup. Every method installs the same dependency-free bundle and only needs Node 20+ already on your machine.
- npm
- macOS / Linux (no npm)
- Windows (no npm)
npm install -g testvibe
Installs the testvibe package from the public npm registry.
Download and install straight from your TestVibe server — no npm needed:
curl -fsSL https://app.testvibe.com/api/v1/install.sh | sh
It drops a testvibe command in ~/.testvibe/bin (override with TESTVIBE_PREFIX) and prints a line to add it to your PATH. Swap in your own host if you're self-hosting.
From PowerShell:
iwr -useb https://app.testvibe.com/api/v1/install.ps1 | iex
It installs testvibe into %USERPROFILE%\.testvibe\bin and prints a setx PATH line to add it. Swap in your own host if you're self-hosting.
The curl | sh and iwr | iex installers download a single file (testvibe.mjs) from /api/v1/cli/testvibe.mjs on your TestVibe server and add a testvibe shim that runs it with node. No npm registry, no build step — just Node 20+.
Then log in once per machine:
testvibe login --server https://app.testvibe.com --key tvb_XXXXXXXX…
testvibe use <project>
Commands
| Command | What it does |
|---|---|
testvibe login [--key tvb_…] [--server https://…] | Store an API key for this machine. Verifies the key before saving. |
testvibe logout | Remove the stored API key. |
testvibe whoami | Show the configured server, key prefix, and default project. |
testvibe use <project> | Set the default project (by public id or name). |
testvibe projects | List the projects in your workspace. |
testvibe project [id] | Show one project's details (base URL, execution target, test site URLs). |
testvibe features [list|show|create|update|delete] … [--status generated] | Manage features (create <name> --file <path> or --gherkin '…'). |
testvibe generate <feature> [--url https://…] [--watch] | Generate Playwright tests from the feature's Gherkin. --watch polls progress. |
testvibe run <feature>|--all [--config Name] [--url https://…] [--wait] | Run a feature's tests in a cloud sandbox — or every generated feature with --all (one run per feature). --wait prints per-test results. |
testvibe runs [list|show|diagnose|artifacts] [runId] [--status failed] | List runs, show one's results, get a failed run's full failure context, or get artifact download links. |
testvibe files [list|get|put|delete] … | List, print, write, or delete project files (writes/deletes only under Features/ or Configurations/). |
testvibe configs | List the Playwright configurations available to runs. |
testvibe load [list|create|update|delete|run] [loadTest] [--name …] [--mode simple|advanced] [--features id1,id2] [--paths /,/x] [--vus N] [--duration S] [--ramp S] [--repeats N] [--thresholds "http_req_duration:p(95)<1000"] [--url https://…] [--wait] | List, create, edit, delete, or dispatch load tests. Simple mode replays functional features (--features); advanced drives k6 against paths (--paths). --wait polls a dispatched run until it finishes. |
testvibe telemetry [live|errors|metrics] [runId] [--status open] [--limit 50] | Read telemetry: live streaming server vitals (Live Servers), errors fingerprinted application-error groups, metrics <runId> a load run's persisted server samples. Read-only. |
testvibe automations [list|show|create|update|delete|run|runs] … | Manage automations (schedule/event triggers → run features or a load test), fire one now, or view firing history. |
testvibe coverage [show|scan|runs|run] [--target id] [--wait] | Show the coverage snapshot, trigger an AI area scan, list execution-coverage runs, or start one. --wait polls to completion. |
testvibe plugins [list|install|remove|publish|unpublish] … [--installed] | Manage the project's plugin catalog — list it, enable/disable a plugin, or publish/unpublish a workspace package (publish --name "My Plugin" [--file source.js]). |
testvibe vars [list|set|delete] [NAME] [value] | List, set, or delete project variables (plaintext, injected into runs and generation). |
testvibe secrets [list|set|delete] [NAME] [value] | List, set, or delete project secrets. list shows names only — values are write-only. |
testvibe mcp | Start the MCP stdio server. |
Configuration
Settings resolve in priority order — first hit wins:
| Priority | Source | Holds |
|---|---|---|
| 1 | Environment: TESTVIBE_API_KEY, TESTVIBE_SERVER, TESTVIBE_PROJECT | Anything — ideal for CI. |
| 2 | Per-repo .testvibe.json | { "server": "…", "project": "…" } — commit it so a repo is pinned to its project. No keys here. |
| 3 | ~/.testvibe/config.json (written by testvibe login) | { "server", "apiKey", "project" }. |
A typical setup: testvibe login once per machine, a committed .testvibe.json per repo pointing at its project, and env vars in CI. See Run TestVibe in CI.
Exit codes & output
Commands print human-readable output and exit non-zero on failure (API errors surface the server's message verbatim) — run --wait exits non-zero when any run fails, which is exactly what a CI gate wants. run --all --wait waits on every dispatched run and prints a suite summary.