Skip to content

Releases: openqa-labs/openqa

v0.0.10

07 May 00:20
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

What's new

varlock environment schema

  • .env.schema added to all scaffolded .openqa projects β€” documents every variable with type, description, and @sensitive annotation. Secrets are redacted from logs automatically.
  • varlock/auto-load imported in config files so env vars are validated on startup.
  • varlock auto-installed during openqa init β€” zero manual steps.
  • Node.js >=22 engine requirement added to template package.json files (varlock requirement).

Example feature files

  • openqa init now scaffolds two example feature files into .openqa/features/:
    • todomvc.feature β€” 2 scenarios using * (asterisk) step syntax
    • getting-started.feature β€” 1 scenario
  • Init prompt updated: feature files path is now relative to .openqa/ (default: features).

Fix: async install spinner

  • Replaced execSync with async spawn so the CLI spinner animates properly during npm install and Playwright browser download.

Docs

  • README, quickstart, and CLAUDE.md updated with varlock docs, feature file organization, and customization guidance.

Full changelog

v0.0.9...v0.0.10

v0.0.8 β€” OpenCode provider + unified SDK architecture

05 May 05:03
Immutable release. Only release title and notes can be modified.
48790d1

Choose a tag to compare

What's new

OpenCode provider (openCode)

A second AI provider powered by @opencode-ai/sdk. Supports any model your OpenCode installation has access to β€” including GitLab Duo, GitHub Copilot, Anthropic, OpenAI, and Google.

import { runAgent, openCode } from 'openqa';

// GitLab Duo (default)
await runAgent(openCode('gitlab/duo-chat-haiku-4-5'), step, page);

// GitHub Copilot
await runAgent(openCode('github-copilot/gpt-5.4'), step, page);

// Anthropic / OpenAI / Google
await runAgent(openCode('anthropic/claude-sonnet-4-6'), step, page);
await runAgent(openCode('openai/gpt-4o'), step, page);
await runAgent(openCode('google/gemini-2.0-flash'), step, page);

Unified SDK architecture

Both claudeCode and openCode now share the same transport and interface:

  • Shared MCP server β€” Playwright MCP exposed over HTTP on a random 127.0.0.1 port per runAgent() call. No subprocesses, no temp files, no socket bridges.
  • Shared system prompt β€” identical agent instructions regardless of which backend runs the step.
  • Uniform provider.run() interface β€” swapping providers is a one-line change in .openqa/steps/steps.ts.

openqa init wizard updates

  • GitLab Duo (gitlab/duo-chat-haiku-4-5) and GitHub Copilot (github-copilot/gpt-5.4) added as first-class OpenCode model options
  • Next Steps message now shows claude login / opencode auth login as the local auth path β€” no API key needed for local development

No API key needed locally

claude login          # Claude Code
opencode auth login   # OpenCode (GitLab Duo, GitHub Copilot, Anthropic, OpenAI, Google, …)

Installation

npx openqa init

Or update an existing install:

cd .openqa && npm install openqa@latest

Full changelog

v0.0.7...v0.0.8

v0.0.6 - Fix claude-agent-sdk 0.1.75 Compatibility

23 Dec 04:48
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

Bug Fixes

  • Fixed browser context disposal issue with claude-agent-sdk 0.1.75
    • Resolved "Target page, context or browser has been closed" error occurring on multi-step AI workflows
    • The SDK's improved cleanup in v0.1.75 was closing externally-managed browser contexts
    • Solution: Wrapped browser context with no-op close() function to prevent premature disposal
    • All AI steps in tests now work correctly across multiple sequential operations

Changes

  • Updated ClaudeAgent.js to use wrapped browser context with managed lifecycle
  • Enhanced SessionManager.js with MCP connection management capabilities
  • Updated documentation in CLAUDE.md

Compatibility

  • Compatible with claude-agent-sdk v0.1.75 and later
  • Tested with Playwright BDD multi-step workflows

Installation

npm install openqa@0.0.6

View on npm: https://www.npmjs.com/package/openqa

v0.0.5 - Custom Fixture Support for YAML Tests

22 Dec 01:52
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

πŸŽ‰ What's New

Custom Fixture Support for YAML Tests

YAML tests can now import custom Playwright fixtures, enabling advanced use cases like cloud browsers, custom test data, and authentication fixtures.

Example:

name: Cloud Browser Tests
fixtureFile: ./fixtures/browser.js  # Import custom fixtures

tests:
  - name: Test with cloud browser
    steps:
      - Navigate to https://example.com
      - Add laptop to cart

Fixture file:

// fixtures/browser.js
import { test as base } from '@playwright/test';
import { chromium } from '@playwright/test';

export const test = base.extend({
  browser: [async ({}, use) => {
    const browser = await chromium.connectOverCDP('ws://your-cloud-browser');
    await use(browser);
    await browser.close();
  }, { scope: 'worker' }],
});

πŸ“¦ Changes

  • Added `fixtureFile` property to YAML schema for importing custom Playwright fixtures
  • Path validation: requires relative paths starting with `./` or `../`
  • File type validation: only `.js` and `.ts` extensions allowed
  • Full backward compatibility: existing YAML tests work unchanged

πŸ“š Examples

  • OnKernel cloud browser: `examples/playwright-yaml/fixtures/onkernel.js`
  • Steel Docker browser: `examples/playwright-yaml/fixtures/steel.js`
  • YAML usage: `examples/playwright-yaml/tests/onkernel.spec.yaml`
  • Steel BDD example: `examples/playwright-bdd-steel/`

πŸ”§ Technical Details

Files Modified

  • `src/yaml/schema.js` - Added fixtureFile validation
  • `src/yaml/generator.js` - Conditional import generation with path resolution
  • `src/cli/generate.js` - Pass absolute YAML path for fixture resolution
  • `README.md` - Added fixture documentation and examples

Path Resolution

Fixture paths are resolved relative to the YAML file location and work identically in both development and production environments. No hardcoded paths or assumptions about package location.

πŸ“– Documentation

Updated README with:

  • YAML custom fixtures quick start example
  • Cloud browser fixture patterns
  • Updated examples list

πŸ”— Links

v0.0.3 - Enhanced Init Command & Improved BDD Templates

27 Nov 05:22

Choose a tag to compare

πŸŽ‰ What's New

Enhanced Init Command

  • Zero-parameter setup: Simply run npx openqa init - no arguments needed!
  • Interactive prompts: Choose framework (Playwright-BDD or Cucumber.js), install browsers, and select AI provider
  • Smart browser installation: Optional Chromium installation with progress tracking
  • Provider-specific guidance: Tailored setup instructions based on your AI provider choice (Anthropic vs Others)

Improved BDD Templates

  • Fixed timeout issues: 4-minute default timeout for AI-powered browser tests
  • Better test results: Cucumber reports now output to cucumber-test-results/ directory
  • Included .gitignore files: Both templates now include proper .gitignore files for clean repositories
  • Fixed Playwright-BDD template: Proper test instance export for bddgen compatibility

LangChain Agent Enhancements

  • Configurable recursion limit: Default increased to 100 (from 25) for complex workflows
  • Environment variable support: Configure models via ANTHROPIC_MODEL, OPENAI_MODEL, GOOGLE_MODEL, DEFAULT_MODEL
  • Flexible timeout control: Set RECURSION_LIMIT environment variable

Documentation Improvements

  • Simplified Quick Start: Single npx openqa init command for new projects
  • Clear authentication steps: Added auth instructions to all integration guides
  • Better organization: Separated new projects from existing project integrations

πŸ“¦ Installation

# New projects
npx openqa init

# Existing projects
npm install openqa

πŸ”§ What's Fixed

  • βœ… Cucumber template timeout errors
  • βœ… Playwright-BDD bddgen "Can't guess test instance" error
  • βœ… ES module error in CLI init command
  • βœ… Missing .gitignore files in templates
  • βœ… Confusing README structure

πŸ“ Full Changelog

  • Enhanced init command with interactive prompts and browser installation
  • Fix Cucumber template timeouts (4-minute default)
  • Fix .gitignore files not being published to npm
  • Fix playwright-bdd template: export test instance for bddgen
  • Restructure README with step-by-step flow
  • Add recursion limit and model configuration to LangChain agent
  • Add Cucumber.js example for testing and reference

πŸ™ Contributors

Generated with Claude Code

Co-Authored-By: Claude noreply@anthropic.com

v0.0.2 - BDD Integration & CLI Tool

25 Nov 20:00

Choose a tag to compare

πŸŽ‰ What's New

BDD Integration

  • 1-Line BDD Setup: Replace all step definitions with a single import
    • Playwright-BDD: import 'openqa/bdd/playwright-bdd'
    • Cucumber.js: import 'openqa/bdd/cucumber'
  • Write tests in pure natural language - AI handles everything
  • Automatic browser setup and teardown for Cucumber.js

CLI Scaffolding Tool

  • Instant Project Setup: npx openqa init playwright-bdd
  • 2-Minute Workflow: From zero to running BDD tests
  • Creates complete project structure with:
    • Configuration files
    • Example .feature files
    • Step definitions (1-line integration)
    • Dependencies auto-installed

Documentation Updates

  • Restructured README with BDD-first approach
  • Comprehensive testing guide in PUBLISHING.md
  • Clear examples for both frameworks

πŸ“¦ Installation

```bash
npm install openqa@latest
```

πŸš€ Quick Start

New Project:
```bash
npx openqa init playwright-bdd
cd my-project
claude login # or set ANTHROPIC_API_KEY
npm test
```

Existing Project:
```bash
npm install openqa

Replace all step definitions with:

import 'openqa/bdd/playwright-bdd';
```

πŸ”— Links

πŸ“‹ Full Changelog

  • Add BDD integration modules for Playwright-BDD and Cucumber.js
  • Add CLI scaffolding tool with interactive prompts
  • Add project templates for both frameworks
  • Add example project (playwright-bdd-simple)
  • Update README with BDD-first structure
  • Fix npm publish exports issue (removed main field)
  • Update PUBLISHING.md with comprehensive testing guide

Release v0.0.1

17 Nov 23:50

Choose a tag to compare

OpenQA v0.0.1

First public release of OpenQA - AI-powered browser automation using Playwright MCP with Claude Code
integration.

Features

  • πŸ€– AI-powered browser automation with natural language commands
  • πŸ”— Shared browser context between tests and AI agent
  • 🎭 Seamless Playwright integration
  • πŸ”‘ Works with Claude Code credentials (no API key needed)
  • πŸ“¦ Support for both Claude SDK and LangChain agents
  • ✨ Playwright and Playwright BDD examples included

Installation

npm install openqa @playwright/test

NPM Package

https://www.npmjs.com/package/openqa

Documentation

See https://github.com/auto-browse/openqa#readme for usage instructions and examples.