Package Exports
- @auto-browse/auto-browse
- @auto-browse/auto-browse/dist/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@auto-browse/auto-browse) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Auto-Browse: AI Enabled Browser Automation
Auto Browse is the easiest way to connect your AI agents with the browser using natural language.
Quick start
An AI-powered browser automation agent for automating browser tasks and Write Playwright tests that enables natural language interactions with web pages.
Examples
Check out our TypeScript BDD Example Repository to see a complete implementation using Auto Browse with BDD testing patterns.
Installation
npm install @auto-browse/auto-browse⚠️ Important: Playwright Version Requirements
Auto Browse requires Playwright version 1.53.0 or higher.
Required Versions
"@playwright/test": ">=1.53.0"
"playwright": ">=1.53.0"Installation
If you encounter version conflicts, use the legacy peer deps flag:
npm install --legacy-peer-depsQuick Setup
- Create a
.envfile in your project root:
# For OpenAI (default)
OPENAI_API_KEY=your_openai_api_key_here
LLM_PROVIDER=openai # Optional
AUTOBROWSE_LLM_MODEL=gpt-4o-mini # Optional
# Or for Google AI
GOOGLE_API_KEY=your_google_key_here
LLM_PROVIDER=google
AUTOBROWSE_LLM_MODEL=gemini-2.0-flash-lite- Start automating!
Supported LLM Providers
- OpenAI (default) - GPT-4 and compatible models
- Google AI - Gemini models
- Azure OpenAI - GPT models on Azure
- Anthropic - Claude models
- Google Vertex AI - PaLM and Gemini models
- Ollama - Run models locally
Usage
Standalone Mode (Without Playwright Test)
Auto Browse can also be used outside of Playwright test context. Here's a complete form automation example:
import { auto } from "@auto-browse/auto-browse";
async function main() {
try {
// Navigate to the form
await auto("go to https://httpbin.org/forms/post");
// Take a snapshot to analyze the page structure
await auto("take a snapshot");
// Fill out the form
await auto('type "John Doe" in the customer name field');
await auto('select "Large" for size');
await auto('select "Mushroom" for topping');
await auto('check "cheese" in extras');
// Submit the form
await auto("click the Order button");
// Take a snapshot of the response page
await auto("take a snapshot of the response page");
} catch (error) {
console.error("Error:", error);
}
}
// Run the script
main().catch(console.error);In standalone mode, Auto Browse automatically:
- Manages browser lifecycle
- Creates and configures pages
- Handles cleanup
To run standalone scripts:
npx ts-node your-script.tsPlaywright Test Mode
import { test, expect } from "@playwright/test";
import { auto } from "@auto-browse/auto-browse";
test("example test", async ({ page }) => {
await page.goto("https://example.com");
// Get text using natural language
const headerText = await auto("get the header text", { page });
// Type in an input using natural language
await auto('type "Hello World" in the search box', { page });
// Click elements using natural language
await auto("click the login button", { page });
});Auto-Detection Mode
The package automatically detects the current page context, so you can skip passing the page parameter:
import { test, expect } from "@playwright/test";
import { auto } from "@auto-browse/auto-browse";
test("simplified example", async ({ page }) => {
await page.goto("https://example.com");
// No need to pass page parameter
const headerText = await auto("get the header text");
await auto('type "Hello World" in the search box');
await auto("click the login button");
});BDD Mode with Playwright-BDD
Auto Browse integrates with playwright-bdd for behavior-driven development:
# features/homepage.feature
Feature: Playwright Home Page
Scenario: Check title
Given navigate to https://playwright.dev
When click link "Get started"
Then assert title "Installation"// One step definition handles all actions
import { auto } from "@auto-browse/auto-browse";
import { Given, When as aistep, Then } from "./fixtures";
aistep(/^(.*)$/, async ({ page }, action: string) => {
await auto(action, { page });
});Key Actions
// Navigation
await auto("go to https://example.com");
// Clicking
await auto("click the submit button");
// Typing
await auto('type "username" in the email field');
// Verification
await auto("verify the success message is visible");
// Taking snapshots
await auto("take a snapshot");Core Features
- Natural Language Commands - Write automation in plain English
- AI-Powered Intelligence - Smart element detection and interaction
- Auto Context Detection - Automatically manages browser and page contexts
- Multiple LLM Support - Works with OpenAI, Google AI, Anthropic, and more
- Playwright Integration - Seamless integration with Playwright tests
- TypeScript Support - Full type safety and IntelliSense
- Zero Configuration - Works out of the box with minimal setup
Documentation
📚 Full Documentation - Complete guides, examples, and API reference
Best Practices
- Be descriptive:
"click the submit button in the login form"vs"click submit" - Use quotes for values:
'type "John Doe" in the name field' - Take snapshots:
"take a snapshot"helps the AI understand page context
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Thanks to Playwright Team for creating Playwright MCP and Playwright BDD.
License
MIT
