Vivian Browser

A 100% open source, security-conscious web browser. Built on Qt 6. No AI. No telemetry. No tracking. Just a fast, private, extensible browser.

v1.0.0 Qt 6.5 LTS Qt 6 WebEngine 🔓 100% Open Source 🛡️ Security Conscious 🚫 No AI · No Telemetry
🐧 Download for Linux
x86_64 · AppImage
🪟 Windows Build Guide
MSVC 2022 · Qt 6.5
📦 Source Code on GitHub
C++17 · CMake · MIT License

🔋 Full Feature Set

Everything you need in a modern browser — and more.

🛡️

Built-in Ad & Tracker Blocker

Blocks 50+ ad/tracker domains by default — DoubleClick, Google Analytics, Facebook Pixel, Taboola, Outbrain, Criteo, and more. Aggressive tracker blocking, social tracker blocking, telemetry blocking, fingerprinting protection, and cryptominer blocking. Custom allowlist support.

🔐

AES-256-GCM Password Vault

Encrypted password manager with master password unlock. Auto-locks after 4 hours of inactivity. Auto-captures credentials on login forms. Auto-fills saved passwords. Import from Chrome on Windows. Change master password support.

🎤

Voice AI — TTS + STT

Text-to-Speech: Offline TTS via Qt Speech (SAPI on Windows, AVSpeechSynthesizer on macOS, speech-dispatcher/flite on Linux). Female voice preference.
Speech-to-Text: Offline STT via Vosk — small (~40MB), medium (~128MB), or large (~1.8GB) models. Floating overlay with partial result display. Voice search trigger.

🧩

Plugin System

Full plugin architecture with lifecycle hooks (initialize, shutdown, onPageLoad, onUrlChange, onTabChange, onNewTab, onTabClose). Plugins can add toolbar actions, menu items, and context menu entries. Includes Hello World example and Live Editor plugin.

🌐

Proxy & Anonymity

HTTP/SOCKS5 proxy support. Built-in Tor integration with auto-launch and download/setup. I2P proxy support. SSH tunnel (SOCKS5) with auto-launch, strict host key checking, and custom key support. Per-proxy configuration.

🔒

Privacy Controls

JavaScript toggle, WebRTC blocking, third-party cookie blocking, HTTPS-only mode, Do Not Track, Global Privacy Control, referrer stripping, anti-fingerprinting, platform spoofing, user-agent spoofing, geolocation blocking, media blocking, notification blocking, clear data on exit.

Bookmarks Bar

Chrome-style favorites bar with folder dropdowns. Drag-and-drop reordering. Right-click context menus (Open, Open in New Tab, Rename, Delete). Import from Chrome and Firefox. Tree-based JSON storage with recursive folder support.

📜

Browsing History

SQLite-backed history with full-text search across URLs and titles. Recent entries view (500 entries). Clear all history. Portable — database lives next to the executable.

🖥️

Chrome-Style UI

Frameless window with custom title bar (minimize, maximize, close). Chrome-style tab bar with close buttons, new tab button, and tab scrolling. Dark Fusion palette. Omnibox with seed site autocomplete. System tray icon with enable/disable toggle.

🛠️

Developer Tools

Built-in Qt WebEngine DevTools per tab. Website debugger with console message capture (JS errors, warnings, logs). Hard reload. Download manager. Fullscreen mode. Keyboard shortcuts throughout.

💾

Session Restore

Automatically saves and restores open tabs on restart. JSON session file stored next to the executable for full portability.

📁

Fully Portable

All data (config, passwords, bookmarks, history, session, plugins, Vosk models, Tor data) lives next to the executable. Move the folder — everything comes with it. No registry keys, no AppData.

⚙️ Tech Stack

Built with industry-standard C++ libraries.

Qt 6.5 LTS
Core · Gui · Widgets · WebEngine · Speech · Multimedia · Network · Concurrent · Sql
Qt WebEngine
Full Blink/V8 rendering via Qt
OpenSSL 3.0
AES-256-GCM for password vault encryption
Vosk
Offline speech recognition (optional)
SQLite
Browsing history storage
CMake 3.20+
Cross-platform build system
C++17
GCC 11+ · Clang 14+ · MSVC 2022
Tor / I2P / SSH
Anonymous proxy integration

🖥️ Chrome-Style Interface

Familiar tabbed browsing with dark theme and custom title bar.

🏠 New Tab
📄 GitHub
🔍   Search or enter URL…
✦ Vivian Browser
100% Open Source · Security Conscious · No AI

📥 Download Vivian Browser

Available for Linux and Windows. Fully portable — no installation required.

🐧

Linux

x86_64 · Ubuntu 22.04+
📥 Download .AppImage 📦 Download .tar.gz Archive 🔨 Compile from Source
SHA256: bc2589e4c9d9f15b00e6074de5b4cd2815fd1942d9e02ae69784e4e4f020e0ec
🪟

Windows

x64 · Windows 10+
🔨 Build from Source
Requires MSVC 2022 + Qt 6.5 — see build guide below
🍎

macOS

Apple Silicon · Intel
🔨 Build from Source
Requires Homebrew + Qt 6.5 — see build guide below
📦

Source Code

C++17 · CMake 3.20+
📦 View on GitHub
100% open source — MIT License

🔨 Build from Source

Compile Vivian Browser yourself in a few commands.

🐧 Linux (Ubuntu 22.04+)

sudo apt install cmake build-essential libssl-dev \
     qt6-base-dev qt6-webengine-dev qt6-speech-dev \
     qt6-multimedia-dev libqt6concurrent6-dev

cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j$(nproc)
./build/bin/VivianBrowser

🍎 macOS (Apple Silicon + Intel)

# Install dependencies via Homebrew
brew install cmake openssl qt@6

# Configure & build
cmake -B build -DCMAKE_PREFIX_PATH=$(brew --prefix qt@6) \
               -DOPENSSL_ROOT_DIR=$(brew --prefix openssl)
cmake --build build --config Release

# Run (app bundle)
open build/bin/VivianBrowser.app

🪟 Windows (MSVC 2022)

# Install Qt 6.5 LTS (MSVC 2019 64-bit + WebEngine + Speech + Multimedia)
# Install OpenSSL 3 from https://slproweb.com/products/Win32OpenSSL.html

cmake -B build -G "Visual Studio 17 2022" -A x64 ^
      -DCMAKE_PREFIX_PATH="C:\Qt\6.5.3\msvc2019_64" ^
      -DOPENSSL_ROOT_DIR="C:\OpenSSL-Win64"
cmake --build build --config Release
build\bin\VivianBrowser.exe

🍓 Raspberry Pi (ARM64)

sudo apt install cmake build-essential libssl-dev \
     qt6-base-dev libqt6webenginewidgets6 libqt6webenginecore6 \
     qt6-speech-dev qt6-multimedia-dev

cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j2   # single-threaded to avoid OOM

🧩 Plugin Development

Extend Vivian Browser with your own C++ plugins.

// Every plugin implements PluginInterface:
class MyPlugin : public QObject, public PluginInterface {
    Q_OBJECT
    Q_PLUGIN_METADATA(IID "net.d0a.vivian.PluginInterface/1.0")
    Q_INTERFACES(PluginInterface)

public:
    PluginMeta meta() const override {
        return { "com.example.myplugin", "My Plugin", "1.0",
                 "Does something cool", "Your Name" };
    }
    void initialize(BrowserAPI *api) override;
    void shutdown() override;

    // Optional hooks:
    void onPageLoad(const QString &url, const QString &title) override;
    void onUrlChange(const QString &url) override;
    QList<QAction*> toolbarActions() override;
    QList<QAction*> contextMenuActions(QWidget *webView) override;
};

Plugins are compiled as shared libraries (.so / .dll) and placed in the plugins/ directory. See the included hello_world and live_editor examples.