A 100% open source, security-conscious web browser. Built on Qt 6. No AI. No telemetry. No tracking. Just a fast, private, extensible browser.
Everything you need in a modern browser — and more.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Automatically saves and restores open tabs on restart. JSON session file stored next to the executable for full portability.
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.
Built with industry-standard C++ libraries.
Familiar tabbed browsing with dark theme and custom title bar.
Available for Linux and Windows. Fully portable — no installation required.
bc2589e4c9d9f15b00e6074de5b4cd2815fd1942d9e02ae69784e4e4f020e0ecCompile Vivian Browser yourself in a few commands.
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
# 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
# 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
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
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.