Specwright

AI-powered E2E tests.

Written for you.

Specwright explores your app, writes production-grade BDD tests, and self-heals failures — all running locally inside Claude Code.

10

Phases

8

Agents

7

Skills

Gherkin

BDD format

MIT

License

Three interfaces

One pipeline, your choice of UI

Same 10-phase AI pipeline. Install as a CLI plugin, run as a desktop app, or invoke via MCP tools in Claude Desktop.

⌨️

Plugin + CLI

For developers & CI

  • npx install into project
  • Claude Code CLI
  • CI/CD ready
  • Full control
$ npx @specwright/plugin init

Best for: terminal users & CI

🖥️

Desktop App

Electron GUI

  • Visual phase display
  • Live agent output
  • Auth config UI
  • One-click run
Download for Mac / Windows

Best for: team demos & reviews

💬

Claude Desktop

MCP Tools

  • 9 MCP tools
  • Natural language
  • e2e-desktop-automate skill
  • Chat-native flow
Generate E2E tests for /login using Specwright

Best for: Claude Desktop users

Desktop App

See it in action

The Specwright Desktop app gives you a visual window into every phase of the pipeline.

Specwright Desktop
Specwright Desktop
Welcome

Welcome

Open a project and Specwright is ready — zero configuration beyond your app URL and credentials.

The pipeline

10 phases. Fully automated.

From a plain text description to running BDD tests — one command drives it all. Click any phase to explore what it does.

⚙️

Phase 1: Config

Read instructions.js

Phase 2: Validate

Validate inputs

📋

Phase 3: Plan

Extract test plan

🌐

Phase 4: Explore

Browser exploration

🌱

Phase 5: Seed

Generate seed tests

👤

Phase 6: Approve

Human review gate

✍️

Phase 7: Generate

BDD feature + steps

▶️

Phase 8: Execute

Run playwright tests

🔧

Phase 9: Heal

Auto-fix failures

Phase 10: Review

Quality score report

Phases 1–3: Input
Phases 4–5: Explore
Phase 6: Approve ⛔
Phase 7: Generate
Phases 8–9: Run + Heal
Phase 10: Review

Real output

What Specwright generates

Production-grade Gherkin feature files and type-safe step definitions. 100% real output — not fabricated examples.

Feature File (Gherkin)
@Lists @ListWorkflow
Feature: List Management Workflow

  @cross-feature-data
  Scenario: Create a named list
    Given I am authenticated
    And I navigate to the "Lists" page
    When I fill the create list form with:
      | Field       | Value           | Type |
      | Name        | <gen_test_data> | Fill |
      | Description | <gen_test_data> | Fill |
    And I click the "Create List" button
    Then the list card appears with the correct name
    And I save "listName" as predata under "listworkflow"

  Scenario: Delete a list
    Given I load predata from "listworkflow"
    When I click the delete icon on the list card
    And I confirm the deletion dialog
    Then the list card is no longer visible
Step Definitions (JavaScript)
import { createBdd } from "playwright-bdd";
import { test, expect } from "../../../playwright/fixtures.js";
import {
  FIELD_TYPES,
  processDataTable,
} from "../../../utils/stepHelpers.js";

const { Given, When, Then } = createBdd(test);

When(
  "I fill the create list form with:",
  async ({ page }, dataTable) => {
    await processDataTable(page, dataTable, {
      fieldConfig: {
        Name: { type: FIELD_TYPES.FILL, testID: "list-name-input" },
        Description: { type: FIELD_TYPES.FILL, testID: "list-desc-input" },
      },
    });
  }
);

Then(
  "the list card appears with the correct name",
  async ({ page, testData }) => {
    const name = testData.get("Name");
    await expect(
      page.getByTestId("list-card").filter({ hasText: name })
    ).toBeVisible();
  }
);

Generated by Specwright from a plain English test instruction · No manual writing required

Quality scoring

Every run is graded

Phase-by-phase quality scoring with actionable feedback. Know exactly what to fix before shipping.

Quality Score

0

PRODUCTION READY — issues auto-resolved

12Scenarios
94%Coverage
2 failuresAuto-healed
Exploration100/100
Feature File100/100
Step Definitions97/100
Test Execution100/100
Healing97/100

Why Specwright

More than a code generator

Feature

Specwright

this project

Playwright CodegenSaaS Tools
BDD / Gherkin output⚠️ partial
100% Local (no cloud)
10-phase AI pipelineLimited
Self-healing (3× auto)✅ SaaS
Open Source (MIT)
Workflow cross-phase⚠️
Quality score reportSome
Extensible via plugins⚠️ limited
Customizable framework⚠️ limited
Reports (Module/Workflows)⚠️
Screenshots, traces & videos
CostFreeFree$$$+/mo

Quick start

Up and running in minutes

1

Install the plugin into your project

npx @specwright/plugin init

Scaffolds e2e-tests/, playwright.config.ts, agents, skills

2

Configure credentials

# e2e-tests/.env.testing
AUTH_STRATEGY=email-password
TEST_USER_EMAIL=you@example.com
TEST_USER_PASSWORD=yourpassword
3

Describe your first test

// e2e-tests/instructions.js
export default [
  {
    moduleName: '@LoginPage',
    category: '@Modules',
    fileName: 'login',
    pageURL: 'http://localhost:3000/login',
    instructions: [
      'Verify login form shows email + password fields',
      'Successful login redirects to /dashboard',
    ],
    explore: true,
    runGeneratedCases: false,
  }
]
4

Run the pipeline

/e2e-automate

In Claude Code — starts the 10-phase pipeline

See the CLI pipeline run end-to-end