Skip to content

ArthurMoorgan/drift

Repository files navigation

Drift — a calm, private, beautiful web browser

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.

stack style platform license

Screenshots

A calm new tab — animated start page with a built-in Drift AI assistant.

Drift — new tab

Seven themes (Light · Sepia · Arctic · Dark · Midnight · Slate · Noir).

Drift — dark theme

Vertical tabs — a solid, single-panel rail with the address bar, pinned apps, and tools.

Drift — vertical tabs

Web apps in a slide-out panel — Instagram, WhatsApp, Discord, TikTok and more, each with its own login.

Drift — web apps panel

Deep customization — themes, accent colour, glass translucency, layout, and per-element controls.

Drift — settings

Minimal mode — a thin, zero-distraction UI; everything folds into the ⋯ menu.

Drift — minimal mode


Run it from source

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 start

A 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 install downloads it automatically (see scripts/fetch-ublock.js). To fetch it manually at any time: npm run fetch-ublock.


Build the Windows app

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.


Drift AI — bring your own key

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

Keyboard shortcuts

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

How it works

  • 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.

Project layout

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

License

MIT © Drift. Bundled uBlock Origin is © Raymond Hill and licensed separately under the GPLv3.

Built with the help of Claude Code.

About

Drift — a calm, private, liquid-glass desktop web browser built on Electron. Vertical tabs, web-app panel, glass theme, encrypted password vault, ad-blocking, and a bring-your-own-key AI assistant. Still in beta!

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors