Skip to main content

AI-powered browser automation copilot for testing

Project description

Browser Copilot ๐ŸŽฏ

A streamlined browser automation framework that uses AI-powered agents to execute natural language test scenarios.

Python Version PyPI Version CI Status License Code Coverage

๐ŸŽฏ Getting Started in 3 Minutes

Option 1: Install from PyPI (Recommended)

# 1. Install Browser Copilot from PyPI
pip install browser-copilot

# 2. Run the setup wizard (2 minutes)
browser-copilot --setup-wizard

# 3. Create a test file (test.md)
cat > test.md << 'EOF'
# My First Test
1. Go to https://www.google.com
2. Search for "Browser Copilot AI testing"
3. Click on the first result
4. Take a screenshot
EOF

# 4. Run your test!
browser-copilot test.md

Option 2: Install from Source

# 1. Clone and install
git clone https://github.com/smiao-icims/browser-copilot.git
cd browser-copilot
uv sync

# 2. Run the setup wizard
uv run browser-copilot --setup-wizard

# 3. Create and run your test
uv run browser-copilot test.md

That's it! You've just automated your first browser test. ๐ŸŽ‰

โœจ Features

  • ๐Ÿค– AI-Powered: Uses LLMs to understand and execute test instructions written in plain English
  • ๐ŸŽฏ Simple: Write tests in markdown - no coding required
  • ๐Ÿš€ Efficient: Single agent architecture with token optimization (20-30% reduction)
  • ๐Ÿ”ง Flexible: Supports multiple LLM providers via ModelForge (PyPI)
  • ๐Ÿ“Š Insightful: Enhanced reports with timing, token usage, and cost analysis
  • ๐ŸŒ Cross-Browser: Supports Chromium, Chrome, Firefox, Safari, Edge, and WebKit
  • ๐Ÿค Human-in-the-Loop: Intelligent AI assistance with optional interactive mode for clarifications
  • ๐Ÿ” Verbose Mode: Step-by-step debugging with dual console/file logging
  • ๐Ÿ’ฐ Cost Optimization: Built-in token optimization to reduce API costs
  • ๐Ÿ“ Multiple Formats: Export results as JSON, YAML, XML, JUnit, HTML, or Markdown
  • ๐ŸŽ›๏ธ Customizable: System prompts, browser settings, and optimization levels
  • ๐Ÿง™ Setup Wizard: Interactive configuration with arrow-key navigation
  • ๐ŸŒ Cross-Platform: Windows, macOS, and Linux support with proper UTF-8 encoding

๐Ÿš€ Quick Start - Get Testing in 3 Minutes!

1๏ธโƒฃ Install Browser Copilot

Option A: Install from PyPI (Recommended)

# Install with pip
pip install browser-copilot

# Or with uv (faster)
uv pip install browser-copilot

Option B: Install from Source

# Clone and install
git clone https://github.com/smiao-icims/browser-copilot.git
cd browser-copilot
curl -LsSf https://astral.sh/uv/install.sh | sh  # Install uv if needed
uv sync  # Install dependencies

2๏ธโƒฃ Run Setup Wizard (2 minutes)

# If installed from PyPI:
browser-copilot --setup-wizard

# If installed from source:
uv run browser-copilot --setup-wizard

The wizard will guide you through:

  • ๐Ÿค– Selecting an LLM provider (GitHub Copilot recommended - no API key!)
  • ๐Ÿ” Authentication setup
  • ๐ŸŒ Browser configuration
  • โœ… Validation with a test prompt

3๏ธโƒฃ Create Your First Test

Create a file my-test.md with natural language instructions:

# My First Test

1. Navigate to https://www.wikipedia.org
2. Search for "artificial intelligence"
3. Verify the page shows results about AI
4. Take a screenshot

4๏ธโƒฃ Run Your Test!

# If installed from PyPI:
browser-copilot my-test.md

# If installed from source:
uv run browser-copilot my-test.md

# That's it! ๐ŸŽ‰ You've just automated your first browser test.

๐ŸŽฏ Try Our Example Tests

Note: If you installed from PyPI, first download the examples:

# Download examples
curl -O https://raw.githubusercontent.com/smiao-icims/browser-copilot/main/examples/saucedemo-shopping.md
curl -O https://raw.githubusercontent.com/smiao-icims/browser-copilot/main/examples/google-ai-search.md

E-commerce Shopping Flow

# Run a complete shopping cart test
browser-copilot saucedemo-shopping.md

# Or from source repository:
uv run browser-copilot examples/saucedemo-shopping.md

This example demonstrates:

  • Login with test credentials
  • Adding products to cart
  • Checkout process with form filling
  • Order confirmation

AI-Powered Search

# Test Google's AI search features
browser-copilot google-ai-search.md

# Or from source repository:
uv run browser-copilot examples/google-ai-search.md

This example shows:

  • Navigating to Google
  • Using AI-powered search
  • Verifying AI-generated responses
  • Taking screenshots of results

๐Ÿ‘‰ Check out more examples in the examples/ directory!

๐Ÿ’ก Pro Tips for Quick Success

# Save typing with an alias
alias bp="browser-copilot"  # For PyPI installation
# or
alias bp="uv run browser-copilot"  # For source installation

# Run any test headless
bp your-test.md --headless

# Get beautiful HTML reports
bp your-test.md --output-format html --output-file report.html

# Save money with token optimization
bp your-test.md --compression-level high  # 30% less tokens!

# Debug failing tests
bp failing-test.md --verbose --save-trace

๐Ÿ‘‰ See More Examples | ๐Ÿ“˜ Full Quick Start Guide

๐Ÿ“ Writing Tests

Tests are written in simple markdown format with numbered steps:

# Login Test

1. Navigate to https://example.com/login
2. Click on the email input field
3. Type "user@example.com"
4. Click on the password field
5. Type "securepassword123"
6. Click the "Login" button
7. Verify that the dashboard page is displayed
8. Take a screenshot of the dashboard

๐Ÿ“Š Example Output

โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—
โ•‘      Browser Copilot v1.0                 โ•‘
โ•‘   Simple โ€ข Reliable โ€ข Token Efficient     โ•‘
โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•

๐Ÿ“„ Test Suite: login_test.md
   Size: 245 chars

๐Ÿค– Provider: github_copilot
   Model: gpt-4o

๐Ÿš€ Executing test...
   Browser: chromium
   Mode: Headed

--------------------------------------------------
Status: โœ… PASSED
Duration: 28.3s
Steps: 15

๐Ÿ“Š Token Usage:
   Total: 12,847
   Prompt: 12,214
   Completion: 633
   Cost: $0.0421

๐Ÿ’ก Token Optimization:
   Reduction: 23.5%
   Tokens Saved: 3,200
   Cost Savings: $0.0096
   Strategies: whitespace, phrases, redundancy

๐Ÿ“ Results saved:
   - report: report_20250726_173422.md
   - results: results_20250726_173422.json

๐Ÿ†• New Features in v1.1.0

๐Ÿค Human-in-the-Loop (HIL) Mode

Browser Copilot now includes intelligent Human-in-the-Loop capabilities that allow the AI to ask for clarification when needed:

# HIL is enabled by default - the AI will make smart decisions
browser-copilot test.md

# Disable HIL for fully autonomous execution
browser-copilot test.md --no-hil

# Enable interactive mode for real human input during testing
browser-copilot test.md --hil-interactive

Key HIL Features:

  • ๐Ÿค– Smart Defaults: AI provides intelligent responses when clarification is needed
  • ๐Ÿ”„ Multi-turn Conversations: Seamlessly continues after interruptions
  • ๐Ÿ’ฌ Interactive Mode: Get prompted for real input during test development
  • ๐Ÿ›ก๏ธ Safety Features: Exit commands (exit/quit/stop) and 50-interaction limit
  • ๐ŸŽฏ Context-Aware: Uses the same LLM as your main agent for consistency

Example HIL Interaction:

๐Ÿค” HUMAN INPUT REQUIRED
============================================================
Question: Should I click "Accept All Cookies" or "Reject All"?
Context: Testing privacy compliance on the website

๐Ÿ’ก AI Response: I'll click "Reject All" to test the website's behavior
with minimal cookies, which is important for privacy compliance testing.
============================================================

๐Ÿ†• Additional Features

๐Ÿ” Enhanced Verbose Mode

# Enable detailed step-by-step logging
browser-copilot test.md --verbose

# Logs are saved to ~/.browser_copilot/logs/
# Both console and file output for debugging

๐Ÿ’ฐ Token Optimization

# Control optimization level
browser-copilot test.md --compression-level high  # 30% reduction
browser-copilot test.md --compression-level medium # 20% reduction (default)
browser-copilot test.md --compression-level low   # 10% reduction
browser-copilot test.md --no-token-optimization   # Disable

๐Ÿ“ค Flexible Output Options

# Different output formats
browser-copilot test.md --output-format json
browser-copilot test.md --output-format yaml
browser-copilot test.md --output-format xml
browser-copilot test.md --output-format junit
browser-copilot test.md --output-format html
browser-copilot test.md --output-format markdown

# Output to file instead of console
browser-copilot test.md --output-file results.json

๐ŸŽ›๏ธ Custom System Prompts

# Use custom instructions
browser-copilot test.md --system-prompt custom-prompt.txt

# Example prompt file:
cat > prompt.txt << EOF
You are a meticulous QA engineer.
Always take screenshots before and after actions.
Wait 2 seconds after each navigation.
EOF

๐Ÿ”ง Configuration Management

# Save current settings as defaults
browser-copilot test.md --provider openai --model gpt-4 --save-config

# Use custom config file
browser-copilot test.md --config my-config.json

# Environment variables (override config file)
export BROWSER_PILOT_PROVIDER=anthropic
export BROWSER_PILOT_MODEL=claude-3-opus
export BROWSER_PILOT_BROWSER=firefox

๐ŸŽฏ Context Management

Browser Copilot includes intelligent context management to optimize token usage:

# Use different context strategies
browser-copilot test.md --context-strategy sliding-window  # Default
browser-copilot test.md --context-strategy langchain-trim  # Most efficient
browser-copilot test.md --context-strategy no-op          # No trimming

# Configure window size (tokens)
browser-copilot test.md --context-window-size 10000

# See token reduction in action
browser-copilot test.md --verbose
# Output: [Sliding Window Hook] Token reduction: 48.9%

Context management can reduce token usage by 40-70% on longer tests. Learn more โ†’

๐Ÿ”ง Configuration

Prerequisites

  1. Python 3.11+ (required by ModelForge)
  2. Node.js (for Playwright MCP server)
  3. uv - Fast Python package installer and resolver
  4. ModelForge configured with at least one LLM provider

Command Line Options

positional arguments:
  test_scenario         Test scenario file path or '-' for stdin

options:
  -h, --help           Show help message
  --provider PROVIDER  LLM provider (uses ModelForge discovery if not specified)
  --model MODEL        Model name (uses provider default if not specified)
  --browser BROWSER    Browser: chromium, chrome, firefox, safari, edge
  --headless           Run browser in headless mode
  --viewport-width W   Browser viewport width (default: 1920)
  --viewport-height H  Browser viewport height (default: 1080)
  -v, --verbose        Enable verbose output with step-by-step debugging
  -q, --quiet          Suppress all output except errors
  --output-format FMT  Output format: json, yaml, xml, junit, html, markdown
  --output-file FILE   Save results to file (stdout if not specified)
  --system-prompt FILE Custom system prompt file
  --timeout SECONDS    Test execution timeout
  --retry COUNT        Number of retries on failure
  --no-screenshots     Disable screenshot capture
  --no-token-optimization  Disable token optimization
  --config FILE        Path to configuration file
  --save-config        Save current settings as defaults

  context management:
  --context-strategy   Strategy: no-op, sliding-window, langchain-trim
  --context-window-size SIZE  Max tokens for context window
  --context-preserve-window N  Messages to always preserve
  --context-preserve-first N   Keep first N messages
  --context-preserve-last N    Keep last N messages

Setting up ModelForge

# ModelForge is already installed with Browser Copilot (via model-forge-llm package)
# Just configure a provider:

# Configure a provider (e.g., GitHub Copilot)
modelforge config add --provider github_copilot --model gpt-4o

# Check configuration
modelforge config show

๐Ÿ“ Project Structure

browser-copilot/
โ”œโ”€โ”€ browser_copilot/        # Main package
โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚   โ”œโ”€โ”€ __main__.py        # CLI entry point
โ”‚   โ”œโ”€โ”€ core.py            # Core automation engine
โ”‚   โ”œโ”€โ”€ cli.py             # Command-line interface
โ”‚   โ”œโ”€โ”€ reporter.py        # Report generation
โ”‚   โ”œโ”€โ”€ config_manager.py  # Configuration management
โ”‚   โ”œโ”€โ”€ storage_manager.py # Local storage handling
โ”‚   โ”œโ”€โ”€ io_handlers.py     # Input/output formatting
โ”‚   โ”œโ”€โ”€ verbose_logger.py  # Enhanced logging
โ”‚   โ”œโ”€โ”€ token_optimizer.py # Token optimization
โ”‚   โ””โ”€โ”€ test_enhancer.py   # Test suite enhancement
โ”œโ”€โ”€ examples/              # Example test suites
โ”‚   โ”œโ”€โ”€ google-ai-search.md    # Google AI search test
โ”‚   โ””โ”€โ”€ saucedemo-shopping.md  # E-commerce shopping cart test
โ”œโ”€โ”€ docs/                  # Documentation
โ”‚   โ””โ”€โ”€ specs/            # Technical specifications
โ””โ”€โ”€ tests/                 # Unit tests

๐Ÿ“‚ Local Storage

Browser Copilot stores data in a consistent location across all platforms:

  • All platforms: ~/.browser_copilot/

Storage structure:

~/.browser_copilot/
โ”œโ”€โ”€ logs/         # Verbose execution logs
โ”œโ”€โ”€ settings/     # Configuration files
โ”œโ”€โ”€ reports/      # Test reports
โ”œโ”€โ”€ screenshots/  # Captured screenshots
โ”œโ”€โ”€ cache/        # Temporary files
โ””โ”€โ”€ memory/       # Future: persistent memory

๐ŸŽ“ Learn More

๐ŸŒŸ Example Test Suites

Learn from our comprehensive examples in the examples/ directory:

๐Ÿ›’ saucedemo-shopping.md

Complete e-commerce workflow including:

  • User authentication
  • Product browsing and selection
  • Shopping cart management
  • Multi-step checkout process
  • Order confirmation

๐Ÿ” google-ai-search.md

AI-powered search testing:

  • Google AI mode activation
  • Search query execution
  • AI response validation
  • Screenshot capture
  • Different search scenarios

Run any example:

# With PyPI installation (after downloading examples):
browser-copilot saucedemo-shopping.md
browser-copilot google-ai-search.md --headless

# With source installation:
uv run browser-copilot examples/saucedemo-shopping.md
uv run browser-copilot examples/google-ai-search.md --headless

๐Ÿค Contributing

We welcome contributions! Please see our Contributing Guide for details.

Development Setup

# Install with dev dependencies
uv sync --extra dev

# Run tests
uv run pytest

# Run linting
uv run ruff check .

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgments


Browser Copilot - Making browser testing as easy as writing a todo list ๐Ÿ“
Made with โค๏ธ by the Browser Copilot Team

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

browser_copilot-1.2.0.tar.gz (502.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

browser_copilot-1.2.0-py3-none-any.whl (125.9 kB view details)

Uploaded Python 3

File details

Details for the file browser_copilot-1.2.0.tar.gz.

File metadata

  • Download URL: browser_copilot-1.2.0.tar.gz
  • Upload date:
  • Size: 502.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for browser_copilot-1.2.0.tar.gz
Algorithm Hash digest
SHA256 a33c141b28cea2ed7e2fb5c03883a49c66b5399cd50da96b1b81582e8c3a5af9
MD5 1c0241f7e7e218db672b102229c57d66
BLAKE2b-256 2755426e7d4fac291dc9e769a8918c95837a019c17c42b3999be17d5725aa4de

See more details on using hashes here.

Provenance

The following attestation bundles were made for browser_copilot-1.2.0.tar.gz:

Publisher: publish.yml on smiao-icims/browser-copilot

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file browser_copilot-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: browser_copilot-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 125.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for browser_copilot-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 948624258347b7d26d91b83b12dca86cf56a3b1a93429805069371221f9bb823
MD5 71d32b895f5215286f2bca50deb3e01d
BLAKE2b-256 60a25aef5dd9eb96285f4371a49693b9ad3d897f36a1e94ca41d17457f301773

See more details on using hashes here.

Provenance

The following attestation bundles were made for browser_copilot-1.2.0-py3-none-any.whl:

Publisher: publish.yml on smiao-icims/browser-copilot

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page