Drop-in UI testing for any GitHub repository. Mention @testdriverai anywhere in your repo and it writes UI tests and catches regressions before they merge.
1
2
3
Want to use TestDriver from GitHub Copilot or the GitHub Mobile app instead? See the full GitHub guide:
Get started quickly with the TestDriver CLI.
1
2
Plug TestDriver into your AI client so you can write, run, and debug real end-to-end tests right from chat. There are three pieces, and testdriverai init installs all of them for you:
- The agent — an expert test-creator that drives a live sandbox, writes code after each step, and reruns the test until it passes.
- Skills — small instruction files that teach the agent the exact syntax for each TestDriver capability (
find,click,type,assert, …). - The MCP server — exposes TestDriver’s computer-use tools over the Model Context Protocol so any MCP-capable client can use them.
Quick install (recommended)
testdriverai init wires up the agent, skills, and MCP server for you, writing each client’s config in the exact format and location it expects:
You’ll need a TestDriver API key. Create one at console.testdriver.ai/team and init will save it to .env as TD_API_KEY.
The agent
The TestDriver agent is an expert test-creator that runs inside your AI client (Claude Code, Cursor, VS Code, and others). It writes, runs, and debugs real end-to-end tests by driving your app the same way a person would — using AI vision to find elements, click, type, and assert — through the TestDriver MCP server.Unlike a chat assistant that only suggests code, the agent works iteratively against a live sandbox: it starts a session, performs each action, writes the generated code to your test file, verifies the result with a screenshot, and reruns the test until it passes.During init you’ll be asked which AI client(s) to install into. The agent is written to the location each client expects:
| Client | Agent location |
|---|---|
| Claude Code | .claude/agents/testdriver.md |
| VS Code (Copilot) | .github/agents/testdriver.agent.md |
| Cursor | .cursor/rules/testdriver.mdc |
| Windsurf | .windsurf/rules/testdriver.md |
| Codex | AGENTS.md |
| Zed | .rules |
Once installed, invoke it from your client’s chat:
The agent will spin up a sandbox, perform the steps live, write them into a test file under tests/, and run it for you.
Skills
Skills are small, focused instruction files — one per TestDriver capability — that teach your AI client exactly how to use each part of the TestDriver SDK and MCP tools. They follow the Anthropic SKILL.md format: a folder per skill, each containing a SKILL.md with YAML frontmatter and a markdown body.There are 106 skills, generated directly from the TestDriver documentation, covering every action and concept: find, click, type, assert, check, scroll, press-keys, provision, caching, secrets, CI/CD, and more. They’re written to the directory each client expects:
| Client | Skills location |
|---|---|
| Claude Code | .claude/skills/<name>/SKILL.md |
| Zed | .agents/skills/<name>/SKILL.md |
| Codex | referenced from AGENTS.md |
| VS Code · Cursor · Windsurf | folded into the agent rules/instructions |
MCP server
The TestDriver MCP server exposes TestDriver’s computer-use tools — session_start, find, click, type, assert, check, screenshot, and more — over the Model Context Protocol. It runs as a local stdio process:
and authenticates with your TD_API_KEY. testdriverai init configures it for you, but you can also wire it up by hand:
| Client | Auto-install | MCP config file | Config key |
|---|---|---|---|
| Claude Code | ✅ | .mcp.json | mcpServers |
| Claude Desktop | ✅ | OS-specific | mcpServers |
| Cursor | ✅ | .cursor/mcp.json | mcpServers |
| VS Code (Copilot) | ✅ | .vscode/mcp.json | servers |
| Windsurf | ✅ | ~/.codeium/windsurf/mcp_config.json | mcpServers |
| Codex | ✅ | ~/.codex/config.toml | [mcp_servers] |
| Zed | ✅ | .zed/settings.json | context_servers |
| Lovable | ⚙️ partial | GitHub AGENTS.md + UI | — |
| Replit | ⚙️ partial | replit.md + UI | — |
| v0 (Vercel) | 📝 manual | web UI only | — |
Claude Code
Claude Desktop
Cursor
VS Code
Windsurf
Codex
Zed
Add to .mcp.json at your project root (or ~/.claude.json for all projects):
Edit the Claude Desktop config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
Restart Claude Desktop after saving.
Add to .cursor/mcp.json (project) or ~/.cursor/mcp.json (global):
Add to .vscode/mcp.json. VS Code uses the servers key and an inputs prompt for secrets:
Windsurf reads MCP config globally. Add to ~/.codeium/windsurf/mcp_config.json:
Codex uses TOML. Add to ~/.codex/config.toml:
Zed calls them “context servers”. Add to .zed/settings.json (project) or ~/.config/zed/settings.json (global):
Web-based clients — Lovable, Replit, and v0 run in the browser, so the MCP server can’t be launched as a local process. Configure them through each product’s UI:
Verifying the install
Open your client’s chat and ask the agent to write a test:
If the MCP server is wired up correctly, the agent will start a session and you’ll see screenshots come back as it works. If tools don’t appear, check that TD_API_KEY is set and restart the client.
Install TestDriver and manually create the files yourself.
1
2
3
4
5