A privacy-first, Chromium-based web browser with built-in AI capabilities that run entirely locally by default.
This project is in very early stages of development. We have implemented the foundational architecture and core components, but Apex Browser requires significant community support and contributions to become fully functional.
- Basic AI sidebar interface
- Provider management system (OpenAI, Anthropic, local models)
- Settings page at chrome://apex
- Secure API key storage
- Full local AI model integration (llama.cpp runtime)
- Page content extraction for context-aware responses
- Vector database implementation
- Model download and management UI
- Cross-platform testing and builds
- Documentation and examples
- Performance optimization
We need your help to build this browser! If you believe in privacy-first AI and local-first computing, please consider contributing. Every contribution, whether code, documentation, testing, or feedback, helps make Apex Browser a reality.
Apex Browser is built on Chromium with a focus on user privacy and local-first AI features. All AI processing happens on your device by default, with optional cloud provider integration using your own API keys (BYOK - Bring Your Own Keys).
- Local AI Processing: Built-in AI models run entirely on your device
- Privacy by Default: Zero telemetry, zero tracking, zero data collection
- AI Sidebar: Context-aware AI assistant that can analyze and discuss web pages
- Bring Your Own Keys: Optional integration with OpenAI, Anthropic, DeepSeek, and other providers using your own API keys
- Vector Storage: Local SQLite-based vector database for embeddings and semantic search
- Open Source: Full codebase transparency
- Chromium source tree (tested with Chromium 143+)
- Python 3.8+
- Ninja build system
- Xcode (macOS) / Visual Studio (Windows) / GCC/Clang (Linux)
- Set up Chromium source tree:
# Follow Chromium's official guide:
# https://chromium.googlesource.com/chromium/src/+/main/docs/get_the_code.md
# Typical location:
cd /path/to/chromium/src- Clone Apex modifications:
cd /path/to
git clone [email protected]:jwjohns/Apex-Browser.git
cd Apex-Browser- Apply Apex to Chromium (method depends on your setup):
Option A - Manual file copying:
# Copy Apex-specific sources
cp -r src/apex /path/to/chromium/src/apex
cp -r src/chrome/browser/ui/webui/apex /path/to/chromium/src/chrome/browser/ui/webui/
cp -r src/chrome/browser/resources/apex /path/to/chromium/src/chrome/browser/resources/
# Apply modified files (see patches/ directory)Option B - Using setup script (coming soon):
./setup_apex.sh /path/to/chromium/src- Configure build:
cd /path/to/chromium/src
gn gen out/Apex --args='
is_debug = false
use_system_xcode = true
angle_enable_metal = false
'- Build:
autoninja -C out/Apex chrome- Run:
# macOS
out/Apex/Apex.app/Contents/MacOS/Apex
# Linux
out/Apex/chrome
# Windows
out\Apex\chrome.exeapex/ # Apex-specific components
├── ai/ # AI runtime components
│ ├── core/ # Core AI interfaces
│ ├── providers/ # Provider implementations
│ │ ├── local_provider.cc # Local llama.cpp provider
│ │ ├── openai_provider.cc # OpenAI API integration
│ │ └── anthropic_provider.cc # Anthropic API integration
│ └── models/ # Model management
├── privacy/ # Privacy components
│ └── key_manager.cc # Secure API key storage
└── vector_store/ # SQLite-vec integration
chrome/ # Modified Chrome components
├── browser/ui/webui/apex/ # WebUI handlers
│ ├── apex_ui_handler.cc # Main settings page
│ └── apex_sidebar_handler.cc # AI sidebar handler
└── browser/resources/apex/ # Frontend resources
├── apex.html
├── apex.js
├── sidebar.html
└── sidebar.js
AI Router (apex/ai/core/ai_router.h): Central request routing system that manages provider selection and fallback logic.
Provider System: Abstraction layer supporting multiple AI backends:
- Local (llama.cpp)
- Ollama
- OpenAI
- Anthropic
- DeepSeek
- OpenRouter
- Custom endpoints
Privacy Layer: Ensures all API keys are stored securely in OS keychains and no telemetry is sent.
WebUI Integration: Custom chrome:// pages for settings and sidebar interface.
- Local-First: AI features work offline by default
- No Telemetry: Absolutely zero usage tracking or data collection
- Secure Storage: API keys stored in OS keychain (Keychain on macOS, Credential Manager on Windows, Secret Service on Linux)
- Transparent Logging: All AI requests logged locally for user audit (content never leaves device)
- User Control: Full control over which providers are used and when
- Navigate to any webpage
- Open the AI sidebar (View menu or keyboard shortcut)
- Ask questions about the page content
- The AI will use page context to provide relevant answers
The sidebar uses your default AI provider (local by default). Configure providers at chrome://apex.
Local AI is enabled by default using bundled models. No configuration required.
- Navigate to
chrome://apex - Click "Add Provider"
- Select provider type (OpenAI, Anthropic, etc.)
- Enter your API key
- Test connection
API keys are stored securely in your system keychain and never transmitted except to the provider you configured.
Apex follows Chromium's coding style:
- C++: https://chromium.googlesource.com/chromium/src/+/main/styleguide/c++/c++.md
- JavaScript: Standard Chromium WebUI patterns
# Run Apex-specific unit tests
out/Apex/apex_unittests
# Run browser tests
out/Apex/browser_tests --gtest_filter="Apex*"All Apex-specific code lives in:
src/apex/- Core C++ componentssrc/chrome/browser/ui/webui/apex/- WebUI handlerssrc/chrome/browser/resources/apex/- Frontend resources
Modified Chromium files are documented in patches/ directory.
The following Chromium files have been modified for Apex integration:
chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc- Register Apex WebUIchrome/common/webui_url_constants.cc- Add chrome://apex URLschrome/common/webui_url_constants.h- URL constant definitionschrome/browser/ui/BUILD.gn- Build configurationchrome/browser/resources/chrome_paks.gni- Resource packaging
See patches/ directory for detailed diffs.
- AI Router architecture
- Local AI provider (llama.cpp integration)
- AI Sidebar interface
- Settings page (chrome://apex)
- Provider management system
- Secure API key storage
- Page content extraction for context-aware responses
- Sidebar toggle button in browser chrome
- Model download and management UI
- Vector database for long-term memory
- Multi-tab context synthesis
- Custom prompt templates
- Embedding generation for semantic search
- Browser automation capabilities
- Extension API for AI features
We urgently need contributors! This project is in early development and requires community effort to reach its full potential.
Areas where you can help:
- C++ Development: Core browser features, AI integration, privacy components
- JavaScript/UI: Settings pages, sidebar interface, user experience
- AI/ML: Local model integration, inference optimization, embeddings
- Documentation: Build guides, architecture docs, user tutorials
- Testing: Cross-platform testing, performance benchmarks, bug reports
- Design: UI/UX improvements, branding, icons
See CONTRIBUTING.md for detailed guidelines on contributing to Apex Browser.
Apex Browser is released under the BSD 3-Clause License, consistent with Chromium's licensing.
See LICENSE for full details.
gn gen out/Apex --args='
is_debug = false
use_system_xcode = true
angle_enable_metal = false
'
autoninja -C out/Apex chromeOutput: out/Apex/Apex.app
gn gen out/Apex --args='
is_debug = false
is_component_build = false
'
autoninja -C out/Apex chromeOutput: out/Apex/chrome
gn gen out/Apex --args="is_debug=false is_component_build=false"
autoninja -C out/Apex chromeOutput: out\Apex\chrome.exe
For issues, questions, or contributions, please use the GitHub issue tracker.
Apex Browser is built on Chromium, the open-source browser project. We are grateful to the Chromium team and contributors for their foundational work.