Metadata-Version: 2.4
Name: browser-agent
Version: 1.0.0
Summary: AI-powered web browser automation with multi-LLM support and modern GUI
Home-page: https://github.com/yourusername/browser-agent
Author: Browser Agent Team
Author-email: Browser Agent Team <aryanvbw@gmail.com>
Maintainer-email: Browser Agent Team <aryanvbw@gmail.com>
License: MIT
Project-URL: Homepage, https://github.com/AryanVBW/browser-agent
Project-URL: Documentation, https://browser-agent.readthedocs.io
Project-URL: Repository, https://github.com/AryanVBW/browser-agent.git
Project-URL: Bug Tracker, https://github.com/AryanVBW/browser-agent/issues
Project-URL: Changelog, https://github.com/AryanVBW/browser-agent/blob/main/CHANGELOG.md
Keywords: automation,browser,ai,selenium,playwright,gui,llm,web-scraping,testing,rpa,natural-language,openai,anthropic,cli,cross-platform,mcp
Platform: any
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: End Users/Desktop
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: MacOS
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Internet :: WWW/HTTP :: Browsers
Classifier: Topic :: Software Development :: Testing
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: System :: Systems Administration
Classifier: Topic :: Utilities
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Environment :: Console
Classifier: Environment :: Web Environment
Classifier: Environment :: X11 Applications :: Qt
Classifier: Framework :: Pytest
Classifier: Typing :: Typed
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: selenium>=4.15.0
Requires-Dist: webdriver-manager>=4.0.0
Requires-Dist: playwright>=1.40.0
Requires-Dist: beautifulsoup4>=4.12.0
Requires-Dist: requests>=2.31.0
Requires-Dist: openai>=1.3.0
Requires-Dist: python-dotenv>=1.0.0
Requires-Dist: schedule>=1.2.0
Requires-Dist: psutil>=5.9.0
Requires-Dist: colorama>=0.4.0
Requires-Dist: pydantic>=2.5.0
Requires-Dist: typing-extensions>=4.8.0
Requires-Dist: pillow>=10.0.0
Requires-Dist: customtkinter>=5.2.0
Requires-Dist: google-generativeai>=0.3.0
Requires-Dist: anthropic>=0.7.0
Requires-Dist: aiofiles>=23.0.0
Requires-Dist: pyautogui>=0.9.54
Requires-Dist: opencv-python>=4.8.0
Requires-Dist: mcp>=1.0.0
Requires-Dist: jsonrpc-requests>=0.4.0
Requires-Dist: websockets>=12.0
Requires-Dist: aiohttp>=3.9.0
Requires-Dist: click>=8.1.0
Requires-Dist: rich>=13.7.0
Requires-Dist: typer>=0.9.0
Requires-Dist: PyYAML>=6.0.1
Requires-Dist: loguru>=0.7.2
Requires-Dist: tenacity>=8.2.3
Requires-Dist: jinja2>=3.1.2
Requires-Dist: packaging>=23.2
Requires-Dist: platformdirs>=4.1.0
Requires-Dist: cryptography>=41.0.7
Requires-Dist: httpx>=0.25.2
Requires-Dist: asyncio-mqtt>=0.16.1
Requires-Dist: python-multipart>=0.0.6
Requires-Dist: uvloop>=0.19.0; sys_platform != "win32"
Requires-Dist: winloop>=0.1.0; sys_platform == "win32"
Provides-Extra: ai
Requires-Dist: openai>=1.6.0; extra == "ai"
Requires-Dist: anthropic>=0.8.0; extra == "ai"
Requires-Dist: google-generativeai>=0.3.0; extra == "ai"
Requires-Dist: cohere>=4.37; extra == "ai"
Requires-Dist: transformers>=4.36.0; extra == "ai"
Requires-Dist: torch>=2.1.0; extra == "ai"
Requires-Dist: sentence-transformers>=2.2.2; extra == "ai"
Provides-Extra: gui
Requires-Dist: PyQt6>=6.6.0; extra == "gui"
Requires-Dist: PySide6>=6.6.0; extra == "gui"
Requires-Dist: tkinter-tooltip>=2.1.0; extra == "gui"
Requires-Dist: customtkinter>=5.2.0; extra == "gui"
Requires-Dist: ttkbootstrap>=1.10.1; extra == "gui"
Provides-Extra: web
Requires-Dist: fastapi>=0.104.0; extra == "web"
Requires-Dist: uvicorn[standard]>=0.24.0; extra == "web"
Requires-Dist: starlette>=0.27.0; extra == "web"
Requires-Dist: websockets>=12.0; extra == "web"
Requires-Dist: sse-starlette>=1.8.2; extra == "web"
Provides-Extra: db
Requires-Dist: sqlalchemy>=2.0.23; extra == "db"
Requires-Dist: alembic>=1.13.0; extra == "db"
Requires-Dist: asyncpg>=0.29.0; extra == "db"
Requires-Dist: aiosqlite>=0.19.0; extra == "db"
Requires-Dist: redis>=5.0.1; extra == "db"
Requires-Dist: motor>=3.3.2; extra == "db"
Provides-Extra: cloud
Requires-Dist: boto3>=1.34.0; extra == "cloud"
Requires-Dist: azure-storage-blob>=12.19.0; extra == "cloud"
Requires-Dist: google-cloud-storage>=2.10.0; extra == "cloud"
Requires-Dist: kubernetes>=28.1.0; extra == "cloud"
Requires-Dist: docker>=6.1.3; extra == "cloud"
Provides-Extra: monitoring
Requires-Dist: prometheus-client>=0.19.0; extra == "monitoring"
Requires-Dist: opentelemetry-api>=1.21.0; extra == "monitoring"
Requires-Dist: opentelemetry-sdk>=1.21.0; extra == "monitoring"
Requires-Dist: opentelemetry-instrumentation>=0.42b0; extra == "monitoring"
Requires-Dist: sentry-sdk>=1.38.0; extra == "monitoring"
Requires-Dist: structlog>=23.2.0; extra == "monitoring"
Provides-Extra: dev
Requires-Dist: pytest>=7.4.3; extra == "dev"
Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
Requires-Dist: pytest-mock>=3.12.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.21.1; extra == "dev"
Requires-Dist: pytest-xdist>=3.5.0; extra == "dev"
Requires-Dist: pytest-html>=4.1.1; extra == "dev"
Requires-Dist: pytest-benchmark>=4.0.0; extra == "dev"
Requires-Dist: black>=23.11.0; extra == "dev"
Requires-Dist: isort>=5.12.0; extra == "dev"
Requires-Dist: flake8>=6.1.0; extra == "dev"
Requires-Dist: mypy>=1.7.1; extra == "dev"
Requires-Dist: pylint>=3.0.3; extra == "dev"
Requires-Dist: bandit>=1.7.5; extra == "dev"
Requires-Dist: safety>=2.3.5; extra == "dev"
Requires-Dist: pre-commit>=3.6.0; extra == "dev"
Requires-Dist: tox>=4.11.4; extra == "dev"
Requires-Dist: coverage>=7.3.2; extra == "dev"
Requires-Dist: sphinx>=7.2.6; extra == "dev"
Requires-Dist: sphinx-rtd-theme>=1.3.0; extra == "dev"
Requires-Dist: myst-parser>=2.0.0; extra == "dev"
Requires-Dist: build>=1.0.3; extra == "dev"
Requires-Dist: twine>=4.0.2; extra == "dev"
Requires-Dist: wheel>=0.42.0; extra == "dev"
Requires-Dist: setuptools-scm>=8.0.4; extra == "dev"
Requires-Dist: pip-tools>=7.3.0; extra == "dev"
Requires-Dist: bump2version>=1.0.1; extra == "dev"
Requires-Dist: gitpython>=3.1.40; extra == "dev"
Requires-Dist: watchdog>=3.0.0; extra == "dev"
Requires-Dist: ipython>=8.17.2; extra == "dev"
Requires-Dist: ipdb>=0.13.13; extra == "dev"
Requires-Dist: jupyter>=1.0.0; extra == "dev"
Requires-Dist: notebook>=7.0.6; extra == "dev"
Requires-Dist: memory-profiler>=0.61.0; extra == "dev"
Requires-Dist: line-profiler>=4.1.1; extra == "dev"
Requires-Dist: py-spy>=0.3.14; extra == "dev"
Provides-Extra: test
Requires-Dist: pytest>=7.4.3; extra == "test"
Requires-Dist: pytest-cov>=4.1.0; extra == "test"
Requires-Dist: pytest-mock>=3.12.0; extra == "test"
Requires-Dist: pytest-asyncio>=0.21.1; extra == "test"
Requires-Dist: pytest-xdist>=3.5.0; extra == "test"
Requires-Dist: pytest-html>=4.1.1; extra == "test"
Requires-Dist: pytest-benchmark>=4.0.0; extra == "test"
Requires-Dist: pytest-timeout>=2.2.0; extra == "test"
Requires-Dist: pytest-repeat>=0.9.3; extra == "test"
Requires-Dist: pytest-randomly>=3.15.0; extra == "test"
Requires-Dist: pytest-sugar>=0.9.7; extra == "test"
Requires-Dist: pytest-clarity>=1.0.1; extra == "test"
Requires-Dist: factory-boy>=3.3.0; extra == "test"
Requires-Dist: faker>=20.1.0; extra == "test"
Requires-Dist: responses>=0.24.1; extra == "test"
Requires-Dist: httpx>=0.25.2; extra == "test"
Requires-Dist: aioresponses>=0.7.4; extra == "test"
Requires-Dist: freezegun>=1.2.2; extra == "test"
Requires-Dist: time-machine>=2.13.0; extra == "test"
Provides-Extra: docs
Requires-Dist: sphinx>=7.2.6; extra == "docs"
Requires-Dist: sphinx-rtd-theme>=1.3.0; extra == "docs"
Requires-Dist: sphinx-autodoc-typehints>=1.25.2; extra == "docs"
Requires-Dist: myst-parser>=2.0.0; extra == "docs"
Requires-Dist: sphinx-copybutton>=0.5.2; extra == "docs"
Requires-Dist: sphinx-design>=0.5.0; extra == "docs"
Requires-Dist: sphinxcontrib-mermaid>=0.9.2; extra == "docs"
Requires-Dist: sphinx-tabs>=3.4.4; extra == "docs"
Requires-Dist: sphinx-togglebutton>=0.3.2; extra == "docs"
Requires-Dist: nbsphinx>=0.9.3; extra == "docs"
Requires-Dist: pandoc>=2.3; extra == "docs"
Requires-Dist: docutils>=0.20.1; extra == "docs"
Provides-Extra: all
Requires-Dist: browser-agent[ai,cloud,db,gui,monitoring,web]; extra == "all"
Provides-Extra: full
Requires-Dist: browser-agent[all,dev,docs,test]; extra == "full"
Dynamic: author
Dynamic: home-page
Dynamic: license-file
Dynamic: platform
Dynamic: requires-python

# Browser Agent

A powerful, production-ready browser automation platform that combines multi-browser support with AI-driven automation capabilities. Built for developers, QA engineers, and automation enthusiasts who need reliable, scalable web automation solutions.

## 🚀 Features

### Core Capabilities
- **🌐 Multi-Browser Support** - Chrome, Firefox, Safari, and Edge with unified API
- **🤖 AI-Powered Automation** - Intelligent web interaction and task execution
- **🔌 MCP Integration** - Model Context Protocol support for enhanced AI capabilities
- **🖥️ Dual Interface** - Both GUI and CLI for different use cases
- **🧩 Plugin Architecture** - Extensible system with custom plugins
- **☁️ Cloud Ready** - Docker and Kubernetes deployment support
- **🔒 Enterprise Security** - Secure credential management and audit logging

### Platform Support
- ✅ **Windows** (10, 11)
- ✅ **macOS** (10.15+)
- ✅ **Linux** (Ubuntu 18.04+, CentOS 7+)
- ✅ **Docker** containers
- ✅ **Kubernetes** clusters

[![Python Version](https://img.shields.io/badge/python-3.8%2B-blue.svg)](https://python.org)
[![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
[![Platform](https://img.shields.io/badge/platform-Windows%20%7C%20macOS%20%7C%20Linux-lightgrey.svg)]()
[![Code Style](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)

## 🎯 Overview

Browser Agent is an AI-powered web automation tool that lets you control browsers using natural language. Simply tell the AI what you want to accomplish, and it will intelligently navigate websites, fill forms, extract data, and perform complex web tasks.

### Key Features
- **🧠 Multi-AI Support**: OpenAI GPT, Claude, and Gemini models
- **🌐 Multi-Browser**: Chrome, Firefox, Edge, Safari support
- **🎨 Modern GUI**: Intuitive interface with real-time feedback
- **🔌 MCP Integration**: Model Context Protocol support
- **🧩 Plugin System**: Extensible architecture
- **🐳 Docker Ready**: Container and cloud deployment

---

## 🖼️ Screenshots

![Chat Interface](assets/img/chat.png)
![Brain/LLM Configuration](assets/img/Brain:LLM.png)
![Task Log](assets/img/tasklog.png)
![Settings](assets/img/settings.png)

---

## 🚀 Quick Start

### Option 1: Local Installation

```bash
# Clone the repository
git clone https://github.com/AryanVBW/browser-agent.git
cd browser-agent

# Quick setup with make (recommended)
make install
make run

# Or manual setup
pip install -r requirements.txt
python -m browser_agent
```

### Option 2: Docker (Recommended for Production)

```bash
# Quick start with Docker Compose
docker-compose -f deployment/docker-compose.yml up -d

# Or build and run manually
docker build -f deployment/Dockerfile -t browser-agent .
docker run -p 8080:8080 -e API_KEY="your-key" browser-agent
```

### Option 3: Development Setup

```bash
# Development environment with all tools
make dev-install
make dev-setup
make test

# Start development server
make dev-run
```

## 📚 Documentation

- **[Contributing Guide](docs/CONTRIBUTING.md)** - How to contribute
- **[Examples](examples/)** - Ready-to-run examples
- **[Configuration](config/README.md)** - Configuration options
- **[Testing](tests/README.md)** - Running tests
- **[Deployment](deployment/README.md)** - Docker & cloud deployment

## 🛠️ Development

**Prerequisites:** Python 3.8+, Docker, Git

```bash
# Setup
git clone https://github.com/AryanVBW/browser-agent.git
cd browser-agent
make dev-install

# Development
make test          # Run tests
make lint          # Code linting
make format        # Format code
make docker-build  # Build Docker image
```

## 🤝 Contributing

We welcome contributions from the community! Here's how you can help:

### Ways to Contribute
- 🐛 **Report bugs** - Use our [bug report template](.github/ISSUE_TEMPLATE/bug_report.yml)
- 💡 **Suggest features** - Use our [feature request template](.github/ISSUE_TEMPLATE/feature_request.yml)
- 📝 **Improve documentation** - Help make our docs better
- 🔧 **Submit code** - Fix bugs or implement features
- 🧪 **Write tests** - Improve test coverage
- 🎨 **Design improvements** - UI/UX enhancements



---

<div align="center">

**[📚 Documentation](docs/) • [🚀 Quick Start](#-quick-start) • [🤝 Contributing](docs/CONTRIBUTING.md) • [🐛 Issues](https://github.com/AryanVBW/browser-agent/issues) • [💬 Discussions](https://github.com/AryanVBW/browser-agent/discussions)**

*Built with ❤️ for the automation community*

</div>
