Drift is a polished, liquid-glass desktop web browser built on Electron with a real Chromium engine. It pairs a warm, distraction-free design with genuinely useful privacy tools: built-in ad blocking, an encrypted password vault with autofill, and a private AI assistant that uses your own key.
A calm new tab — animated start page with a built-in Drift AI assistant.
Seven themes (Light · Sepia · Arctic · Dark · Midnight · Slate · Noir).
Vertical tabs — a solid, single-panel rail with the address bar, pinned apps, and tools.
Web apps in a slide-out panel — Instagram, WhatsApp, Discord, TikTok and more, each with its own login.
Deep customization — themes, accent colour, glass translucency, layout, and per-element controls.
Minimal mode — a thin, zero-distraction UI; everything folds into the ⋯ menu.
Requires Node.js (LTS) on Windows.
git clone https://github.com/ArthurMoorgan/drift.git
cd drift
npm install # installs Electron + deps, and fetches uBlock Origin
npm startA frameless window opens with its own animated new-tab page. On first run you'll see a short setup tour.
Note on uBlock Origin: it's GPL-licensed and is not stored in this repo.
npm installdownloads it automatically (seescripts/fetch-ublock.js). To fetch it manually at any time:npm run fetch-ublock.
Packaging uses electron-builder (NSIS installer + single-file portable).
npm run pack # quick unpacked build → dist/win-unpacked/
npm run dist # installer + portable → dist/npm run dist auto-increments the patch version and ensures uBlock Origin is present, then produces:
Drift Setup <version>.exe— the installer (upgrades in place, keeps user data)Drift-<version>-portable.exe— a single-file portable build
To rebrand the app icon, replace build/icon.svg and run npm run make-icon.
The new-tab page has a built-in Claude assistant. Click Ask Drift AI, paste your Anthropic API key once, and chat — replies stream in token-by-token.
- Your key stays private. It's stored only in the app's user-data folder (
%APPDATA%/Drift), and every API call runs in Electron's main process. The key is never exposed to any web page or renderer; the new-tab AI bridge is URL-locked and the main process re-validates the sender on every call. - Default model:
claude-haiku-4-5(switchable to Sonnet / Opus in Settings). - Get a key: console.anthropic.com/settings/keys
Work even when a web page has focus (forwarded from the main process):
| Shortcut | Action | Shortcut | Action | |
|---|---|---|---|---|
Ctrl+T |
New tab | Ctrl+D |
Bookmark page | |
Ctrl+W |
Close tab | Ctrl+H |
Toggle history | |
Ctrl+L |
Focus address bar | Ctrl+1…9 |
Jump to tab N | |
Ctrl+R / F5 |
Reload | Ctrl+Tab |
Next tab | |
Alt+← / Alt+→ |
Back / Forward | Ctrl+J |
Downloads | |
Ctrl + / - / 0 |
Zoom in / out / reset |
- Each tab is an Electron
<webview>with a real Chromium renderer; only the active one is shown. - The chrome (tabs, toolbar, panels, settings) is plain HTML/CSS/JS styled as frosted glass — no framework.
- Security model: the Anthropic key and all AI calls live in the main process; the password vault is encrypted via
safeStorage; sessions and windows are hardened (denied permission prompts, no shell navigation, popups routed to tabs); a CSP is applied to the chrome pages. - Most UI state persists in
localStorage(cream.*keys); the AI key, downloads, and passwords persist in the user-data folder; site logins persist via a named session partition.
drift/
├─ main.js # main process: windows, AI, downloads, vault, autofill, ad-block
├─ preload.js # secure bridge for the chrome window
├─ build/ # app icon (icon.svg → icon.png)
├─ scripts/ # icon render, version bump, uBlock fetch
└─ src/
├─ index.html # browser chrome structure
├─ chrome.css # the liquid-glass design system + all themes
├─ chrome.js # tabs, omnibox, bookmarks, history, settings, passwords…
├─ newtab.html # animated start page + Drift AI assistant
├─ newtab-preload.js # URL-guarded AI bridge + password autofill (isolated world)
└─ backgrounds/ # flat-design SVG new-tab backgrounds
MIT © Drift. Bundled uBlock Origin is © Raymond Hill and licensed separately under the GPLv3.
Built with the help of Claude Code.





