Open Source

Your e2e tests become
training docs.

Automatically.

Driftless reads your end-to-end tests and generates human-readable documentation that stays in sync with your actual application behavior.

npx @driftless-ai/cli@latest init

How it works

From test to doc
in seconds

Write your tests as usual. Driftless reads them and produces clear, structured documentation — no extra effort required.

Your test

workspace.spec.ts
test('user creates a new workspace', async ({ page }) => {
  await page.goto('/dashboard');
  await page.getByRole('button', { name: 'New workspace' }).click();
  await page.getByLabel('Workspace name').fill('Design System');
  await page.getByRole('button', { name: 'Create' }).click();
  await expect(page.getByText('Design System')).toBeVisible();
});

Generated doc

creating-a-workspace.md
## Creating a New Workspace

1. Navigate to the Dashboard
2. Click the "New workspace" button
3. Enter a name for your workspace
4. Click "Create" to confirm
5. Your new workspace appears in the list

// Auto-generated by driftless from workspace.spec.ts

Features

Built for the way you ship

01

Framework Agnostic

Playwright, Cypress, TestCafe, Detox, WebDriverIO, Nightwatch — driftless works with your existing test setup, no migration required.

02

Always In Sync

GitHub Actions keep your docs fresh on every push. A staleness check flags drift before it ships.

03

Composable Capabilities

Start with doc-generator. Add e2e-writer. Capabilities are modular — pick what fits your workflow.

04

Multiple Doc Targets

Generate plain Markdown, Fumadocs, or Docusaurus output. One config switch, same test suite.

Works with

PlaywrightCypressTestCafeDetoxWebDriverIONightwatch