Aether Browser 🌌

The open-source, AI-native browser — full Chromium compatibility, powered 100% by your local Ollama model. No cloud, no API keys, no telemetry.

v1.6.0 GPL-3.0 Windows · macOS · Linux Electron + Chromium

What's new — v1.6.0 Beast Search

Install & first run

Prerequisites: Node.js 20+ and Ollama.

# 1. Install Ollama, then pull a model (any one works — see Models):
ollama pull qwen3.5:9b        # great tool calling, ~6 GB
#   smaller machine?  ollama pull qwen3.5:4b   (~2.5 GB)

# 2. Clone & run Aether
git clone https://github.com/e2sy/aether-browser.git
cd aether-browser
npm install
npm run dev
No CLI for models? Once Ollama is running you never need it again — open the sidebar → Models tab (or press Ctrl+Shift+M) and pull any model from inside the browser.

Installers

npm run dist        # NSIS (Windows) / dmg (macOS) / AppImage + deb (Linux)

Models — use any Ollama model, including 4B

The Models tab in the AI sidebar is a full model manager:

Which model for the agent? Tool calling quality matters most. Good picks: qwen3.5:9b (16 GB RAM), qwen3.5:4b or llama3.2:3b (8 GB RAM). Chat and search work well with anything.
Connecting your Ollama? Models already on disk are detected automatically — for the full walkthrough (fine-tuned GGUF, remote hosts, troubleshooting the red dot) read the Ollama connection guide →

AI features

💬 Chat with any page

The sidebar extracts the page (Readability → Markdown) and answers grounded in it. Turn page context off to chat freely. Conversations are remembered per site (local page memory) and reused as context on your next visit.

🔍 AI search

Search from the omnibox opens aether://search: free web results next to a cited answer written by your local model. Results come from a resilient engine chain — DuckDuckGo → DuckDuckGo Lite → Bing — so blocked or throttled engines never leave you with an empty page. If everything fails, one click re-runs the search on Google.

✍️ Write helpers

Select text on any page → right-click → Ask / Summarize / Rewrite / Translate. The prompt lands in your sidebar.

☁️ Optional cloud fallback

If Ollama is unreachable, chat & AI search can use any OpenAI-compatible endpoint (Groq / OpenRouter free tiers). Opt-in, key stays on disk — the agent always stays local.

The web automation agent

Open the Agent tab, type a task, press Run. The agent renders the page as a numbered menu of interactive elements and picks one tool per step (max 12 steps):

ToolWhat it does
navigateOpen a URL in the current tab
clickClick an element by its [ref] number
typeType into an input (optionally press Enter)
press_keySend a key like Enter, Escape
scrollScroll up / down
go_backHistory back
read_pageExtract readable text
find_textFind & highlight text
list_tabsSee all open tabs
screenshotSave a PNG of the page
ask_userPause and ask you a clarifying question
doneReport the final answer

Macros — replay without a model

Tick ⏺ Record as macro before an agent run. Successful actions are saved as a replayable script; replay re-finds elements by captured CSS locators, needs no model at all, and still respects the confirm gate.

Editing macros

Open the Macros list (Agent tab → Macros) and press ✎ to open the step editor. You can rename the macro, reorder steps (↑/↓), edit any argument, add new steps (navigate, click, type, press_key, scroll, go_back), or remove steps — then Save.

Typical use: record “search for X on a site” once, then edit the type step's text and replay it any time — deterministic and instant.

Sharing macros (import / export)

Chrome extensions

Aether supports unpacked MV2/MV3 Chrome extensions via electron-chrome-extensions: content scripts, background pages, browser-action buttons with popups, and chrome.contextMenus items.

One-click install from a .crx / .zip package

CRX2 and CRX3 containers are both parsed (the zip payload is extracted and installed as a normal unpacked extension under your user-data folder). Signatures are not verified — only install packages you trust.

Unpacked folders

  1. Get an unpacked extension (a folder containing manifest.json).
  2. Open Settings (Ctrl+,) → Extensions → Load unpacked…
  3. Its action button appears in the toolbar; right-click it for extension menus, click for popups or the extension's action handler.
Limits: the Chrome Web Store's inline install flow isn't supported (download the .crx yourself, then use any of the install paths above — that is exactly what the one-click flow is for). Aether is licensed GPL-3.0 because electron-chrome-extensions is GPL-3.0 / patron dual-licensed.

Browser basics

Tabs & windows

Tiered memory saver

Settings → Hibernate idle tabs after (off / 15 / 30 / 60 minutes). Background tabs first hibernate 🌙 — muted and throttled to 1 fps, they wake instantly with no reload. After 3× that delay they are fully discarded (unloaded, shown as (unloaded), reloaded on click). Pinned and audio-playing tabs are never touched.

Per-site zoom

Ctrl+= / Ctrl+- / Ctrl+0 (or the View menu). Each site's zoom is remembered and re-applied on every visit; a Chrome-style bubble shows the level and resets on click.

Downloads

Files land in your Downloads folder (duplicates get “ (1)” suffixes). A shelf at the bottom-left shows progress with cancel and “show in folder”. Ctrl+J opens the full aether://downloads manager — search, pause/resume, re-download, reveal.

Aether Search — bangs & instant answers

The search page (aether://search) is Aether's own metasearch: five sources in parallel, source badges + filter chips, a Wikipedia knowledge panel, related searches and full keyboard control (↓/↑, Enter, 1-9, /). Start a query with a bang to jump straight to a site: !yt YouTube, !g Google, !w Wikipedia, !gh GitHub, !so Stack Overflow, !fk Flipkart, !sp Spotify, !maps Maps, and more. Instant answers computed on this device: math (2^10), units (10 km to miles, 72 f to c, 1 gb to mb, 500 ms to s), percentages (15% of 80), and the world clock (time in tokyo, time in delhi, time, date).

Privacy & security

Keyboard shortcuts

ShortcutAction
Ctrl+T / Ctrl+WNew / close tab
Ctrl+Shift+TReopen last closed tab
Ctrl+Tab / Ctrl+Shift+TabNext / previous tab
Ctrl+1 … Ctrl+8, Ctrl+9Jump to tab 1–8 / last tab
F5Reload page
Ctrl+NNew browser window
Ctrl+Shift+DDuplicate tab
Ctrl+Shift+PPin / unpin tab
Ctrl+Shift+UMute / unmute tab
Ctrl+LFocus the omnibox
Ctrl+R / Alt+← / Alt+→Reload / back / forward
Ctrl+FFind in page
Ctrl+H / Ctrl+Shift+OHistory / bookmarks
Ctrl+, / Ctrl+Shift+MSettings / Model library
Ctrl+Shift+AToggle the AI sidebar
Ctrl+= / - / 0Zoom in / out / reset (per site)

macOS: use ⌘ instead of Ctrl.

Troubleshooting

ProblemFix
“Electron failed to install correctly” (Windows) The ~110 MB Electron download was interrupted (antivirus or flaky network). Aether now auto-repairs this after every npm install; if it still fails, run npm run repair:electron or the one-shot npm run setup:win, and add an antivirus exclusion for the project folder.
“Ollama not reachable” (Windows) Start the Ollama app from the Start menu (it lives in the system tray). Check that http://127.0.0.1:11434 says “Ollama is running”.
“Ollama not reachable” Start Ollama (ollama serve or the menu bar app). Check the URL in Settings → model section. The sidebar health dot turns green when connected.
Agent clicks the wrong element Use a stronger tool-calling model (qwen3.5:9b) and keep tasks short. Re-check the confirm gate so you can Deny bad steps.
Google sign-in blocked Keep “Identify as regular Chrome” enabled in Settings. If it persists, sign in on accounts.google.com first, then browse.
Netflix / Spotify DRM won't play Widevine isn't bundled with Electron. YouTube (non-DRM) works fine.
Extension didn't load The folder must contain manifest.json at its root. Check the console (npm run dev) for the [extensions] log line.
High RAM usage Enable the memory saver (Settings → 15/30 min), or right-click tabs → Discard.
Do I need Ollama running? Only for the AI parts (sidebar chat, the AI answer on the search page, the agent). Browsing and the web-results half of AI search work without it. Keep the Ollama app running in the tray for the full experience, or switch Settings → Search mode to Google / DuckDuckGo to skip AI entirely.
AI search shows “No web results” v1.1.3 falls back across DuckDuckGo → Lite → Bing automatically; if all three are unreachable from your network, use the “Search on Google instead” button shown on the page.
Nothing happens when I press Enter / click buttons Fixed in v1.1.4 (the preload bridge failed to load in sandboxed views). Update to v1.1.4+, fully close Aether and start it again. The new-tab page now shows a red banner if the bridge is down instead of failing silently.
Console shows “Unauthorized IPC call to … from http://localhost:5173/” and the address bar / toolbar buttons do nothing Fixed in v1.1.5 — the IPC guard used to reject the browser's own UI (the multi-window refactor dropped the chrome-UI check). The UI is now trusted by identity in dev and production, while normal pages stay blocked. Update to v1.1.5+ and restart.
Console shows “Unable to move the cache: Access is denied. (0x5)” or “Gpu Cache Creation failed: -2”, and sites won't load Another process (an old Aether/electron.exe still running in the background, antivirus, OneDrive) is locking your profile's cache folder. v1.1.7 fixes this two ways: a second Aether now hard-exits and focuses the running one, and if the cache is locked Aether automatically relocates the profile to aether-browser-recovered (old profile is kept) and prints reclaim steps in the console. Manual fix: Task Manager (Ctrl+Shift+Esc) → end every electron.exe/Aether.exe, then delete %APPDATA%\aether-browser if you don't need the old bookmarks.
The dev server starts on port 5174 instead of 5173 An older Aether dev session is still alive and holding 5173. Close it (Task Manager → end node.exe/electron.exe from the old folder) and start again — with v1.1.7 a second Aether can't even boot over the old one anymore.
Console line “session.getPreloads is deprecated” Harmless — it comes from the electron-chrome-extensions dependency, not from Aether. Ignore it.
A site shows a blank page forever and nothing explains why Fixed in v1.1.6 — every failed page load now shows an error screen with the exact reason (DNS, timeout, offline, blocked, crash) and a Try again button. If it says the ad blocker cancelled the page, use the “Turn off ad blocker & retry” button (or Settings → Privacy). If it says DNS/offline, check your connection or whether your network blocks the site.
YouTube (or another heavy site) is blank with no error Root cause found in v1.2.0: the ad blocker's anti-adblock scriptlets killed the page's own JS. Shields now run in two tiers — Standard (default) blocks ads & trackers without touching page scripts (YouTube loads normally), Aggressive adds scriptlets as an opt-in. If a site breaks: toolbar shield icon → “Turn shields off for this site”.
How do I add more filter lists (uBlock-style)? Settings → Shields: tick the uBlock presets (Ads / Privacy / Badware) or paste any https:// filter-list URL. Lists are fetched at boot and cached for offline. The toolbar shield popup shows live blocked counts per site.