Skip to content

smiao-icims/browser-copilot

Repository files navigation

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

✨ 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

Prerequisites

Before installing Browser Copilot, ensure you have:

  • Python 3.11+ (required by ModelForge)
  • Node.js (for Playwright MCP server)
  • Git (for cloning the repository)

Option A: Install from PyPI (Recommended)

Step 1: Set up a virtual environment

# Create a new directory for your project
mkdir browser-copilot-project
cd browser-copilot-project

# Create a virtual environment
python -m venv venv

# Activate the virtual environment
# On Windows:
venv\Scripts\activate
# On macOS/Linux:
source venv/bin/activate

# Verify Python version (must be 3.11+)
python --version

Step 2: Install Browser Copilot

# Install with pip
pip install browser-copilot

# Or with uv (faster - recommended)
# First install uv if you don't have it
curl -LsSf https://astral.sh/uv/install.sh | sh
uv pip install browser-copilot

Option B: Install from Source

Step 1: Set up a virtual environment

# Clone the repository
git clone https://github.com/smiao-icims/browser-copilot.git
cd browser-copilot

# Create a virtual environment
python -m venv venv

# Activate the virtual environment
# On Windows:
venv\Scripts\activate
# On macOS/Linux:
source venv/bin/activate

# Verify Python version (must be 3.11+)
python --version

Step 2: Install dependencies

# Install uv if you don't have it
curl -LsSf https://astral.sh/uv/install.sh | sh

# Install project dependencies
uv sync

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.google.com
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

πŸ”§ Troubleshooting Common Issues

Virtual Environment Issues:

# If you get "command not found" errors:
# Make sure your virtual environment is activated
# You should see (venv) at the start of your command prompt

# To reactivate if needed:
source venv/bin/activate  # macOS/Linux
# or
venv\Scripts\activate     # Windows

Python Version Issues:

# Check your Python version
python --version

# If it's below 3.11, upgrade Python or use pyenv
# On macOS with Homebrew:
brew install python@3.11

# On Ubuntu/Debian:
sudo apt update
sudo apt install python3.11 python3.11-venv

Node.js Issues:

# Check Node.js version
node --version

# If not installed, install Node.js:
# On macOS with Homebrew:
brew install node

# On Ubuntu/Debian:
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt-get install -y nodejs

Permission Issues:

# If you get permission errors on macOS/Linux:
sudo chown -R $(whoami) ~/.browser_copilot/

πŸ‘‰ 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

About

AI-powered browser automation framework

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published