A highly sophisticated, AI-powered desktop web browser engineered with Python and PyQt6 (QtWebEngine).
The crown feature of Nova Browser.
Press Ctrl + 5 at any time to instantly toggle a transparent floating AI assistant over any web page β no tab switching, no interruptions.
- Instant access β one keystroke from anywhere in the browser
- Context-aware β reads and summarizes the current page on demand
- Multi-model routing β switch between Gemini, Groq, and local Ollama
- Smart Selection Watcher β highlight any text for instant AI insights
- Dismiss anytime β press
Ctrl + 5again or click outside to close
- Multi-Tab Browsing β add, remove, and navigate tabs seamlessly
- Bookmarks Manager β save favourite pages with persistent storage
- Browsing History β auto-logged, searchable, with one-click clear
- Download Manager β built-in queue with progress tracking and cancel support
- Ad & Tracker Blocking β integrated domain filter via
ad_blocker.py - Hardware Acceleration β Chromium core (QtWebEngine) for smooth rendering and High-DPI support
A pre-built Windows executable is ready in the output/ folder.
- Go to the
output/folder in this repo - Click
NovaBrowser.exe - Click β¬οΈ Download raw file (top-right of the file preview)
- Double-click the downloaded file to launch β no setup needed
β οΈ Windows SmartScreen may appear. Click "More info" β "Run anyway" to proceed.
- Python 3.11+
- Git
git clone https://github.com/Haseeb-code1/web-browser-.git
cd web-browser-
pip install -r requirements.txtpython main.pyWindows users can also double-click run.bat.
pytest tests/pyinstaller --onefile --windowed main.py
# Output β dist/main.exeOr use the provided PowerShell script:
.\build_installer.ps1| Shortcut | Action |
|---|---|
Ctrl + 5 |
β¨ Toggle AI Floating Panel |
Ctrl + T |
New Tab |
Ctrl + W |
Close Tab |
Ctrl + L |
Focus Address Bar |
Ctrl + R |
Reload Page |
Alt + β |
Go Back |
Alt + β |
Go Forward |
Ctrl + D |
Bookmark Page |
Ctrl + H |
History |
Ctrl + J |
Downloads |
web-browser-/
βββ main.py # Entry point & splash screen launcher
βββ requirements.txt # Python dependencies
βββ run.bat # Quick launch script
βββ Dockerfile # Containerization config
βββ docker-compose.yml
β
βββ scripts/
β βββ build_installer.ps1 # Builds the .exe and installer
β βββ github_setup.py # CI/CD and repo setup
β
βββ src/
βββ ai_assistant/ # π§ AI Integration Layer
β βββ floating_bot.py # Floating panel logic (Ctrl + 5)
β βββ model_router.py # Routes between Groq, Gemini, Ollama
β βββ selection_watcher.py
β
βββ core/ # βοΈ Core Browser Logic
β βββ history.py
β βββ bookmarks.py
β βββ ad_blocker.py
β
βββ ui/ # π¨ User Interface
β βββ browser_window.py
β βββ tab_manager.py
β βββ components/ # Toolbar, Address Bar, etc.
β βββ dialogs/ # Downloads, History, Settings
β
βββ utils/
βββ exception_logger.py
Built using the Incremental Process Model β each phase delivered a stable, tested feature set:
| Phase | Deliverable |
|---|---|
| 1 | Basic navigation & Chromium rendering |
| 2 | Multi-tab support & UI components |
| 3 | Persistence β bookmarks, history, downloads |
| 4 | AI Integration β floating panel via Ctrl + 5 |
Lehman's Laws applied: the codebase continuously evolved from a single main.py into a modular src/ structure, with each increment unit-tested before the next phase began. Standard browser UX (tabs, address bar) was preserved throughout for familiarity.
Developed with β€οΈ by Haseeb-code1