AI-powered browser automation with multi-model intelligence.
SmartBrowser is an intelligent browser agent that uses LLMs to autonomously navigate the web, perform research, and complete complex tasks — all through a sleek dark-themed Gradio interface.
- Multi-Model Support — Seamlessly switch between Groq (Llama 3.3, Llama 4, Qwen 3), OpenRouter (Gemini Flash, DeepSeek R1), OpenAI, Anthropic, Google, DeepSeek, Ollama, and more
- Browser Agent — AI navigates real websites, fills forms, clicks buttons, and extracts data
- Deep Research — Multi-step autonomous research with planning, parallel browser searches, and report synthesis
- Custom Browser — Use your own Chrome profile (no re-login needed) with HD recording
- Profile Presets — Pick detected Chrome/Edge default profiles from a dropdown in Browser Settings
- Persistent Sessions — Keep the browser open between tasks for continuous workflow
- Professional Dark UI — Clean, modern dark theme with smooth animations
git clone <your-repo-url>
cd SmartBrowser
python -m venv .venvActivate the virtual environment:
# Windows
.venv\Scripts\activate
# macOS/Linux
source .venv/bin/activatepip install -r requirements.txt
playwright install chromiumcopy .env.example .envEdit .env and add your API keys:
# Get a free key at https://console.groq.com
GROQ_API_KEY=gsk_your_key_here
# Get a free key at https://openrouter.ai/keys
OPENROUTER_API_KEY=sk-or-v1-your_key_herepython webui.pyOpen http://127.0.0.1:7788 in your browser.
- Go to ⚙️ Agent Settings → Select Groq as provider → Choose a model (e.g.
llama-3.3-70b-versatile) - (Optional) Enable Force Task Planning to always run planning before execution
- Go to 🌐 Browser Settings and choose Default Browser Profile (
Chrome - Default/Edge - Default) or keep custom manual paths - Go to 🤖 Run Agent → Enter your task → Click Run
- Watch the AI navigate in real-time
- In 🤖 Run Agent, click the upload
+button and attach an image, text file, or PDF - The agent receives grounded context from uploaded files and can use upload actions on target websites
- For PDFs, SmartBrowser extracts a short local text context when possible to reduce hallucination
- Go to 🔬 Deep Research → Enter a research topic
- The agent creates a research plan, opens multiple browser tabs, and synthesizes a report
- Download the final markdown report when complete
| Setting | Description | Default |
|---|---|---|
DEFAULT_LLM |
Default LLM provider | groq |
GROQ_ENDPOINT |
Groq API endpoint | https://api.groq.com/openai/v1 |
OPENROUTER_ENDPOINT |
OpenRouter API endpoint | https://openrouter.ai/api/v1 |
KEEP_BROWSER_OPEN |
Keep browser open between tasks | true |
BROWSER_USE_LOGGING_LEVEL |
Log verbosity (result, info, debug) |
info |
SmartBrowser/
├── webui.py # Entry point
├── src/
│ ├── agent/
│ │ ├── browser_use/ # Browser automation agent
│ │ └── deep_research/ # Deep research agent with LangGraph
│ ├── utils/
│ │ ├── config.py # Provider & model configuration
│ │ └── llm_provider.py # LLM provider factory
│ └── webui/
│ ├── interface.py # UI layout & dark theme
│ └── components/ # Gradio tab components
├── .env.example # Environment template
└── requirements.txt # Python dependencies
webui.pylaunches the Gradio interface and tab wiring.src/webui/components/agent_settings_tab.pycontrols LLM/provider/planner configuration.src/webui/components/browser_settings_tab.pycontrols browser runtime settings, including profile presets.src/webui/components/browser_use_agent_tab.pyruns interactive browser-use tasks and streaming UI updates.src/agent/browser_use/browser_use_agent.pyextends browser-use with reliability backoff and fail-fast guards.src/agent/deep_research/deep_research_agent.pyorchestrates multi-step planning, parallel browser tasks, and report synthesis.src/controller/custom_controller.pyadds custom actions like assisted upload and MCP tool registration.src/browser/custom_browser.pyandsrc/browser/custom_context.pywrap Playwright browser/context behavior.
- Added browser profile dropdown with Chrome/Edge preset detection.
- Added planner fallback so tasks can be planned even when no dedicated planner model is chosen.
- Added stronger navigation guardrails to reduce random URL retries and hallucinated domains.
- Removed expensive post-task site-description LLM call that consumed extra tokens.
- Added duplicate-query filtering in deep research parallel search tool.
- Improved uploaded file reliability by passing uploaded paths to agent actions and parsing PDF/text context.
- Fixed SmartBrowser header title visibility when gradient text rendering is unsupported.
This project is for personal and educational use.