The fastest way to get started with TestDriver. Just set your API key and start testing.
npx skills add https://github.com/testdriverai/testdriverai --skill testdriver:cloud
<!-- Generated from cloud.mdx. DO NOT EDIT. -->
Cloud pricing is based on device-seconds: the amount of time your tests run on our infrastructure.
Cloud is the default when you follow the Quickstart guide.
<Card
title="Try the Quickstart"
icon="play"
href="/v7/quickstart"
>
Set your API key and start testing in minutes.
</Card>
Your account has a set number of license slots that determine how many devices can run simultaneously. You can view your available slots in the TestDriver Dashboard.
<Info>
When is a slot in use? A license slot is occupied when a test client is connected. As soon as your device is destroyed the slot becomes available immediately.
</Info>
To prevent tests from failing due to exceeding your license slot limit, we recommend two key configurations:
<AccordionGroup>
<Accordion title="Set Maximum Concurrency in Vitest">
Limit concurrent tests to match your available license slots:
import { defineConfig } from 'vitest/config';
import { TestDriver } from 'testdriverai/vitest';
export default defineConfig({
test: {
testTimeout: 900000,
hookTimeout: 900000,
maxConcurrency: 5, // Set to your license slot limit
reporters: ['default', TestDriver()],
setupFiles: ['testdriverai/vitest/setup'],
},
});
<Tip>
Check your slot count at console.testdriver.ai and set maxConcurrency to that number or lower.
</Tip>
</Accordion>
<Accordion title="Use GitHub Concurrency Keys">
Prevent multiple workflow runs from competing for the same slots by using GitHub's concurrency controls:
name: Tests
on:
push:
branches: [main]
pull_request:
# Prevent concurrent runs from competing for license slots
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install dependencies
run: npm install
- name: Run tests
run: vitest run
env:
TD_API_KEY: ${{ secrets.TD_API_KEY }}
The concurrency block ensures:
</Accordion>
</AccordionGroup>
Cloud is perfect for getting started and for teams that want zero infrastructure management. However, you might consider Self-Hosted if you:
<Card
title="Explore Self-Hosted"
icon="server"
href="/v7/self-hosted"
>
Learn about self-hosting for unlimited test execution at a flat rate.
</Card>
Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.
Use when implementation is complete, all tests pass, and you need to decide how to integrate the work - guides completion of development work by presenting structured options for merge, PR, or cleanup
Use when implementing any feature or bugfix, before writing implementation code
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes
Use when about to claim work is complete, fixed, or passing, before committing or creating PRs - requires running verification commands and confirming output before making any success claims; evidence before assertions always
Expert guidance for systematic backtesting of trading strategies. Use when developing, testing, stress-testing, or validating quantitative trading strategies. Covers "beating ideas to death" methodology, parameter robustness testing, slippage modeling, bias prevention, and interpreting backtest results. Applicable when user asks about backtesting, strategy validation, robustness testing, avoiding overfitting, or systematic trading development.
Cloud laboratory platform for automated protein testing and validation. Use when designing proteins and needing experimental validation including binding assays, expression testing, thermostability measurements, enzyme activity assays, or protein sequence optimization. Also use for submitting experiments via API, tracking experiment status, downloading results, optimizing protein sequences for better expression using computational tools (NetSolP, SoluProt, SolubleMPNN, ESM), or managing protein design workflows with wet-lab validation.
This skill should be used for time series machine learning tasks including classification, regression, clustering, forecasting, anomaly detection, segmentation, and similarity search. Use when working with temporal data, sequential patterns, or time-indexed observations requiring specialized algorithms beyond standard ML approaches. Particularly suited for univariate and multivariate time series analysis with scikit-learn compatible APIs.
Take testdriverai/testdriver:cloud from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.
The instructions reference npm.
Without those the skill loads but fails at the first command.