Search what pages said, not just their titles
Start a palette query with / to search the text of the last 2,000 pages you visited, and your mail with it. Private tabs are never indexed.
Octoweb is a free, open source web browser for Mac with your email, terminal, and notes built in, all driven from the keyboard. Hand the busywork to your AI agent and watch it happen. Replies it drafts wait for you to send them.
brew install --cask muvon/tap/octoweb macOS 13 or later. No account, no telemetry. AI is optional and runs on your own model provider.
⌘/ lists every shortcut
A Vim-style browser for people who live in Vim, Emacs, or a terminal. Every action has a key, the frequent ones are single letters or home-row labels, and you can remap almost all of them. The fast path is the only path.
Press any of these keys. The caps press with you.
See all 53 shortcuts⌘⇧I opens your inbox
Email built into your browser: Gmail, iCloud, Outlook, or any IMAP account, as many as you like. Every decision is one key, and ⌘Z takes it back.
Octoweb is an agentic browser: Claude Code, octomind, or your own script can browse, fill forms, and read your mail through its built-in MCP server, in a window you can watch. When it needs a decision, it asks.
mail_create_draft only fills your composer. Sending is a key only you press.browser_navigate always opens in the background, and browser_switch_tab is the only tool allowed to move your focus.The server comes up with the browser on localhost:3434/mcp. Any
MCP client takes the same URL. Here is Claude Code:
claude mcp add --transport http octoweb http://localhost:3434/mcp browser_fill_form Fill several fields and optionally submit, in one callbrowser_dismiss_overlay Dismiss consent overlays — prefers Reject, never auto-acceptsbrowser_snapshot Map interactive elements with @N refs — pierces iframes and shadow DOMmail_read_thread Read a whole conversation as text, fenced as untrustedmail_create_draft Put a draft in your composer — only you can send itrender_ui Draw an interactive A2UI surface in the sidebar and wait for the click⌘⇧A opens the assistant
The assistant slides over the right edge, reads the page you are on, and answers as it writes. The page underneath never moves.
The sidebar speaks ACP to an octomind agent running on your Mac, which Octoweb starts for you. The browser never calls a model provider directly.
curl -fsSL https://raw.githubusercontent.com/muvon/octomind/master/install.sh | bash The Homebrew cask brings it along, and Octoweb installs it through Homebrew if it is missing.
Any provider octomind supports. OPENROUTER_API_KEY covers most of them.
The sidebar connects on its own. Swap the agent tag in the header at any time: developer:rust, octoweb:trend, or one of your own.
⌘⇧P opens the palette
Pages, mail, and the notes you took along the way are one search away, so you can stop keeping thirty tabs open just in case.
Start a palette query with / to search the text of the last 2,000 pages you visited, and your mail with it. Private tabs are never indexed.
Drop the current page into today’s notes as a task, or your selection as a quote with its link. Notes are one plain markdown file per workspace.
Saved pages sit on top of the palette. Open one and it leaves the list; ignore it for two weeks and it drops out, still findable by its words.
Pin the docs you live in to a numbered slot with ⌘⇧1–0 and land back on them from anywhere, one set per workspace.
⌘⇧O switches workspace
Each workspace is its own browser. Cookies, history, mail accounts, extensions, terminal tabs, notes, and AI sessions stay inside it, so two Google accounts stay signed in at once and an agent working in one never sees the other.
| Work | Client | Personal | |
|---|---|---|---|
| Signed in to | Company Google, GitHub | Client Google | Personal Google, bank |
| [email protected] | Client inbox | iCloud | |
| Extensions | Password manager, grammar checker | Password manager | Password manager |
| Terminal | api, web | deploy | None |
| Notes | Sprint tasks | Meeting notes | Trip plans |
Every workspace has its own WebKit data store, not a colored tab group. Move a tab across with ⌘⇧M and it reloads on the other side with nothing carried over.
Switching browsers usually means giving things up. Here the terminal, your extensions, and your SSH box come along.
⌘`
Tabs and splits (⌘D, ⌘⇧D), each new split in the same folder. Quit and relaunch, and every pane comes back in its last directory with its old output above.
Settings › Extensions
Paste a Chrome Web Store link, or load a .crx, .zip, .xpi, or unpacked folder. Run each one everywhere or only in the workspaces you pick.
Needs macOS 15.4 or later.
Settings › Proxies
Send chosen domains through a SOCKS5 or HTTP proxy, or through an SSH tunnel Octoweb keeps alive using your keys and ~/.ssh/config. Everything else goes direct.
Needs macOS 14 or later.
Octoweb is a lightweight Mac browser: a Rust binary driving the WebView macOS already ships. No Electron and no bundled Chromium, so there is no second browser engine to download, update, or keep in memory, and it behaves like a Mac app instead of a web page pretending to be one.
via wry — the same engine as Safari, kept current by macOS updates.
One binary. codegen-units = 1, no bundled Chromium, no Node process.
System-wide shortcuts straight from the OS event stream.
Tracker and ad rules compiled inside WebKit, not run as page JavaScript.
Favicons are cached as base64 data URIs, so startup never waits on a request.
Background tabs freeze under pressure and thaw on return.
Open any palette result in a tab with its own in-memory storage. Nothing reaches history, the session, or page search, and closing it discards everything.
A quote with its source link, or the whole page as clean markdown when nothing is selected. Ready to paste into a prompt or a ticket.
Camera and microphone work, and a tab in a call is never put to sleep by hibernation, so the meeting keeps going in the background.
One appearance setting for the app and every page in it. The terminal follows along or stays fixed, your choice.
Remap any shortcut in Settings. Changes apply on the very next keystroke — no restart, no reload.
Full-text search with native highlighting via the CSS Custom Highlight API. No DOM rewriting, no layout thrash.
Viewport or full page, straight to the clipboard. Paste it into your agent, your notes, or a ticket.
Open documents in a tab instead of bouncing them through Preview or Word.
Tabs, history, slots, and terminal panes come back exactly as you left them.
A free browser for Mac: no account, no license key, no trial timer. Runs on macOS 13+, Apple Silicon or Intel.
Octoweb is an open source browser, licensed Apache 2.0. There is no paid tier waiting behind a version bump, no telemetry, and no account to create. Read the source, fork it, ship your own agent to the tap.
Every line of the browser, the mail client, the MCP server, and the ACP client is on GitHub. A browser that holds your mail sees everything you do. You should be able to check what it does with that.
Browse the source →Agents ship as manifests in the octomind tap registry, not as browser code. Publish you:your-agent and type the tag into the sidebar header — no fork, no rebuild.
Octoweb stays free either way. Sponsorship pays for the Apple Developer certificate, the notarization pipeline, and the hours that go into the next release.
Sponsor on GitHubYes. Octoweb is a free AI browser, open source under Apache 2.0 — no trial, no paid tier, no account, no telemetry. The AI features run on your own model provider. If Octoweb saves you time, GitHub Sponsors is how you can say thanks, but nothing is gated behind it.
Because the whole thing leans on macOS-native APIs: CGEventTap for system-wide hotkeys, WKWebView through wry for rendering, AppKit for the dock icon and menus. A Linux or Windows port would be a different browser wearing the same name, so it stays Mac-only for now.
Yes. Octoweb has a full mail client inside the browser for Gmail, iCloud, Outlook, and any IMAP account, with single-key triage, send later, and optional AI summaries and drafts that you always send yourself.
Gmail and Google Workspace sign in with Google or an app password. iCloud needs an app-specific password, Outlook and Microsoft 365 need an app you register in Microsoft Entra, and any other IMAP server takes your password. Add as many accounts as you like in Settings → Mail. Passwords and tokens live in the macOS Keychain, and mail syncs into a local database on your Mac, so search works offline. Nothing passes through a Muvon server.
No. Mail AI is off until you turn it on in Settings. Once it is on, it can summarize threads, sort the inbox into a brief, pull tasks into your notes, and draft replies in your voice. The text it reads goes through octomind to the model provider you set up. A draft only ever lands in your composer: sending is a key only you press.
No. Octoweb is a complete browser, mail client, terminal, and notes app without any AI configured. The sidebar, inline edit, and Mail AI are optional — they connect to a local octomind agent, which you point at whichever provider you already pay for.
Not by itself. History, sessions, notes, and mail are stored locally. The only outbound AI traffic is the request octomind makes to the provider you configured — the browser never calls a model directly, and there is no analytics pipeline behind it.
An extension can read a page and paste text. Octoweb runs an MCP server inside the browser, so your agent can actually drive it — navigate, click, fill forms, screenshot, read the console and network. And the assistant lives in a sidebar overlay, not another tab competing for space.
Many do. Paste a Chrome Web Store link or an extension id in Settings, or load a .crx, .zip, .xpi, or unpacked folder. Octoweb runs them through WebKit’s own extension support, which needs macOS 15.4 or later, and you choose which workspaces each one runs in.
For a lot of people, yes. It handles the daily loop — tabs, history, session restore, back and forward gestures, find in page, PDFs, content blocking, extensions, video calls — and adds the mail, terminal, and notes you would otherwise keep in separate apps. It is a young project, so file an issue when a site misbehaves.
A background agent that, every 30 minutes, looks at your open tabs and recent history and memorizes patterns into octomind local memory. It is off by default, because it reads what you browse; you turn it on with one toggle in Settings.
Free and open source, Mac only by design. Install it tonight, add your mail, and count how many other apps you open before lunch.
brew install --cask muvon/tap/octoweb macOS 13+ · No account required
The sidebar runs on octomind