Free · Open source · Apache 2.0

The browser you reach for when you want to think.

Octoweb is a keyboard-first AI browser for macOS. WebKit and Rust — no Electron, no Chrome, no mouse required. The command palette is the whole interface, the AI lives in a sidebar instead of a tab, and your agents can drive the browser directly over MCP.

brew install --cask muvon/tap/octoweb

Apple Silicon · macOS 13+ · No account required · Intel Mac

Keyboard first

Nothing here requires a click.

Most browsers are built around the mouse and bolt shortcuts on afterwards. Octoweb starts from the keyboard, so the fast path is the only path.

⌘⇧P

One palette, everything

Type a URL, a search, or any fragment of a page title you have seen before. Open tabs and history are fuzzy-matched together and ranked by match quality and how often you actually go back.

⌘1–⌘9

Ten pages, one keystroke away

Pin the docs you live in to a numbered slot with ⌘⇧1–0 and land back on them from anywhere. Slots survive restarts and show up in the footer bar and the new-tab page.

⌃N ⌃P ⌃D ⌃U

Your shell muscle memory works here

Tab cycling in most-recently-used order, half-page scrolls, ⌃A and ⌃E in every input, ⌃R to search prompt history. Nothing to learn if you already live in a terminal.

⌘,

Every binding is yours

Remap anything in Settings. Changes persist to keybindings.json and take effect on the very next keystroke — no restart, no reload, no config reload dance.

See all keyboard shortcuts →

AI sidebar

An assistant that overlays the page, not another tab.

Press ⌘⇧A and the sidebar slides over the right edge — the page underneath is never resized or reflowed. Responses stream in as they arrive.

Powered by octomind.run

Powered by a local agent, not a hosted endpoint

The sidebar speaks ACP to an octomind agent running on your Mac. octomind fetches the agent manifest — model, system prompt, tools — from the community tap registry and configures itself. The browser never calls a model provider directly.

1

Install octomind

curl -fsSL https://raw.githubusercontent.com/muvon/octomind/master/install.sh | bash
2

Start it in ACP mode

octomind acp octoweb:assistant
3

Press ⌘⇧A in Octoweb

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.

  • Inline edit (⌘⇧E) — select text on any page and rewrite, summarize, or translate it in place.
  • Agent-rendered UI — via render_ui agents draw real forms, buttons, and live views inline in the chat. Full A2UI v1.0 basic catalog, with data binding and validation.
  • Proactive learning — a background agent looks at your tabs and history every 30 minutes and memorizes patterns locally. On by default, one toggle to stop it.
MCP server

Your agents can actually drive the browser.

Octoweb runs an MCP server on localhost:3434/mcp with 29 tools. Point Claude Desktop, octomind, or your own script at it and watch it browse — in a window you can see.

MCP client localhost:3434/mcp WKWebView

An extension can read a page and paste text back. An MCP server can navigate, click, type, submit forms, screenshot, and read the console and network log. Octoweb keeps the agent out of your way while it works: browser_navigate always opens in the background, and browser_switch_tab is the only tool allowed to move your focus.

One server covers every workspace. Requests carry an X-Octoweb-Workspace token that decides which workspace they act on, so an agent driving tabs in a background workspace never disturbs the one in front of you.

Nothing to install, nothing to start

The server comes up with the browser. Any MCP client takes the same URL — here is Claude Code:

claude mcp add --transport http octoweb http://localhost:3434/mcp

Config for Claude Desktop, octomind, and anything else →

A few of the 29

  • browser_click Click an element, retrying until stable and unobstructed
  • browser_fill_form Fill several fields and optionally submit, in one call
  • browser_execute_js Run JavaScript in the page — promises are awaited
  • browser_snapshot Map interactive elements with @N refs — pierces iframes and shadow DOM
  • browser_network_requests Recent fetch and XHR activity with statuses and timings
  • render_ui Draw an interactive A2UI surface in the sidebar and wait for the click
Full tool reference →
Workspaces

Real isolation, not a colored tab group.

Each workspace gets its own tabs, history, AI sessions, and a dedicated WebKit data store — cookies, localStorage, and cache never leak across the boundary. ⌘⇧O to switch, ⌘1–⌘0 while the popover is open.

Work

12 tabs

SSO session, staging cookies

Isolated WKWebsiteDataStore

Research

31 tabs

Agent-driven, no login

Isolated WKWebsiteDataStore

Personal

4 tabs

Separate data store

Isolated WKWebsiteDataStore

Two accounts on the same site stay signed in at the same time. Log an agent into a scratch workspace and your real session is untouched.

Native by construction

No Electron. No bundled Chromium. No mouse.

Octoweb is a Rust binary driving the WebView macOS already ships. That is why it starts fast, stays small, and behaves like a Mac app instead of a web page pretending to be one.

Rendering

System WKWebView

via wry — the same engine as Safari, kept current by macOS updates.

Runtime

Rust, LTO, stripped

One binary. codegen-units = 1, no bundled Chromium, no Node process.

Hotkeys

CGEventTap

System-wide shortcuts straight from the OS event stream.

Blocking

WKContentRuleList

Tracker and ad rules compiled inside WebKit, not run as page JavaScript.

Cold start

Zero network calls

Favicons are cached as base64 data URIs, so startup never waits on a request.

Memory

Smart hibernation

Background tabs freeze under pressure and thaw on return.

Everything else

The parts you only notice when they are missing.

Configurable keybindings ⌘,

Remap any shortcut in Settings. Changes apply on the very next keystroke — no restart, no reload.

Inline AI edit ⌘⇧E

Select text on any page and transform it in place. Rewrite, summarize, translate — the result goes straight back into the field.

Find in page ⌘F

Full-text search with native highlighting via the CSS Custom Highlight API. No DOM rewriting, no layout thrash.

Screenshots to clipboard ⌘S

Viewport or full page, straight to the clipboard. Paste it into your agent, your notes, or a ticket.

PDF and DOCX viewer

Open documents in a tab instead of bouncing them through Preview or Word.

Content blocking

Trackers and ads are filtered by WKContentRuleList — compiled rules inside WebKit, not a JavaScript extension.

Smart tab hibernation

Background tabs freeze under memory pressure and thaw when you return. Flip on the aggressive curve if RAM is tight.

Session restore

Tabs, history, and slots come back exactly as you left them.

Favicon caching

Icons are stored as base64 data URIs, so a cold start makes zero network requests before you type.

Install

Free, and one command away.

No account, no license key, no trial timer. Runs on macOS 13+, Apple Silicon or Intel.

Homebrew

Recommended — upgrades come with brew upgrade.

brew install --cask muvon/tap/octoweb

Build from source

Requires the Rust toolchain and Xcode Command Line Tools.

git clone https://github.com/muvon/octoweb
cd octoweb
./build.sh --dev
open dist/Octoweb.app
Open source

Free because it should be, not until it isn't.

Octoweb is 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.

Read it before you run it

Every line of the browser, the MCP server, and the ACP client is on GitHub. A browser sees everything you do — you should be able to check what it does with that.

Browse the source →

Bring your own agent

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.

Tap registry →
FAQ

Questions people actually ask.

Is Octoweb really free?

Yes. Octoweb is free and open source under Apache 2.0 — no trial, no paid tier, no account, no telemetry. If it saves you time, GitHub Sponsors is how you can say thanks, but nothing is gated behind it.

Why macOS only?

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.

Do I need an AI subscription to use it?

No. Octoweb is a complete browser without any AI configured. The sidebar, inline edit, and background learning are optional — they connect to a local octomind agent, which you point at whichever provider you already pay for.

Does my browsing data leave my machine?

Not by itself. History, sessions, and favicons 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.

How is this different from an AI extension in Chrome?

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.

Is it built on Electron?

No. Octoweb is Rust on top of wry and tao, rendering through the system WKWebView. There is no bundled Chromium, so the app ships small and starts fast.

Can I use it as my main browser?

It handles the daily loop — tabs, history, session restore, back and forward gestures, find in page, PDFs, content blocking. It is honest about being an experiment though. Most people keep it as the browser they reach for when they want to think.

Can I remap the shortcuts?

Every one of them, in Settings (⌘,). Remaps persist to ~/.config/octoweb/keybindings.json and apply on the next keystroke. Only the ⌘+digit fast-access slots are positional and fixed.

What is proactive learning, and can I turn it off?

A background agent wakes up every 30 minutes by default, looks at your open tabs and recent history, and memorizes patterns into octomind local memory. It is on by default and switched off with one toggle in Settings.

How do I contribute?

The repository is on GitHub. Issues, pull requests, and shortcut suggestions are all welcome — and since the AI agents ship as tap manifests, you can publish your own specialist agent without touching the browser code.

It might become the browser you reach for when you want to think.

Free, open source, macOS only — by design. Install it, press ⌘⇧P, and see whether the mouse comes up at all.

brew install --cask muvon/tap/octoweb

Apple Silicon · macOS 13+ · Intel Mac

The sidebar runs on octomind